我有一个样本数据
Sno period year_quarter country city sales_revenue 1 1/1/2009 2009-Q1 Argentina Buenos Aires 3008 2 1/4/2009 2009-Q2 Argentina Buenos Aires 3244 3 1/7/2009 2009-Q3 Argentina Buenos Aires 8000 4 1/10/2009 2009-Q4 Argentina Buenos Aires 8719 5 1/1/2010 2010-Q1 Argentina Buenos Aires 3008 6 1/4/2010 2010-Q2 Argentina Buenos Aires 3244 7 1/7/2010 2010-Q3 Argentina Buenos Aires 78 8 1/10/2010 2010-Q4 Argentina Buenos Aires 7379 9 1/1/2011 2011-Q1 Argentina Buenos Aires 3735 10 1/4/2011 2011-Q2 Argentina Buenos Aires 7339 11 1/7/2011 2011-Q3 Argentina Buenos Aires 17240 12 1/10/2011 2011-Q4 Argentina Buenos Aires 20465 13 1/1/2012 2012-Q1 Argentina Buenos Aires 13134 14 1/4/2012 2012-Q2 Argentina Buenos Aires 15039
我在ETS(A,N,N)的帮助下预测了三季度,即2012年第3季度,2012年第4季度和2013年第1季度。预测代码如下所示
retail_data.xts<-xts(retail_data$sales_revenue, retail_data$period);
retail_data.ts <- as.ts(retail_data.xts);
retail_data.ets <- ets(retail_data.ts,model="ANN");
retail_data.fore <- forecast(retail_data.ets, h=4);
plot(retail_data.fore);
计算的结果是
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 15 14905.37 8925.968 20884.78 5760.6608 24050.09 16 14905.37 7202.071 22608.68 3124.1881 26686.56 17 14905.37 5798.868 24011.88 978.1739 28832.58 18 14905.37 4584.713 25226.04 -878.7150 30689.46
所有预测值都相同 是因为小数据集还是我的方法不好? 需要建议。
答案 0 :(得分:1)
通过使用model = "ANN"
,您拟合了一个带有加性误差的简单指数平滑模型(A)。有关可能的模型,请参阅help(ets)
或保留模型参数以进行自动模型选择。您的模型不包含趋势,也没有季节性(NN)。
可能模型的数学详细信息在A state space framework for automatic forecasting using exponential smoothing methods中给出,如ets
的帮助页面所述。如第441和442页所述,系列级别 l_t 是原始时间序列 Y_t 的线性函数。在没有趋势和季节性的模型(例如ANN)中,预测 F_ {t + h} 不依赖于 h , F_ {t + h} = l_t 即可。这就是为什么上面例子中的预测对于所有视野都是相同的,只有置信区间随着 h 的增加而变宽。
我想在这里讨论哪种模型是合适的,但我认为使用指数平滑的方法在短时间序列下是合理的。
答案 1 :(得分:0)
另外,我发现如果你的时间序列数量较少,那么你将获得相同的预测。我想这是因为该模型无法从可用的时间序列中推导出季节性或趋势分量。但是当我收集更多过去的数据时,我得到了更好的预测。