我有一个有季度预测的数据,我想插值到每月,但有几个注意事项:每个季度的每月数据应平均为季度预测,而月度数据应趋向于下一个季度预测。我们目前使用了一个旧的线性excel宏来完成这个任务,但是我正在尝试自动化python中的工作流。如果可以用三次样条代替线性样条,那会更好吗?
作为预测和插值数据的一个例子:
# Example
df = pd.DataFrame({
"Date": ["2019-01-01","2019-02-01","2019-03-01","2019-04-01","2019-05-01","2019-06-01","2019-07-01","2019-08-01","2019-09-01","2019-10-01","2019-11-01","2019-12-01"],
"Forecast": [0.8,np.nan,np.nan,1.87,np.nan,np.nan,0.07,np.nan,np.nan,-0.73,np.nan,np.nan],
"Interpolated":[0.11,0.8,1.49,1.97,2.04,1.58,0.8,0,-0.57,-0.83,-0.76,-0.61]
})并验证每个季度内的平均值是否与季度预测大致一致。
df['Date'] = pd.to_datetime(df['Date'])
df.set_index('Date', inplace=True)
df['Interpolated'].resample('Q').mean()一个规则的三次样条得到了形状,但我不相信它与每个季度内的平均值相匹配--有什么明显的函数我忽略了吗?感谢你所能给予的一切帮助。预测数据可能出现的日期是灵活的--为了本例的目的,我只是在这个季度的第一个月。
发布于 2022-02-11 18:29:20
欢迎来到堆栈溢出。不错的第一个问题和可重复的例子!
这不是一个回答,而是一个长篇大论。
因为我们有一个值,并且需要保持平均值,所以你不能做太多。你可以有两个非常高的值,和一个非常低的值来匹配平均值。我希望它们与第二个与预测相同的值线性--这也是最简单的。基本上,我会做一些符合数据目的的事情。你需要它们在图表上看起来漂亮吗?挑一些曲线不错的东西。你需要以后用统计学的方法来分析它们吗?做一些重新描述数据系列行为的事情。
话虽如此,创建自己的插值函数将是一段有趣的旅程,但这不是一件容易的事情。它需要一些数学,例如用分段多项式、样条等构造一个近似。参见更多这里 (存档)和丁等人(2007DOI:10.1016/j.jmaa.2006.02.051)
https://stackoverflow.com/questions/71017183
复制相似问题