15.3 時間序列的預測
15.3.1 指數預測模型
- 單指數平滑
t+1預測值可以看成是第t期預測值和真實值的加權,也可以看成是第t期的預測值再加上一個關于alpha的修正項
在R里可以使用ets()
函數擬合模型
類型 | 參數 | 函數 |
---|---|---|
單指數 | 水平項 | ets(ts, model="ANN") |
雙指數 | 水平項,趨勢項 | ets(ts, model="AAN") |
三指數 | 水平項,趨勢項,季節項 | ets(ts, model="AAA") |
#install.packages("forecast")
nhtemp # 康涅狄格州紐黑文市從1912年到1971年每一年的平均華氏溫度
library(forecast)
fit <- ets(nhtemp, model="ANN")
forecast(fit, 1) # forecast(fit, k) k表示向前預測幾步
plot(forecast(fit, 1)
, xlab="Year"
, ylab=expression(paste("Temperature (", degree*F,")",))
,main="New Haven Annual Mean Temperature")
accuracy(fit) # 得到準確率
- Holt指數平滑(雙指數)
單指數平滑假定時序中缺少趨勢項和季節項,Holt和Holt-Winters可以彌補單指數平滑的不足
Holt指數平滑在單指數平滑的基礎上添加了趨勢項
T代表趨勢項,L代表水平項
第t期的趨勢項可以看成是t期水平項與t-1期水平項的差值與t-1期趨勢項的加權
fit <- ets(log(AirPassengers), model="AAN")
accuracy(fit)
pred<-forecast(fit,5)
plot(pred, main="Forecast for Air Travel",ylab="Log(AirPassengers)", xlab="Time")
- Holt-Winters指數平滑(三指數)
Holt-Winters指數平滑在Holt模型的基礎上加入了季節項
fit <- ets(log(AirPassengers), model="AAA")
fit
accuracy(fit)
pred<-forecast(fit,5)
plot(pred, main="Forecast for Air Travel",ylab="Log(AirPassengers)", xlab="Time")