我在拟合数据与HoltWinters和预测数据之间存在巨大差异。我可以理解在几次预测之后存在巨大的差异但是如果第一次预测不应该与数据集中还有一个数字的拟合数据相同吗?
如果我错了,请纠正我,为什么不是这样?
以下是实际数据的示例。
1
1
1
2
1
1
-1
1
2
2
2
1
2
1
2
1
1
2
1
2
2
1
1
2
2
2
2
2
1
2
2
2
-1
1
以下是拟合数据的示例。
1.84401709401709
0.760477897417666
1.76593566042741
0.85435674207981
0.978449891674328
2.01079668445307
-0.709049507055536
1.39603638693742
2.42620183925688
2.42819282543689
2.40391946256294
1.29795840410863
2.39684770489517
1.35370435531208
2.38165200319969
1.34590347535205
1.38878761417551
2.36316132796798
1.2226736501825
2.2344269563083
2.24742853293732
1.12409156568888
这是我的R代码。
randVal <- read.table("~/Documents/workspace/Roulette/play/randVal.txt", sep = "")
test<-ts(randVal$V1, start=c(1,133), freq=12)
test <- fitted(HoltWinters(test))
test.predict<-predict(HoltWinters(test), n.ahead=1*1)
这是我将其扩展为n.ahead = 1 * 12后的预测数据。请记住,我只想要第一个值。我不明白为什么所有预测数据都如此之低并且接近0和-1,而拟合数据对实际数据的准确性要高得多.....谢谢。
0.16860570380268
-0.624454483845195
0.388808753990824
-0.614404235175936
0.285645402877705
-0.746997659036848
-0.736666618626855
0.174830187188718
-1.30499945596422
-0.320145850774167
-0.0917166719596059
-0.63970713627854
答案 0 :(得分:0)
听起来你需要统计咨询,因为代码没有丢失任何错误。并且您没有解释为什么您对结果不满意,因为这两个调用的第一个值是相同的。考虑到这一点,您应该意识到大多数时间序列方法都假设来自去趋势和去除数据的输入,因此它们将返回估计的参数和值,这些参数和值在许多情况下需要偏移到全局均值来预测原始规模。 (当你使用'test'时,覆盖中间值是非常糟糕的做法。)但是,如果你看一下test
- 对象,你会看到一列yhat
的值,其范围是输入数据。
您的问题"I don't understand why all the predict data is so low and close to 0 and -1 while the fitted data is far more accurate to the actual data"
没有说明您认为"predict data[sic]"
比实际数据“更准确”的意义。 predict
- 结果是某种估计值,它们被拆分为组件,就像您在帮助页面上运行代码进行预测一样:
plot(test,test.predict12)
它也不是“数据”。除非你有某种你没有告诉我们的黄金标准,否则它根本不清楚如何“更准确”。