我有一个样本数据
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
所有预测值都相同。 是因为小数据集还是我的方法不好? 需要建议。
通过使用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的增加而变宽。
我想在这里讨论哪种模型是合适的,但我认为使用指数平滑的方法在短时间序列下是合理的。
此外,我发现如果你有时间序列的数值较少,那么你将获得相同的预测。我想这是因为该模型无法从可用的时间序列中推导出季节性或趋势分量。但是当我收集更多过去的数据时,我得到了更好的预测。