讀時(shí)間序列數(shù)據(jù)您要分析時(shí)間序列數(shù)據(jù)的第一件事就是將其讀入R,并繪制時(shí)間序列。您可以使用scan()函數(shù)將數(shù)據(jù)讀入R,該函數(shù)假定連續(xù)時(shí)間點(diǎn)的數(shù)據(jù)位于包含一列的簡單文本文件中。 數(shù)據(jù)集如下所示:
僅顯示了文件的前幾行。前三行包含對(duì)數(shù)據(jù)的一些注釋,當(dāng)我們將數(shù)據(jù)讀入R時(shí)我們想要忽略它。我們可以通過使用scan()函數(shù)的“skip”參數(shù)來使用它,它指定了多少行。要忽略的文件頂部。要將文件讀入R,忽略前三行,我們鍵入:
在這種情況下,英國42位連續(xù)國王的死亡年齡已被讀入變量“國王”。 一旦將時(shí)間序列數(shù)據(jù)讀入R,下一步就是將數(shù)據(jù)存儲(chǔ)在R中的時(shí)間序列對(duì)象中,這樣就可以使用R的許多函數(shù)來分析時(shí)間序列數(shù)據(jù)。要將數(shù)據(jù)存儲(chǔ)在時(shí)間序列對(duì)象中,我們使用R中的ts()函數(shù)。例如,要將數(shù)據(jù)存儲(chǔ)在變量'kings'中作為R中的時(shí)間序列對(duì)象,我們鍵入:
有時(shí),您所擁有的時(shí)間序列數(shù)據(jù)集可能是以不到一年的固定間隔收集的,例如,每月或每季度。在這種情況下,您可以使用ts()函數(shù)中的'frequency'參數(shù)指定每年收集數(shù)據(jù)的次數(shù)。對(duì)于月度時(shí)間序列數(shù)據(jù),您設(shè)置頻率= 12,而對(duì)于季度時(shí)間序列數(shù)據(jù),您設(shè)置頻率= 4。 您還可以使用ts()函數(shù)中的“start”參數(shù)指定收集數(shù)據(jù)的第一年和該年度的第一個(gè)時(shí)間間隔。例如,如果第一個(gè)數(shù)據(jù)點(diǎn)對(duì)應(yīng)于1986年第二季度,則設(shè)置start = c(1986,2)。
同樣, 1987年1月至1993年12月澳大利亞昆士蘭州海灘度假小鎮(zhèn)紀(jì)念品商店的月銷售額(來自Wheelwright和Hyndman的原始數(shù)據(jù), 1998)。我們可以通過輸入以下內(nèi)容將數(shù)據(jù)讀入R:
繪制時(shí)間序列一旦你將時(shí)間序列讀入R,下一步通常是制作時(shí)間序列數(shù)據(jù)的圖,你可以用R中的plot.ts()函數(shù)做。 例如,為了繪制英國42位連續(xù)國王的死亡時(shí)間序列,我們輸入:
我們可以從時(shí)間圖中看出,可以使用加性模型來描述該時(shí)間序列,因?yàn)閿?shù)據(jù)中的隨機(jī)波動(dòng)在大小上隨時(shí)間大致恒定。 同樣,為了繪制紐約市每月出生人數(shù)的時(shí)間序列,我們輸入:
從這個(gè)時(shí)間序列我們可以看出,每月出生人數(shù)似乎有季節(jié)性變化:每年夏天都有一個(gè)高峰,每個(gè)冬天都有一個(gè)低谷。同樣,似乎這個(gè)時(shí)間序列可能是用加性模型來描述的,因?yàn)榧竟?jié)性波動(dòng)的大小隨著時(shí)間的推移大致不變,似乎并不依賴于時(shí)間序列的水平,隨機(jī)波動(dòng)似乎也是隨著時(shí)間的推移大小不變。 同樣,為了繪制澳大利亞昆士蘭州海灘度假小鎮(zhèn)紀(jì)念品商店每月銷售的時(shí)間序列,我們輸入:
在這種情況下,似乎加法模型不適合描述這個(gè)時(shí)間序列,因?yàn)榧竟?jié)性波動(dòng)和隨機(jī)波動(dòng)的大小似乎隨著時(shí)間序列的水平而增加。因此,我們可能需要轉(zhuǎn)換時(shí)間序列以獲得可以使用加法模型描述的變換時(shí)間序列。例如,我們可以通過計(jì)算原始數(shù)據(jù)的自然日志來轉(zhuǎn)換時(shí)間序列:
在這里我們可以看到,對(duì)數(shù)變換時(shí)間序列中的季節(jié)性波動(dòng)和隨機(jī)波動(dòng)的大小似乎隨著時(shí)間的推移大致不變,并且不依賴于時(shí)間序列的水平。因此,可以使用加法模型來描述對(duì)數(shù)變換的時(shí)間序列。 分解時(shí)間序列分解時(shí)間序列意味著將其分成其組成部分,這些組成部分通常是趨勢(shì)分量和不規(guī)則分量,如果是季節(jié)性時(shí)間序列,則是季節(jié)性分量。 分解非季節(jié)性數(shù)據(jù)非季節(jié)性時(shí)間序列由趨勢(shì)分量和不規(guī)則分量組成。分解時(shí)間序列涉及嘗試將時(shí)間序列分成這些分量,即估計(jì)趨勢(shì)分量和不規(guī)則分量。 為了估計(jì)可以使用加性模型描述的非季節(jié)性時(shí)間序列的趨勢(shì)分量,通常使用平滑方法,例如計(jì)算時(shí)間序列的簡單移動(dòng)平均值。 “TTR”R包中的SMA()函數(shù)可用于使用簡單的移動(dòng)平均值來平滑時(shí)間序列數(shù)據(jù)。要使用此功能,我們首先需要安裝“TTR”R軟件包 。一旦安裝了“TTR”R軟件包,就可以輸入以下命令加載“TTR”R軟件包:
然后,您可以使用“SMA()”功能來平滑時(shí)間序列數(shù)據(jù)。要使用SMA()函數(shù),需要使用參數(shù)“n”指定簡單移動(dòng)平均值的順序(跨度)。例如,要計(jì)算5階的簡單移動(dòng)平均值,我們?cè)赟MA()函數(shù)中設(shè)置n = 5。 例如,如上所述,英國42位連續(xù)國王的死亡年齡的時(shí)間序列出現(xiàn)是非季節(jié)性的,并且可能使用加性模型來描述,因?yàn)閿?shù)據(jù)中的隨機(jī)波動(dòng)大小基本上是恒定的。時(shí)間: 因此,我們可以嘗試通過使用簡單移動(dòng)平均線進(jìn)行平滑來估計(jì)此時(shí)間序列的趨勢(shì)分量。要使用3階簡單移動(dòng)平均值平滑時(shí)間序列,并繪制平滑時(shí)間序列數(shù)據(jù),我們鍵入:
在使用3階簡單移動(dòng)平均值平滑的時(shí)間序列中,似乎存在相當(dāng)多的隨機(jī)波動(dòng)。因此,為了更準(zhǔn)確地估計(jì)趨勢(shì)分量,我們可能希望嘗試使用簡單的移動(dòng)平均值來平滑數(shù)據(jù)。更高階。這需要一些試錯(cuò),才能找到合適的平滑量。例如,我們可以嘗試使用8階的簡單移動(dòng)平均線:
使用8階簡單移動(dòng)平均值進(jìn)行平滑的數(shù)據(jù)可以更清晰地顯示趨勢(shì)分量,我們可以看到英國國王的死亡年齡似乎已經(jīng)從大約55歲降至大約38歲在最后的20位國王中,然后在第40位國王在時(shí)間序列的統(tǒng)治結(jié)束之后增加到大約73歲。 分解季節(jié)性數(shù)據(jù)季節(jié)性時(shí)間序列由趨勢(shì)組件,季節(jié)性組件和不規(guī)則組件組成。分解時(shí)間序列意味著將時(shí)間序列分成這三個(gè)組成部分:即估計(jì)這三個(gè)組成部分。 為了估計(jì)可以使用加性模型描述的季節(jié)性時(shí)間序列的趨勢(shì)分量和季節(jié)性分量,我們可以使用R中的“decompose()”函數(shù)。該函數(shù)估計(jì)時(shí)間序列的趨勢(shì),季節(jié)和不規(guī)則分量??梢允褂眉有阅P蛠砻枋?。 函數(shù)“decompose()”返回一個(gè)列表對(duì)象作為結(jié)果,其中季節(jié)性組件,趨勢(shì)組件和不規(guī)則組件的估計(jì)值存儲(chǔ)在該列表對(duì)象的命名元素中,稱為“季節(jié)性”,“趨勢(shì)”和“隨機(jī)” “ 分別。 例如,如上所述,紐約市每月出生人數(shù)的時(shí)間序列是季節(jié)性的,每年夏季和每年冬季都會(huì)出現(xiàn)高峰,并且可能使用加性模型來描述,因?yàn)榧竟?jié)性和隨機(jī)波動(dòng)似乎是隨著時(shí)間的推移大小不變: 為了估計(jì)這個(gè)時(shí)間序列的趨勢(shì),季節(jié)性和不規(guī)則成分,我們輸入:
季節(jié)性,趨勢(shì)和不規(guī)則成分的估計(jì)值現(xiàn)在存儲(chǔ)在變量birthstimeseriescomponents $ seasonal,birthstimeseriescomponents $ trend和birthstimeseriescomponents $ random中。例如,我們可以通過鍵入以下內(nèi)容打印出季節(jié)性組件的估計(jì)值:
估計(jì)的季節(jié)性因素是在1月至12月期間給出的,并且每年都是相同的。最大的季節(jié)性因素是7月份(約1.46),最低的是2月份(約-2.08),表明7月出生率似乎達(dá)到高峰,2月出生低谷。 我們可以使用“plot()”函數(shù)繪制時(shí)間序列的估計(jì)趨勢(shì),季節(jié)和不規(guī)則分量,例如:
上圖顯示了原始時(shí)間序列(頂部),估計(jì)趨勢(shì)分量(從頂部開始的第二個(gè)),估計(jì)的季節(jié)性分量(從頂部開始的第三個(gè))和估計(jì)的不規(guī)則分量(底部)。我們看到估計(jì)的趨勢(shì)分量顯示從1947年的大約24小幅下降到1948年的大約22小幅下降,隨后從1959年開始穩(wěn)步增加到大約27。 季節(jié)性調(diào)整如果您有可以使用附加模型描述的季節(jié)性時(shí)間序列,則可以通過估計(jì)季節(jié)性成分來季節(jié)性地調(diào)整時(shí)間序列,并從原始時(shí)間序列中減去估計(jì)的季節(jié)性成分。我們可以使用“decompose()”函數(shù)計(jì)算的季節(jié)性成分的估計(jì)來做到這一點(diǎn)。 例如,要季節(jié)性調(diào)整紐約市每月出生人數(shù)的時(shí)間序列,我們可以使用“decompose()”估算季節(jié)性成分,然后從原始時(shí)間序列中減去季節(jié)性成分:
然后我們可以使用“plot()”函數(shù)繪制經(jīng)季節(jié)性調(diào)整的時(shí)間序列,輸入:
您可以看到季節(jié)性變化已從經(jīng)季節(jié)性調(diào)整的時(shí)間序列中刪除。經(jīng)季節(jié)性調(diào)整的時(shí)間序列現(xiàn)在只包含趨勢(shì)分量和不規(guī)則分量。 使用指數(shù)平滑的預(yù)測(cè)指數(shù)平滑可用于對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行短期預(yù)測(cè)。 簡單的指數(shù)平滑如果您有一個(gè)時(shí)間序列可以使用具有恒定水平且沒有季節(jié)性的附加模型來描述,則可以使用簡單的指數(shù)平滑來進(jìn)行短期預(yù)測(cè)。 簡單指數(shù)平滑方法提供了一種估計(jì)當(dāng)前時(shí)間點(diǎn)的水平的方法。平滑由參數(shù)alpha控制; 用于估計(jì)當(dāng)前時(shí)間點(diǎn)的水平。alpha的值; α值接近于0意味著在對(duì)未來值進(jìn)行預(yù)測(cè)時(shí),最近的觀察值很小。
你可以從圖中看到大致恒定的水平(平均值保持恒定在25英寸左右)。隨著時(shí)間的推移,時(shí)間序列中的隨機(jī)波動(dòng)似乎大致不變,因此使用加性模型描述數(shù)據(jù)可能是合適的。因此,我們可以使用簡單的指數(shù)平滑進(jìn)行預(yù)測(cè)。 為了使用R中的簡單指數(shù)平滑進(jìn)行預(yù)測(cè),我們可以使用R中的“HoltWinters()”函數(shù)擬合一個(gè)簡單的指數(shù)平滑預(yù)測(cè)模型。要使用HoltWinters()進(jìn)行簡單的指數(shù)平滑,我們需要設(shè)置參數(shù)beta = FALSE和HoltWinters()函數(shù)中的gamma = FALSE(β和gamma參數(shù)用于Holt的指數(shù)平滑,或Holt-Winters指數(shù)平滑,如下所述)。 HoltWinters()函數(shù)返回一個(gè)列表變量,該變量包含多個(gè)命名元素。 例如,要使用簡單的指數(shù)平滑來預(yù)測(cè)倫敦年降雨量的時(shí)間序列,我們輸入:
HoltWinters()的輸出告訴我們alpha參數(shù)的估計(jì)值約為0.024。這非常接近零,告訴我們預(yù)測(cè)是基于最近和最近的觀察結(jié)果(雖然對(duì)最近的觀察更加重視)。 默認(rèn)情況下,HoltWinters()僅對(duì)我們?cè)紩r(shí)間序列所涵蓋的相同時(shí)間段進(jìn)行預(yù)測(cè)。在這種情況下,我們的原始時(shí)間序列包括1813年至1912年倫敦的降雨量,所以預(yù)測(cè)也是1813年至1912年。 在上面的例子中,我們將HoltWinters()函數(shù)的輸出存儲(chǔ)在列表變量“rainseriesforecasts”中。HoltWinters()的預(yù)測(cè)存儲(chǔ)在這個(gè)名為“fits”的列表變量的命名元素中,因此我們可以通過輸入以下內(nèi)容來獲取它們的值:
我們可以通過鍵入以下內(nèi)容來繪制原始時(shí)間序列與預(yù)測(cè):
該圖顯示原始時(shí)間序列為黑色,預(yù)測(cè)顯示為紅線。預(yù)測(cè)的時(shí)間序列比原始數(shù)據(jù)的時(shí)間序列要平滑得多。 作為預(yù)測(cè)準(zhǔn)確性的度量,我們可以計(jì)算樣本內(nèi)預(yù)測(cè)誤差的平方誤差之和,即我們?cè)紩r(shí)間序列所涵蓋的時(shí)間段的預(yù)測(cè)誤差。平方誤差之和存儲(chǔ)在名為“SSE”的列表變量“rainseriesforecasts”的命名元素中,因此我們可以通過鍵入以下內(nèi)容來獲取其值:
也就是說,這里的平方誤差之和為1828.855。 在簡單的指數(shù)平滑中,通常使用時(shí)間序列中的第一個(gè)值作為級(jí)別的初始值。例如,在倫敦的降雨時(shí)間序列中,1813年降雨量的第一個(gè)值為23.56(英寸)。您可以使用“l(fā).start”參數(shù)指定HoltWinters()函數(shù)中水平的初始值。例如,要將級(jí)別的初始值設(shè)置為23.56進(jìn)行預(yù)測(cè),我們鍵入:
如上所述,默認(rèn)情況下,HoltWinters()僅對(duì)原始數(shù)據(jù)所涵蓋的時(shí)間段進(jìn)行預(yù)測(cè),即降雨時(shí)間序列為1813-1912。我們可以使用R“forecast”包中的“forecast.HoltWinters()”函數(shù)對(duì)更多時(shí)間點(diǎn)進(jìn)行預(yù)測(cè)。要使用forecast.HoltWinters()函數(shù),我們首先需要安裝“預(yù)測(cè)”R包(有關(guān)如何安裝R包的說明,請(qǐng)參閱如何安裝R包)。 安裝“預(yù)測(cè)”R軟件包后,您可以鍵入以下命令加載“預(yù)測(cè)”R軟件包:
當(dāng)使用forecast.HoltWinters()函數(shù)作為其第一個(gè)參數(shù)(輸入)時(shí),您將使用HoltWinters()函數(shù)傳遞給您已經(jīng)擬合的預(yù)測(cè)模型。例如,在降雨時(shí)間序列的情況下,我們將使用HoltWinters()的預(yù)測(cè)模型存儲(chǔ)在變量“rainseriesforecasts”中。您可以使用forecast.HoltWinters()中的“h”參數(shù)指定要進(jìn)行預(yù)測(cè)的其他時(shí)間點(diǎn)數(shù)。例如,要使用forecast.HoltWinters()預(yù)測(cè)1814-1820(8年以上)的降雨量,我們輸入:
forecast.HoltWinters()函數(shù)為您提供一年的預(yù)測(cè),預(yù)測(cè)的預(yù)測(cè)間隔為80%,預(yù)測(cè)的預(yù)測(cè)間隔為95%。例如,1920年的預(yù)測(cè)降雨量約為24.68英寸,95%的預(yù)測(cè)間隔為(16.24,33.11)。 要繪制forecast.HoltWinters()所做的預(yù)測(cè),我們可以使用“plot.forecast()”函數(shù):
這里1913-1920的預(yù)測(cè)繪制為藍(lán)線,80%預(yù)測(cè)間隔繪制為橙色陰影區(qū)域,95%預(yù)測(cè)間隔繪制為黃色陰影區(qū)域。 對(duì)于每個(gè)時(shí)間點(diǎn),“預(yù)測(cè)誤差”被計(jì)算為觀測(cè)值減去預(yù)測(cè)值。我們只能計(jì)算原始時(shí)間序列所涵蓋的時(shí)間段的預(yù)測(cè)誤差,即降雨數(shù)據(jù)的1813-1912。如上所述,預(yù)測(cè)模型準(zhǔn)確性的一個(gè)度量是樣本內(nèi)預(yù)測(cè)誤差的平方誤差和(SSE)。 樣本內(nèi)預(yù)測(cè)錯(cuò)誤存儲(chǔ)在forecast.HoltWinters()返回的列表變量的命名元素“residuals”中。如果無法改進(jìn)預(yù)測(cè)模型,則連續(xù)預(yù)測(cè)的預(yù)測(cè)誤差之間不應(yīng)存在相關(guān)性。換句話說,如果連續(xù)預(yù)測(cè)的預(yù)測(cè)誤差之間存在相關(guān)性,則可能通過另一種預(yù)測(cè)技術(shù)可以改進(jìn)簡單的指數(shù)平滑預(yù)測(cè)。 為了弄清楚是否是這種情況,我們可以獲得滯后1-20的樣本內(nèi)預(yù)測(cè)誤差的相關(guān)圖。我們可以使用R中的“acf()”函數(shù)計(jì)算預(yù)測(cè)誤差的相關(guān)圖。要指定我們想要查看的最大滯后,我們?cè)赼cf()中使用“l(fā)ag.max”參數(shù)。 例如,為了計(jì)算倫敦降雨數(shù)據(jù)的樣本內(nèi)預(yù)測(cè)誤差的相關(guān)圖,我們輸入:
您可以從示例相關(guān)圖中看到滯后3處的自相關(guān)剛剛觸及顯著邊界。為了測(cè)試是否存在滯后1-20的非零相關(guān)性的重要證據(jù),我們可以進(jìn)行Ljung-Box測(cè)試。這可以使用“Box.test()”函數(shù)在R中完成。我們想要查看的最大延遲是使用Box.test()函數(shù)中的“l(fā)ag”參數(shù)指定的。例如,要測(cè)試是否存在滯后1-20的非零自相關(guān),對(duì)于倫敦降雨數(shù)據(jù)的樣本內(nèi)預(yù)測(cè)誤差,我們鍵入:
這里的Ljung-Box檢驗(yàn)統(tǒng)計(jì)量為17.4,p值為0.6,因此幾乎沒有證據(jù)表明樣本預(yù)測(cè)誤差在1-20落后存在非零自相關(guān)。 為了確保預(yù)測(cè)模型無法改進(jìn),檢查預(yù)測(cè)誤差是否正態(tài)分布均值為零和恒定方差也是一個(gè)好主意。要檢查預(yù)測(cè)誤差是否具有恒定方差,我們可以制作樣本內(nèi)預(yù)測(cè)誤差的時(shí)間圖:
該圖顯示樣本內(nèi)預(yù)測(cè)誤差似乎隨時(shí)間變化大致不變,盡管時(shí)間序列(1820-1830)開始時(shí)波動(dòng)的大小可能略小于后期日期(例如1840年) -1850)。 為了檢查預(yù)測(cè)誤差是否正態(tài)分布為均值為零,我們可以繪制預(yù)測(cè)誤差的直方圖,其中覆蓋的正態(tài)曲線具有平均零和標(biāo)準(zhǔn)差與預(yù)測(cè)誤差的分布相同。為此,我們可以在下面定義一個(gè)R函數(shù)“plotForecastErrors()”:
您必須將上述功能復(fù)制到R中才能使用它。然后,您可以使用plotForecastErrors()繪制降雨預(yù)測(cè)的預(yù)測(cè)誤差的直方圖(具有重疊的正常曲線):
該圖顯示預(yù)測(cè)誤差的分布大致以零為中心,并且或多或少地正態(tài)分布,盡管與正常曲線相比,它似乎略微偏向右側(cè)。然而,右傾斜相對(duì)較小,因此預(yù)測(cè)誤差通常以均值0分布是合理的。 Ljung-Box測(cè)試表明,樣本內(nèi)預(yù)測(cè)誤差中幾乎沒有非零自相關(guān)的證據(jù),預(yù)測(cè)誤差的分布似乎正常分布為均值為零。這表明簡單的指數(shù)平滑方法為倫敦降雨提供了一個(gè)充分的預(yù)測(cè)模型,這可能無法改進(jìn)。此外,80%和95%預(yù)測(cè)區(qū)間基于的假設(shè)(預(yù)測(cè)誤差中沒有自相關(guān),預(yù)測(cè)誤差通常以均值零和恒定方差分布)可能是有效的。 霍爾特的指數(shù)平滑如果您的時(shí)間序列可以使用趨勢(shì)增加或減少且沒有季節(jié)性的加法模型來描述,則可以使用Holt的指數(shù)平滑來進(jìn)行短期預(yù)測(cè)。 霍爾特的指數(shù)平滑估計(jì)當(dāng)前時(shí)間點(diǎn)的水平和斜率。平滑由兩個(gè)參數(shù)α控制,用于估計(jì)當(dāng)前時(shí)間點(diǎn)的水平,β用于估計(jì)當(dāng)前時(shí)間點(diǎn)的趨勢(shì)分量的斜率b。與簡單的指數(shù)平滑一樣,參數(shù)alpha和beta的值介于0和1之間,接近0的值意味著在對(duì)未來值進(jìn)行預(yù)測(cè)時(shí),對(duì)最近的觀察值的重要性很小。 時(shí)間序列的一個(gè)例子可以使用具有趨勢(shì)和沒有季節(jié)性的加法模型來描述女性裙子在1866年到1911年的年度直徑的時(shí)間序列。 過輸入以下內(nèi)容讀入并繪制R中的數(shù)據(jù):
從圖中我們可以看出,下擺直徑從1866年的約600增加到1880年的約1050,之后在1911年,下擺直徑減少到約520。 為了進(jìn)行預(yù)測(cè),我們可以使用R中的HoltWinters()函數(shù)擬合預(yù)測(cè)模型。要使用HoltWinters()進(jìn)行Holt的指數(shù)平滑,我們需要設(shè)置參數(shù)gamma = FALSE(gamma參數(shù)用于Holt-Winters指數(shù)平滑,如下所述)。 例如,要使用Holt的指數(shù)平滑來擬合裙擺直徑的預(yù)測(cè)模型,我們鍵入:
α的估計(jì)值為0.84,β的估計(jì)值為1.00。這些都很高,告訴我們水平的當(dāng)前值和趨勢(shì)分量的斜率b的估計(jì)主要基于時(shí)間序列中的最近觀察。這具有良好的直觀感,因?yàn)闀r(shí)間序列的水平和斜率都會(huì)隨著時(shí)間的推移而發(fā)生很大變化。樣本內(nèi)預(yù)測(cè)誤差的平方和誤差的值是16954。 我們可以將原始時(shí)間序列繪制為黑色線條,其中預(yù)測(cè)值為紅線,通過鍵入:
我們從圖中可以看出,樣本內(nèi)預(yù)測(cè)與觀測(cè)值非常吻合,盡管它們往往略微落后于觀測(cè)值。 如果需要,可以使用HoltWinters()函數(shù)的“l(fā).start”和“b.start”參數(shù)指定趨勢(shì)分量的級(jí)別和斜率b的初始值。通常將水平的初始值設(shè)置為時(shí)間序列中的第一個(gè)值(裙邊數(shù)據(jù)為608),并將斜率的初始值設(shè)置為第二個(gè)值減去第一個(gè)值(裙邊數(shù)據(jù)為9)。例如,為了使用Holt的指數(shù)平滑擬合裙邊折邊數(shù)據(jù)的預(yù)測(cè)模型,水平的初始值為608,趨勢(shì)分量的斜率b為9,我們輸入:
對(duì)于簡單的指數(shù)平滑,我們可以使用“forecast”包中的forecast.HoltWinters()函數(shù)對(duì)原始時(shí)間序列未涵蓋的未來時(shí)間進(jìn)行預(yù)測(cè)。例如,我們的裙擺下擺的時(shí)間序列數(shù)據(jù)是1866年至1911年,因此我們可以預(yù)測(cè)1912年至1930年(另外19個(gè)數(shù)據(jù)點(diǎn)),并通過輸入以下內(nèi)容繪制:
預(yù)測(cè)顯示為藍(lán)線,80%預(yù)測(cè)區(qū)間為橙色陰影區(qū)域,95%預(yù)測(cè)區(qū)間為黃色陰影區(qū)域。 對(duì)于簡單的指數(shù)平滑,我們可以通過檢查樣本內(nèi)預(yù)測(cè)誤差是否在滯后1-20處顯示非零自相關(guān)來檢查是否可以改進(jìn)預(yù)測(cè)模型。例如,對(duì)于裙邊折邊數(shù)據(jù),我們可以制作一個(gè)相關(guān)圖,并通過鍵入以下內(nèi)容來執(zhí)行Ljung-Box測(cè)試:
此處相關(guān)圖顯示滯后5處的樣本內(nèi)預(yù)測(cè)誤差的樣本自相關(guān)超過了顯著性邊界。然而,我們預(yù)計(jì)前20個(gè)國家中20個(gè)自相關(guān)中有一個(gè)僅僅偶然地超過95%的顯著性界限。實(shí)際上,當(dāng)我們進(jìn)行Ljung-Box檢驗(yàn)時(shí),p值為0.47,表明在1-20落后的樣本內(nèi)預(yù)測(cè)誤差中幾乎沒有證據(jù)表明存在非零自相關(guān)。 對(duì)于簡單的指數(shù)平滑,我們還應(yīng)檢查預(yù)測(cè)誤差隨時(shí)間的變化是否恒定,并且通常以均值0分布。我們可以通過制作預(yù)測(cè)誤差的時(shí)間圖和預(yù)測(cè)誤差分布的直方圖以及覆蓋的正常曲線來做到這一點(diǎn):
預(yù)測(cè)誤差的時(shí)間圖表明預(yù)測(cè)誤差隨時(shí)間變化大致不變。預(yù)測(cè)誤差的直方圖表明,預(yù)測(cè)誤差通常以均值零和常數(shù)方差分布是合理的。 因此,Ljung-Box測(cè)試表明,預(yù)測(cè)誤差中幾乎沒有自相關(guān)的證據(jù),而預(yù)測(cè)誤差的時(shí)間圖和直方圖表明,預(yù)測(cè)誤差通常以均值零和常數(shù)方差分布是合理的。因此,我們可以得出結(jié)論,霍爾特的指數(shù)平滑為裙擺直徑提供了足夠的預(yù)測(cè)模型,這可能無法改進(jìn)。此外,這意味著80%和95%預(yù)測(cè)區(qū)間所基于的假設(shè)可能是有效的。 Holt-Winters指數(shù)平滑如果您有一個(gè)時(shí)間序列可以使用增加或減少趨勢(shì)和季節(jié)性的加法模型來描述,您可以使用Holt-Winters指數(shù)平滑來進(jìn)行短期預(yù)測(cè)。 Holt-Winters指數(shù)平滑估計(jì)當(dāng)前時(shí)間點(diǎn)的水平,斜率和季節(jié)性分量。平滑由三個(gè)參數(shù)控制:α,β和γ,分別用于當(dāng)前時(shí)間點(diǎn)的水平估計(jì),趨勢(shì)分量的斜率b和季節(jié)分量。參數(shù)alpha,beta和gamma都具有介于0和1之間的值,并且接近0的值意味著在對(duì)未來值進(jìn)行預(yù)測(cè)時(shí)對(duì)最近的觀察值的權(quán)重相對(duì)較小。 可以使用具有趨勢(shì)和季節(jié)性的附加模型描述的時(shí)間序列的示例是澳大利亞昆士蘭州的海灘度假小鎮(zhèn)紀(jì)念品商店的月銷售日志的時(shí)間序列(如上所述): 為了進(jìn)行預(yù)測(cè),我們可以使用HoltWinters()函數(shù)擬合預(yù)測(cè)模型。例如,為了適應(yīng)紀(jì)念品商店每月銷售日志的預(yù)測(cè)模型,我們輸入:
α,β和γ的估計(jì)值分別為0.41,0.00和0.96。α(0.41)的值相對(duì)較低,表明當(dāng)前時(shí)間點(diǎn)的水平估計(jì)是基于最近的觀察和更遠(yuǎn)的過去的一些觀察。β的值為0.00,表示趨勢(shì)分量的斜率b的估計(jì)值不在時(shí)間序列上更新,而是設(shè)置為等于其初始值。這具有良好的直觀感,因?yàn)樗皆跁r(shí)間序列上發(fā)生了相當(dāng)大的變化,但趨勢(shì)分量的斜率b保持大致相同。相反,伽馬值(0.96)很高,表明當(dāng)前時(shí)間點(diǎn)的季節(jié)性成分估計(jì)僅基于最近的觀察。 對(duì)于簡單的指數(shù)平滑和Holt的指數(shù)平滑,我們可以將原始時(shí)間序列繪制為黑色線條,預(yù)測(cè)值為紅線,頂部為:
我們從圖中看到,Holt-Winters指數(shù)法非常成功地預(yù)測(cè)了季節(jié)性峰值,這種峰值大致發(fā)生在每年的11月。 為了對(duì)未包含在原始時(shí)間序列中的未來時(shí)間進(jìn)行預(yù)測(cè),我們?cè)凇邦A(yù)測(cè)”包中使用“forecast.HoltWinters()”函數(shù)。例如,紀(jì)念品銷售的原始數(shù)據(jù)是從1987年1月到1993年12月。如果我們想要預(yù)測(cè)1994年1月至1998年12月(48個(gè)月以上),并繪制預(yù)測(cè)圖,我們將輸入:
預(yù)測(cè)顯示為藍(lán)線,橙色和黃色陰影區(qū)域分別顯示80%和95%的預(yù)測(cè)間隔。 我們可以通過檢查樣本內(nèi)預(yù)測(cè)誤差是否在滯后1-20處顯示非零自相關(guān),通過制作相關(guān)圖并執(zhí)行Ljung-Box測(cè)試來研究是否可以改進(jìn)預(yù)測(cè)模型:
相關(guān)圖表明,樣本內(nèi)預(yù)測(cè)誤差的自相關(guān)不超過滯后1-20的顯著性界限。此外,Ljung-Box檢驗(yàn)的p值為0.6,表明在滯后1-20處幾乎沒有證據(jù)表明存在非零自相關(guān)。 我們可以通過制作預(yù)測(cè)誤差和直方圖(具有重疊的正常曲線)的時(shí)間圖來檢查預(yù)測(cè)誤差是否隨時(shí)間具有恒定的方差,并且通常以均值0分布:
從時(shí)間圖中可以看出,預(yù)測(cè)誤差隨時(shí)間變化具有恒定的變化。根據(jù)預(yù)測(cè)誤差的直方圖,預(yù)測(cè)誤差通常以均值零分布似乎是合理的。 因此,對(duì)于預(yù)測(cè)誤差,幾乎沒有證據(jù)表明在滯后1-20處存在自相關(guān),并且預(yù)測(cè)誤差似乎正態(tài)分布,均值為零,且隨時(shí)間變化恒定。這表明Holt-Winters指數(shù)平滑提供了紀(jì)念品商店銷售記錄的充分預(yù)測(cè)模型,這可能無法改進(jìn)。此外,預(yù)測(cè)區(qū)間所基于的假設(shè)可能是有效的。 ARIMA模型指數(shù)平滑方法對(duì)于進(jìn)行預(yù)測(cè)是有用的,并且不對(duì)時(shí)間序列的連續(xù)值之間的相關(guān)性做出假設(shè)。但是,如果要對(duì)使用指數(shù)平滑方法進(jìn)行的預(yù)測(cè)進(jìn)行預(yù)測(cè)間隔,則預(yù)測(cè)間隔要求預(yù)測(cè)誤差不相關(guān),并且通常以均值零和常數(shù)方差分布。 雖然指數(shù)平滑方法不對(duì)時(shí)間序列的連續(xù)值之間的相關(guān)性做出任何假設(shè),但在某些情況下,您可以通過考慮數(shù)據(jù)中的相關(guān)性來建立更好的預(yù)測(cè)模型。自回歸整合移動(dòng)平均(ARIMA)模型包括時(shí)間序列的不規(guī)則分量的顯式統(tǒng)計(jì)模型,其允許不規(guī)則分量中的非零自相關(guān)。 區(qū)分時(shí)間序列ARIMA模型定義為固定時(shí)間序列。因此,如果您從一個(gè)非平穩(wěn)的時(shí)間序列開始,您將首先需要“區(qū)分”時(shí)間序列,直到您獲得一個(gè)固定的時(shí)間序列。如果你必須將時(shí)間序列d次除以獲得一個(gè)固定序列,那么你有一個(gè)ARIMA(p,d,q)模型,其中d是差分的使用順序。 你可以使用R中的“diff()”函數(shù)來區(qū)分時(shí)間序列。例如,從1866年到1911年,女性裙子在1866年到1911年的年直徑的時(shí)間序列并不是平穩(wěn)的,因?yàn)樗阶兓艽箅S著時(shí)間的推移: 我們可以將時(shí)間序列(我們存儲(chǔ)在“裙子系列”中,見上文)區(qū)分一次,并通過輸入以下內(nèi)容繪制差異系列:
由此產(chǎn)生的第一個(gè)差異的時(shí)間序列(上圖)似乎并不是平穩(wěn)的。因此,我們可以將時(shí)間序列區(qū)分兩次,看看是否為我們提供了一個(gè)固定的時(shí)間序列:
平穩(wěn)性的正式測(cè)試 fUnitRoots包中提供了稱為“單位根測(cè)試”的平穩(wěn)性的正式測(cè)試,可在CRAN上獲得,但這里不再討論。 第二個(gè)差異的時(shí)間序列(上圖)在均值和方差中似乎是平穩(wěn)的,因?yàn)樾蛄械乃诫S時(shí)間保持大致恒定,并且序列的方差隨時(shí)間顯得大致恒定。因此,似乎我們需要將裙子直徑的時(shí)間序列區(qū)分兩次以實(shí)現(xiàn)固定系列。 如果您需要將原始時(shí)間序列數(shù)據(jù)區(qū)分d次以獲得固定時(shí)間序列,這意味著您可以為時(shí)間序列使用ARIMA(p,d,q)模型,其中d是使用差分的順序。例如,對(duì)于女性裙子直徑的時(shí)間序列,我們必須將時(shí)間序列區(qū)分兩次,因此差異(d)的順序?yàn)?.這意味著您可以使用ARIMA(p,2,q)你的時(shí)間序列的模型。下一步是計(jì)算ARIMA模型的p和q值。 另一個(gè)例子是英格蘭歷代國王的死亡時(shí)間序列(見上文): 從時(shí)間圖(上圖),我們可以看出時(shí)間序列不是平均值。要計(jì)算第一個(gè)差異的時(shí)間序列并繪制它,我們鍵入:
第一個(gè)差異的時(shí)間序列在均值和方差上似乎是固定的,因此ARIMA(p,1,q)模型可能適合于英格蘭國王的死亡年齡的時(shí)間序列。通過采用第一個(gè)差異的時(shí)間序列,我們刪除了國王死亡時(shí)代的時(shí)間序列的趨勢(shì)分量,并留下不規(guī)則的成分。我們現(xiàn)在可以檢查這個(gè)不規(guī)則分量的連續(xù)項(xiàng)之間是否存在相關(guān)性; 如果是這樣,這可以幫助我們?yōu)閲跛劳龅哪挲g做出預(yù)測(cè)模型。 選擇候選ARIMA模型如果您的時(shí)間序列是靜止的,或者您通過差分d次將其轉(zhuǎn)換為靜止時(shí)間序列,則下一步是選擇適當(dāng)?shù)腁RIMA模型,這意味著為ARIMA找到最合適的p和q值的值(p,d,q)模型。為此,您通常需要檢查靜止時(shí)間序列的相關(guān)圖和部分相關(guān)圖。 要繪制相關(guān)圖和部分相關(guān)圖,我們可以分別使用R中的“acf()”和“pacf()”函數(shù)。為了獲得自相關(guān)和部分自相關(guān)的實(shí)際值,我們?cè)凇癮cf()”和“pacf()”函數(shù)中設(shè)置“plot = FALSE”。 英國國王死亡時(shí)代的例子 例如,為了繪制英格蘭國王死亡時(shí)間的一次差異時(shí)間序列的滯后1-20的相關(guān)圖,并獲得自相關(guān)的值,我們輸入:
我們從相關(guān)圖中看到,滯后1(-0.360)處的自相關(guān)超過了顯著邊界,但是滯后1-20之間的所有其他自相關(guān)都沒有超過顯著邊界。 為了繪制英語國王死亡時(shí)間的一次差異時(shí)間序列的滯后1-20的部分相關(guān)圖,并獲得部分自相關(guān)的值,我們使用“pacf()”函數(shù),鍵入:
部分相關(guān)圖顯示滯后1,2和3的部分自相關(guān)超過顯著邊界,為負(fù),并且隨著滯后的增加而在幅度上緩慢下降(滯后1:-0.360,滯后2:-0.335,滯后3:-0.321 )。在滯后3之后,部分自相關(guān)變?yōu)榱恪?/span> 由于在滯后1之后相關(guān)圖為零,并且在滯后3之后部分相關(guān)圖變?yōu)榱?,這意味著對(duì)于第一差異的時(shí)間序列,以下ARMA(自回歸移動(dòng)平均)模型是可能的:
我們使用簡約原理來確定哪個(gè)模型最好:也就是說,我們假設(shè)參數(shù)最少的模型是最好的。ARMA(3,0)模型具有3個(gè)參數(shù),ARMA(0,1)模型具有1個(gè)參數(shù),ARMA(p,q)模型具有至少2個(gè)參數(shù)。因此,ARMA(0,1)模型被認(rèn)為是最佳模型。 ARMA(0,1)模型是階數(shù)1或MA(1)模型的移動(dòng)平均模型。這個(gè)模型可以寫成:X_t - mu = Z_t - (theta * Z_t-1),其中X_t是我們正在研究的平穩(wěn)時(shí)間序列(英國國王死亡時(shí)的第一個(gè)不同年齡系列),mu是平均值時(shí)間序列X_t,Z_t是具有平均零和恒定方差的白噪聲,并且theta是可以估計(jì)的參數(shù)。 MA(移動(dòng)平均)模型通常用于模擬時(shí)間序列,該時(shí)間序列顯示連續(xù)觀察之間的短期依賴性。直覺上,很有意義的是,MA模型可以用來描述英國國王死亡時(shí)間序列中的不規(guī)則成分,因?yàn)槲覀兛梢灶A(yù)期特定英國國王的死亡年齡對(duì)年齡有一定影響。在接下來的一兩個(gè)國王的死亡,但對(duì)國王死亡的年齡影響不大,在那之后更長的統(tǒng)治時(shí)間。 auto.arima()函數(shù) auto.arima()函數(shù)可用于查找適當(dāng)?shù)腁RIMA模型,例如,鍵入“l(fā)ibrary(forecast)”,然后鍵入“auto.arima(kings)”。輸出說適當(dāng)?shù)哪P褪茿RIMA(0,1,1)。 由于ARMA(0,1)模型(p = 0,q = 1)被認(rèn)為是英國國王死亡年齡的第一個(gè)差異的時(shí)間序列的最佳候選模型,那么原始的時(shí)間序列死亡年齡可以使用ARIMA(0,1,1)模型建模(p = 0,d = 1,q = 1,其中d是所需差分的順序)。 使用ARIMA模型進(jìn)行預(yù)測(cè)為時(shí)間序列數(shù)據(jù)選擇最佳候選ARIMA(p,d,q)模型后,您可以估計(jì)該ARIMA模型的參數(shù),并將其用作預(yù)測(cè)模型,以便對(duì)時(shí)間序列的未來值進(jìn)行預(yù)測(cè)。 您可以使用R中的“arima()”函數(shù)估計(jì)ARIMA(p,d,q)模型的參數(shù)。 英國國王死亡時(shí)代的例子 例如,我們?cè)谏厦嬗懻撨^,ARIMA(0,1,1)模型似乎是英格蘭國王死亡年齡的合理模型。您可以使用R中“arima()”函數(shù)的“order”參數(shù)在ARIMA模型中指定p,d和q的值。使ARIMA(p,d,q)模型適合此時(shí)間序列(我們存儲(chǔ)在變量“kingstimeseries”中,見上文),我們輸入:
如上所述,如果我們將ARIMA(0,1,1)模型擬合到我們的時(shí)間序列,則意味著我們將ARMA(0,1)模型擬合到第一個(gè)差異的時(shí)間序列??梢詫懭階RMA(0,1)模型X_t-mu = Z_t - (theta * Z_t-1),其中theta是要估計(jì)的參數(shù)。根據(jù)“arima()”R函數(shù)(上圖)的輸出,在擬合ARIMA(0,1,1)模型的情況下,theta的估計(jì)值(在R輸出中給定為'ma1')為-0.7218到國王死亡的時(shí)間序列。 指定預(yù)測(cè)間隔的置信度 您可以使用“l(fā)evel”參數(shù)在forecast.Arima()中指定預(yù)測(cè)間隔的置信度。例如,要獲得99.5%的預(yù)測(cè)間隔,我們將鍵入“forecast.Arima(kingstimeseriesarima,h = 5,level = c(99.5))”。 然后,我們可以使用ARIMA模型使用“預(yù)測(cè)”R包中的“forecast.Arima()”函數(shù)對(duì)時(shí)間序列的未來值進(jìn)行預(yù)測(cè)。例如,為了預(yù)測(cè)接下來的五位英國國王的死亡年齡,我們輸入:
英國國王的原始時(shí)間序列包括42位英國國王的死亡年齡。forecast.Arima()函數(shù)給出了對(duì)接下來的五位英國國王(國王43-47)的死亡年齡的預(yù)測(cè),以及這些預(yù)測(cè)的80%和95%預(yù)測(cè)區(qū)間。第42位英國國王的死亡年齡為56歲(我們的時(shí)間序列中最后一次觀察到的值),ARIMA模型給出了接下來五位國王死亡的預(yù)測(cè)年齡為67.8歲。 我們可以使用我們的ARIMA(0,1,1)模型繪制前42個(gè)國王的死亡年齡,以及預(yù)測(cè)這42個(gè)國王和接下來的5個(gè)國王的年齡:
與指數(shù)平滑模型的情況一樣,最好研究ARIMA模型的預(yù)測(cè)誤差是否正態(tài)分布為均值為零和常數(shù)方差,以及是否為連續(xù)預(yù)測(cè)誤差之間的相關(guān)性。 例如,我們可以為國王死亡時(shí)的ARIMA(0,1,1)模型制作預(yù)測(cè)誤差的相關(guān)圖,并通過鍵入以下內(nèi)容執(zhí)行Ljung-Box測(cè)試,即滯后1-20。
由于相關(guān)圖顯示滯后1-20的樣本自相關(guān)都不超過顯著性邊界,并且Ljung-Box檢驗(yàn)的p值為0.9,我們可以得出結(jié)論,很少有證據(jù)證明非零自相關(guān)預(yù)測(cè)錯(cuò)誤在滯后1-20。 為了研究預(yù)測(cè)誤差是否正態(tài)分布為均值為零和常數(shù)方差,我們可以制作預(yù)測(cè)誤差的時(shí)間圖和直方圖(帶有重疊的正態(tài)曲線):
樣本內(nèi)預(yù)測(cè)誤差的時(shí)間圖表明,預(yù)測(cè)誤差的方差似乎隨著時(shí)間的推移大致不變(盡管時(shí)間序列的后半部分的方差可能略高)。時(shí)間序列的直方圖顯示預(yù)測(cè)誤差大致正態(tài)分布,均值似乎接近于零。因此,預(yù)測(cè)誤差通常以均值零和常數(shù)方差分布是合理的。 由于連續(xù)的預(yù)測(cè)誤差似乎沒有相關(guān)性,并且預(yù)測(cè)誤差似乎正常分布為均值為零且方差不變,因此ARIMA(0,1,1)似乎確實(shí)為死亡年齡提供了充分的預(yù)測(cè)模型。 |
|