能夠對水平項和趨勢項(斜率)的時序進行擬合,時刻 t 的觀測值可表示爲spa
擬合出來的結果code
a、平滑參數α(alpha)控制水平的指數型降低,beta控制斜率的指數型降低it
b、兩個參數的有效範圍都是[0,1],參數取值越大意味着越近的觀測值的權重越大ast
擬合有水平項、趨勢項、季節項的時間序列model
a、st表明時刻 t 的季節效應im
b、除了alpha和beta參數外,gamma光滑參數控制季節項指數降低,取值範圍一樣爲[0,1],gamma值越大,意味着越近的觀測值的季節效應權重越大命名
例數據
對季節性分解中描述每個月國家航線乘客數AirPassengers時序進行預測img
一、首選須要對原始數據取對數,使它知足可加模型di
二、而後使用Holt-Winters指數平滑來預測 AirPassengers接下來的5個值
> library(forecast) > fit <- ets(log(AirPassengers),model="AAA") #AAA表示擬合水平項、斜率、季節項 > fit ETS(A,A,A) Call: ets(y = log(AirPassengers), model = "AAA") Smoothing parameters: alpha = 0.6534 beta = 1e-04 gamma = 1e-04 Initial states: l = 4.8022 b = 0.01 s=-0.1047 -0.2186 -0.0761 0.0636 0.2083 0.217 0.1145 -0.011 -0.0111 0.0196 -0.1111 -0.0905 sigma: 0.0359 AIC AICc BIC -208.3619 -203.5047 -157.8750 > accuracy(fit) ME RMSE MAE MPE MAPE MASE ACF1 Training set -0.0006710596 0.03592072 0.02773886 -0.01250262 0.508256 0.2291672 0.09431354 > pred <- forecast(fit,5) #進行預測 > pred Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 Jan 1961 6.103667 6.057633 6.149701 6.033264 6.174070 Feb 1961 6.093102 6.038110 6.148093 6.008999 6.177204 Mar 1961 6.233814 6.171130 6.296498 6.137947 6.329681 Apr 1961 6.213130 6.143597 6.282662 6.106789 6.319470 May 1961 6.223273 6.147507 6.299039 6.107399 6.339148 #繪製折線圖 > plot(pred, main="Forecast for Air Travel", + ylab="Log(AirPassengers)", xlab="Time") > pred$mean <- exp(pred$mean) #矩陣pred$mean 包含了點估計值 > pred$lower <- exp(pred$lower) #矩陣pred$lower 和 pred$ upper包含了80%和95%置信區間的下界以及上界 > pred$upper <- exp(pred$upper) #exp()指數化:將返回基於原始尺度的預測值(將對數的返回來) > p <- cbind(pred$mean,pred$lower,pred$upper) > dimnames(p)[[2]] <- c("mean", "Lo 80", "Lo 95", "Hi 80", "Hi 95") #給列命名 > p mean Lo 80 Lo 95 Hi 80 Hi 95 Jan 1961 447.4958 427.3626 417.0741 468.5774 480.1365 Feb 1961 442.7926 419.1001 407.0756 467.8245 481.6434 Mar 1961 509.6958 478.7268 463.1019 542.6682 560.9776 Apr 1961 499.2613 465.7258 448.8949 535.2116 555.2788 May 1961 504.3514 467.5503 449.1688 544.0491 566.3135