如何根据 5 年平均值预测未来数据?

Posted

技术标签:

【中文标题】如何根据 5 年平均值预测未来数据?【英文标题】:How to forecast future data based off 5 year average? 【发布时间】:2021-12-25 18:16:45 【问题描述】:

我每天都有 5 年的历史数据;

             Volume
2010-01-01   21
2010-01-02   38
2010-01-03   34
.
.
.
2015-12-31  48

数据中有很多季节性因素,所以我只是希望使用 5 年的平均值来预测未来 12 个月。

我可以这样做;

df_fut = df.groupby(by=[df.index.month, df.index.day]).mean() 

有没有办法绘制这个以便预测成为当前数据集的一部分?

【问题讨论】:

您在寻找df['Volume'].mean()吗? 是的,在某种意义上。但是要寻找每日粒度的平均值。如果有意义的话,那么每 5 年数据中每年 3 月 1 日的平均值是多少? df_fut = df.groupby(by=[df.index.month, df.index.day]).mean() 这可以找到平均值,但是尝试做这个很棘手动态预测。 这适用于获取 3 月 1 日的平均值:df[(df['a'].dt.month == 3) & (df['a'].dt.day == 1)].mean()。它回答了你的问题吗? 【参考方案1】:

假设您有一个名为 date 的列(datetime64 类型)和一个名为 value 的列(类型为 intfloat):

avg_march_1sts = df[(df['date'].dt.month == 3) & (df['date'].dt.day == 1)]['Volume'].mean()
#                                  ^^^^^^^^^^ March             ^^^^^^^^ 1st

【讨论】:

哈哈我接受了!它确实回答了我的问题,但我想我可能需要考虑如何正确表达这个问题,因为它并没有准确地告诉我如何使用平均值作为预测(我的错,不是你的错!):) 我已经这样做了:)

以上是关于如何根据 5 年平均值预测未来数据?的主要内容,如果未能解决你的问题,请参考以下文章

移动平均法

如何在 Python 的滚动平均值计算中忽略 NaN

WEKA 预处理和预测学生成绩

使用递归 CTE 计算预测平均值

数据分析之时间序列分析

移动平均法详解