R語言 簡單指數平滑法

2021-08-20 20:48:57 字數 3122 閱讀 1404

簡單指數平滑適用於可用相加模型描述,並且處於恆定水平和沒有季節變動的時間序列地短期**。

簡單指數平滑法提供了一種方法估計當前時間點上的水平。為了更加準確的估計當前時間的水平,我們使用alpha引數來控制平滑,alpha的取值在0-1之間。當alpha越接近0,臨近**的觀測值在**中的權重就越小。

我們採用倫敦2023年到2023年全部的每年每英呎降雨量來做分析物件,首先讀入相關資料和繪製出序列圖:

從該圖中可以看出整個曲線處於大致不變的水平,且隨機變動在整個時間序列範圍內也可以認為是大致不變的,所以該序列可以大致被描述為乙個相加模型,因此我們可以使用簡單指數平滑法進行**。我們採用r中的holtwinters()函式,為了能夠使用holtwinters中的指數平滑,我們需要進行引數設定:beta=false和gamma=false,**結果如下圖:

holtwinters()告訴我們alpha引數的估計值約為0.024,非常接近0,說明該序列比較平穩,預設情況下holtwinters僅會給出原始時間序列所覆蓋時期內的**,**值存在房子名為為fitted的變數中,我們可以通過rainseriesforecasts$fitted來獲取這些值。

此外我們可以畫出**值和實際值,看看**效果:

從之前的alpha和上圖,可見我們**的過於平滑,r提供了樣本**誤差平方和(sse)來衡量**效果。可以通過rainseriesforecasts$sse來獲取該值。另外我們還可以指定時間序列水平的初始值,常見的做法為採用時間序列第乙個值,如這裡採用2023年的23.56,具體實現如下:

[plain] 

view plain

copy

holtwinters(rainseries, beta=false, gamma=false, l.start=23.56)  

為了**未來時期的值,我們需要借助forecast包,假設我們需要對未來8年的下雨量進行**,具體實現如下:

[plain] 

view plain

copy

library("forecast")  

rainseriesforecasts2 

同時forecast.holtwinters()函式給出了80%和95%的**區間,為了更方便地檢視**結果,我們畫出了**效果圖,具體實現和結果如下:

其中藍線是**1913-1920間的降雨量,深灰色陰影區域為80%的**區間,淺灰色陰影區域為95%的**區間。

同樣forecast也提供了」**誤差」的統計指標(residuals),借助」**誤差「我們可以評估**是否有改進的可能性:如果**誤差是相關的,則很可能是簡單指數平滑**可以被另外一種**技術優化。為了驗證**誤差的相關性(act()),我們獲取樣本誤差中1-20階(期數)的相關圖,具體r的實現和結果如下:

[plain] 

view plain

copy

acf(rainseriesforecasts2$residuals, lag.max=20)#可以使用lag.max 指定我們想要看到的最大階數  

**上圖可以發現自相關係數在第3期的時候達到了置信界限。為了驗證在滯後1-20階時非0自相關屬性是否顯著,可以借助r語言的(box.test())ljung-box檢驗。具體實現如下:

統計量為17.4,並且p值是0.6(置信度只有40%)這樣的值不足以拒絕「**誤差在1-20階是非零自相關則我們接受**誤差在1-20階是非零自相關的。

ps: p值大,說明為純隨機序列。p值小,非純隨機序列,置信水平(1-p)

除了上述的驗證方式,我們還可以驗證**誤差是正太分布,並且均值為0,方差不變,為了做到這點,我們可以繪製出乙個樣本內**誤差圖:

觀察上圖,我們可以歸納出整個時間區間內**誤差屬於大致不變的正態分佈,且均值接近0,為了更具體的展現,我們需要借助少量的**,首先構建函式plotforecasterrors:

[plain] 

view plain

copy

plotforecasterrors 

在控制台呼叫該函式:

[plain] 

view plain

copy

source("plotforecasterrors.r")  

plotforecasterrors(rainseriesforecasts2$residuals)  

結果如圖:

觀察上圖可見,**的誤差呈現均值為0 ,方差恆定的正態分佈,可見**演算法無法改進了。

R語言 霍爾特指數平滑法(Holt)

有增長或者降低趨勢的,沒有季節性可相加模型的時間序列 演算法 霍爾特指數平滑法 holt holt 指數平滑法估計當前時間的水平和斜率。其平滑水平是由兩個引數控制,alpha 估計當前點水平 beta 估計當前點趨勢部分斜率。兩個引數都介於0 1之間,當引數越接近0,大部分近期的觀測值的權值將較小。...

平滑樣條法 R

樣條平滑是一種關於一般類的強大而靈活的建模技術,應用包括多項式,週期,球面,薄板,l 和部分樣條,以及更高階模型的概述,包括平滑樣條線anova,擴充套件和廣義平滑樣條anova,向量樣條,非引數非線性回歸,半引數回歸和半引數混合效應模型。樣條 樣條是一種分段的低階多項式逼近函式,可應用於具有不同非...

二次指數平滑法matlab程式 二次指數平滑法程式

因 中要分析旅遊時間分布,不同年份旅遊者人數,從而做了乙個matlab布朗單一引數線性指數平滑法matlab程式,如下 注 data 原始資料 s 一次和二次平滑結果 at 式中的a引數 bt 式中的b引數 y1 結果 本例是取alpha為0.8時的情況 arr 0 6 8.3 9.8 13 15 ...