最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

R語言中ARMA,ARIMA(Box-Jenkins),SARIMA和ARIMAX模型用于預(yù)測時(shí)間序列數(shù)據(jù)

2020-11-25 13:07 作者:拓端tecdat  | 我要投稿

?原文鏈接:http://tecdat.cn/?p=5919

?

在本文中,我將介紹ARMA,ARIMA(Box-Jenkins),SARIMA和ARIMAX模型如何用于預(yù)測給定的時(shí)間序列數(shù)據(jù)。

?

使用后移運(yùn)算符計(jì)算滯后差分

我們可以使用backshift運(yùn)算符來執(zhí)行計(jì)算。例如,后軸運(yùn)算符可用于計(jì)算的時(shí)間序列值的滯后差異?y經(jīng)由yi?Bk(yi),?i∈k+1,…,tyi?Bk(yi),?i∈k+1,…,t其中kk表示的差異滯后。對(duì)于k=1k=1,我們獲得普通的成對(duì)差異,而對(duì)于k=2k=2我們獲得相對(duì)于前任先前的成對(duì)差異。讓我們考慮R中的一個(gè)例子。

使用R,我們可以使用diff函數(shù)計(jì)算滯后差異。函數(shù)的第二個(gè)參數(shù)表示所需的滯后kk,默認(rèn)設(shè)置為k=1k=1。例如:


  1. By <- diff(y) # y_i - B y_i

  2. B3y <- diff(y, 3) # y_i - B^3 y_i

  3. message(paste0("y is: ", paste(y, collapse =

  1. ## y is: 1,3,5,10,20

  2. ## By is: 2,2,5,10

  3. ## B^3y is: 9,17

?自相關(guān)函數(shù)

?

要計(jì)算自相關(guān),我們可以使用以下R函數(shù):

  1. get_autocor <- function(x, lag) {

  2. x.left <- x[1:(length(x) - lag)]

  3. x.right <- x[(1+lag):(length(x))]

  4. autocor <- cor(x.left, x.right)

  5. return(autocor)

  6. }

?

  1. get_autocor(y, 1)

  2. ## [1] 0.9944627

  3. # correlation of measurements 2 time points apart (lag 2)

  4. get_autocor(y, 2)

  5. ## [1] 0.9819805

?

數(shù)據(jù)的高度自相關(guān)表明數(shù)據(jù)具有明確的時(shí)間趨勢。

偏自相關(guān)

由于觀察到較大滯后的自相關(guān)可以是較低滯后的相關(guān)結(jié)果,因此通常值得考慮部分自相關(guān)函數(shù)(pACF)。pACF的想法是計(jì)算部分相關(guān)性,這種相關(guān)性決定了對(duì)變量的最近觀察的相關(guān)性。pACF定義為:

?

φkk:=Corr(yt,yt?k|yt?1,?,yt?k+1)k=0,1,2,?φkk:=Corr?(yt,yt?k|yt?1,?,yt?k+1)k=0,1,2,?

?

使用pACF可以識(shí)別是否存在實(shí)際滯后的自相關(guān)或這些自相關(guān)是否是由其他測量引起的。

計(jì)算和繪制ACF和pACF的最簡單方法是分別使用acfpacf函數(shù):

  1. par(mfrow = c(1,2))

  2. acf(y) # conventional ACF

  3. pacf(y) # pACF

在ACF可視化中,ACF或pACF被繪制為滯后的函數(shù)。指示的水平藍(lán)色虛線表示自相關(guān)顯著的水平。

分解時(shí)間序列數(shù)據(jù)

  • ?StSt

  • TtTt

  • ?t?t

執(zhí)行分解的方式取決于時(shí)間序列數(shù)據(jù)是加法還是乘法。

加法和乘法時(shí)間序列數(shù)據(jù)

加法模型假設(shè)數(shù)據(jù)可以分解為

?

yt?=?St?+?Tt?+??t.yt?=?St?+?Tt?+??t.

?

另一方面,乘法模型假設(shè)數(shù)據(jù)可以被分解為

?

?

  • 添加劑:每個(gè)時(shí)期的季節(jié)效應(yīng)放大器相似。

  • 乘法:季節(jié)性趨勢隨時(shí)間序列的變化而變化。

AirPassengers數(shù)據(jù)集提供了乘法時(shí)間序列的示例。

  1. data(AirPassengers)

  2. plot(AirPassengers)

log(StTt?t)=log(St)+log(Tt)+log(?t)log?(StTt?t)=log?(St)+log?(Tt)+log?(?t)AirPassengers?數(shù)據(jù)集:

plot(log(AirPassengers))

正如我們所看到的,采用對(duì)數(shù)已經(jīng)使季節(jié)性成分的幅度沿時(shí)間均衡。請(qǐng)注意,總體增長趨勢沒有改變。

在R中分解時(shí)間序列數(shù)據(jù)

要分解R中的時(shí)間序列數(shù)據(jù),我們可以使用該decompose函數(shù)。請(qǐng)注意,我們應(yīng)該通過type參數(shù)提供時(shí)間序列是加法的還是乘法的。

示例1:AirPassengers數(shù)據(jù)集

對(duì)于AirPassengers數(shù)據(jù)集,我們指定數(shù)據(jù)是乘法的并獲得以下分解:

plot(decompose(AirPassengers, type = "multiplicative"))

分解表明,多年來航空公司乘客總數(shù)在增加。此外,我們已經(jīng)觀察到的季節(jié)性影響已被清楚地捕捉到。

示例2:EuStockMarkets數(shù)據(jù)集

讓我們考慮可以為EuStockMarkets數(shù)據(jù)集找到的分解:

  1. daxData <- EuStockMarkets[, 1] # DAX data# data do not seem to be multiplicative, use additive decomposition

  2. decomposed <- decompose(daxData, type = "additive")

  3. plot(decomposed)

該圖顯示了1992年至1998年的DAX數(shù)據(jù)中的以下內(nèi)容:

  • 整體價(jià)值穩(wěn)步上升。

  • 季節(jié)性趨勢強(qiáng)烈:每年年初,股價(jià)相對(duì)較低,并在夏季結(jié)束時(shí)達(dá)到相對(duì)最大值。

  • 除1997年和1998年之間的最終測量外,隨機(jī)噪聲的貢獻(xiàn)可以忽略不計(jì)。

平穩(wěn)與非平穩(wěn)過程

生成時(shí)間序列數(shù)據(jù)的過程可以是平穩(wěn)的也可以是非平穩(wěn)的。 例如,數(shù)據(jù)EuStockMarketsAirPassengers數(shù)據(jù)都是非平穩(wěn)的,因?yàn)閿?shù)據(jù)有增加的趨勢。為了更好地區(qū)分平穩(wěn)和非平穩(wěn)過程,請(qǐng)考慮以下示例:

  1. par(mfrow = c(1,2))# climate data library(tseries)

  2. data(nino)

  3. x <- nino3.4

  4. plot(x, main = "Stationary process")# aircraft passenger data

  5. plot(AirPassengers, main = "Non-stationary process")

左圖顯示了一個(gè)平穩(wěn)過程,其中數(shù)據(jù)在所有測量中表現(xiàn)相似。右圖顯示了一個(gè)非平穩(wěn)過程,其中平均值隨著時(shí)間的推移而增加。

介紹了與時(shí)間序列數(shù)據(jù)分析相關(guān)的最重要概念后,我們現(xiàn)在可以開始研究預(yù)測模型。

ARMA模型

ARMA代表自回歸移動(dòng)平均線。ARMA模型僅適用于平穩(wěn)過程,并具有兩個(gè)參數(shù):

  • p:自回歸(AR)模型的順序

  • q:移動(dòng)平均(MA)模型的順序

ARMA模型可以指定為

?

?

使用以下變量:

  • cc

  • ?t?ttt?t~N(0,σ2)?t~N(0,σ2)

  • ?∈Rp?∈Rp

  • ytyttt

  • θ∈Rqθ∈Rq

  • ?t?ttt

使用backshift運(yùn)算符制定ARMA模型

使用backshift運(yùn)算符,我們可以通過以下方式制定ARMA模型:

?

?

?p(B)=1?∑pi=1?iBi?p(B)=1?∑i=1p?iBiθq(B)=1?∑qj=1θjBjθq(B)=1?∑j=1qθjBj

?

?p(B)yt=θq(B)?t.?p(B)yt=θq(B)?t.

?

ARIMA模型

?

總之,ARIMA模型具有以下三個(gè)參數(shù):

  • p:自回歸(AR)模型的順序

  • d:差異程度

  • q:移動(dòng)平均(MA)模型的順序

在ARIMA模型中,通過將替換差異,將結(jié)果轉(zhuǎn)換為差異ytyt

?

(1?B)dyt.(1?B)dyt.

?

然后通過指定模型

?

?p(B)(1?B)dyt=θq(B)?t.?p(B)(1?B)dyt=θq(B)?t.

?

d=0d=0(1?B)0yt=yt(1?B)0yt=ytdd

?

(1?B)1yt(1?B)2yt=yt?yt?1=(1?2B+B2)yt=yt?2yt?1+yt?2(1?B)1yt=yt?yt?1(1?B)2yt=(1?2B+B2)yt=yt?2yt?1+yt?2

?

在下文中,讓我們考慮ARIMA模型的三個(gè)參數(shù)的解釋。

p∈N0p∈N0d=0d=0Byt=yt?1Byt=yt?1?1?1yt?1yt?1yt?2yt?2?1?1?2?2

p=1p=1d=0d=0q=0q=0

?

y^t=μ?t+?1yt?1y^t=μ?t+?1yt?1

?

自回歸的影響

我們可以使用該arima.sim函數(shù)模擬自回歸過程。通過該功能,可以通過提供要使用的MA和AR項(xiàng)的系數(shù)來指定模型。在下文中,我們將繪制自相關(guān)圖,因?yàn)樗钸m合于發(fā)現(xiàn)自回歸的影響。

第一個(gè)例子表明,對(duì)于ARIMA(1,0,0)過程,訂單1的pACF非常高,而對(duì)于ARIMA(2,0,0)過程,訂單1和訂單2自相關(guān)都很重要。因此,可以根據(jù)pACF顯著的最大滯后來選擇AR項(xiàng)的順序。

?ARIMA(0,1,0)模型簡化為隨機(jī)游走模型

?

y^t=μ+?t+yt?1.y^t=μ+?t+yt?1.

?

?差分的影響

以下示例演示了差異對(duì)AirPassengers數(shù)據(jù)集的影響:

雖然第一個(gè)圖表顯示數(shù)據(jù)顯然是非靜止的,但第二個(gè)圖表明差異時(shí)間序列是相當(dāng)靜止的。

其中當(dāng)前估計(jì)值取決于先前測量值的殘差。

移動(dòng)平均線的影響

可以通過繪制自回歸函數(shù)來研究移動(dòng)平均線的影響:

請(qǐng)注意,對(duì)于自回歸圖,我們需要注意第一個(gè)x軸位置表示滯后為0(即標(biāo)識(shí)向量)。在第一個(gè)圖中,只有第一個(gè)滯后的自相關(guān)是顯著的,而第二個(gè)圖表明前兩個(gè)滯后的自相關(guān)是顯著的。為了找到MA術(shù)語的數(shù)量,適用與AR術(shù)語類似的規(guī)則:MA術(shù)語的順序?qū)?yīng)于自相關(guān)顯著的最大滯后。

在AR和MA之間進(jìn)行選擇

為了確定哪個(gè)更合適,AR或MA術(shù)語,我們需要考慮ACF(自相關(guān)函數(shù))和PACF(部分ACF)。使用這些圖我們可以區(qū)分兩個(gè)簽名:

  • pp

  • rr

AR和MA術(shù)語的影響

AR和MA術(shù)語的組合導(dǎo)致以下時(shí)間序列數(shù)據(jù):

?SARIMA模型

  • ?P:季節(jié)性自回歸(SAR)項(xiàng)的數(shù)量

  • D:季節(jié)差異程度

  • 問:季節(jié)性移動(dòng)平均線(SMA)的數(shù)量

?

ARIMAX模型

?

R中的預(yù)測

auto.arimaforecastppddqqPPDDQQstepwiseapproximationFALSE

SARIMA模型用于平穩(wěn)過程

我們將使用數(shù)據(jù)展示ARMA的使用,該數(shù)據(jù)tseries給出了Nino Region 3.4指數(shù)的海面溫度。讓我們驗(yàn)證數(shù)據(jù)是否靜止:

d=0d=0

為了驗(yàn)證是否存在任何季節(jié)性趨勢,我們將分解數(shù)據(jù):

沒有整體趨勢,這是平穩(wěn)過程的典型趨勢。但是,數(shù)據(jù)存在強(qiáng)烈的季節(jié)性因素。因此,我們肯定希望包含對(duì)季節(jié)性影響進(jìn)行建模的參數(shù)。

季節(jié)性模型

(P,D,Q)S(P,D,Q)SD=0D=0

nino

S=12S=12

P=2P=2Q=0Q=0

非季節(jié)性模型

?

?我們可以使用包中的Arima函數(shù)來擬合模型forecast。

我們現(xiàn)在可以使用該模型來預(yù)測未來Nino 3.4地區(qū)的氣溫如何變化。有兩種方法可以從預(yù)測模型中獲得預(yù)測。第一種方法依賴于predict函數(shù),而第二種方法使用包中的forecast函數(shù)forecast。使用該predict功能,我們可以通過以下方式預(yù)測和可視化結(jié)果:

  1. ##

  2. ## Attaching package: 'ggplot2'

  1. ## The following object is masked from 'package:forecast':

  2. ##

  3. ## ? ? autolayer

如果我們不需要自定義繪圖,我們可以使用以下forecast函數(shù)更輕松地獲取預(yù)測和相應(yīng)的可視化:

  1. # use the forecast function to use the built-in plotting function:

  2. forecast <- forecast(A, h = 60) # predict 5 years into the future

  3. plot(forecast)

用于非平穩(wěn)數(shù)據(jù)的ARIMA模型

為了演示ARIMA模型對(duì)非平穩(wěn)數(shù)據(jù)的使用,我們將使用數(shù)據(jù)集astsa。該數(shù)據(jù)集提供全球平均陸地 - 海洋溫度偏差的年度測量值。

d=1d=1


??

p=0p=0q=1q=1

我們現(xiàn)在可以預(yù)測未來幾年平均陸地 - 海洋溫度偏差將如何變化:

該模型表明,未來幾年平均陸地 - 海洋溫度偏差將進(jìn)一步增加。

關(guān)于空氣質(zhì)量數(shù)據(jù)集的ARIMAX

為了展示ARIMAX模型的使用,我們將使用臭氧數(shù)據(jù)集 。

讓我們加載臭氧數(shù)據(jù)集并將其劃分為測試和訓(xùn)練集。請(qǐng)注意,我們已確保訓(xùn)練和測試數(shù)據(jù)包含連續(xù)的時(shí)間測量。

由于數(shù)據(jù)集未指示相對(duì)時(shí)間點(diǎn),我們將手動(dòng)創(chuàng)建此類注釋:

為此,我們將在臭氧數(shù)據(jù)集中創(chuàng)建一個(gè)新列,該列反映了相對(duì)時(shí)間點(diǎn):

現(xiàn)在我們有了時(shí)間維度,我們可以繪制臭氧水平的縱向行為:

時(shí)間序列數(shù)據(jù)似乎是平穩(wěn)的。讓我們考慮ACF和pACF圖,看看我們應(yīng)該考慮哪些AR和MA術(shù)語

自相關(guān)圖非常不清楚,這表明數(shù)據(jù)中實(shí)際上沒有時(shí)間趨勢。因此,我們會(huì)選擇ARIMA(0,0,0)模型。由于具有參數(shù)(0,0,0)的ARIMAX模型沒有傳統(tǒng)線性回歸模型的優(yōu)勢,我們可以得出結(jié)論,臭氧數(shù)據(jù)的時(shí)間趨勢不足以改善臭氧水平的預(yù)測。讓我們驗(yàn)證一下:

print(Rsquared.linear)## [1] 0.7676977print(Rsquared.temporal)## [1] 0.7569718

我們可以看到具有負(fù)二項(xiàng)式可能性的線性模型優(yōu)于ARIMAX模型。

關(guān)于空氣質(zhì)量數(shù)據(jù)集的ARIMAX

要在更合適的數(shù)據(jù)集上演示ARIMAX模型,讓我們加載數(shù)據(jù)集:

Icecream數(shù)據(jù)集包含以下變量:

  • 缺點(diǎn):人均品脫的冰淇淋消費(fèi)量。

  • 收入::美元平均每周家庭收入。

  • 價(jià)格:每品脫冰淇淋的價(jià)格。

  • temp:華氏溫度的平均溫度。

測量結(jié)果是從1951-03-18到1953-07-11的四周觀測。

我們將模擬缺點(diǎn),冰淇淋消費(fèi)作為時(shí)間序列,并使用收入,價(jià)格和平均值作為外生變量。在開始建模之前,我們將從數(shù)據(jù)框中創(chuàng)建一個(gè)時(shí)間序列對(duì)象。

我們現(xiàn)在調(diào)查數(shù)據(jù):

因此,數(shù)據(jù)有兩種趨勢:

  1. 總體而言,1951年至1953年間,冰淇淋的消費(fèi)量大幅增加。

  2. 冰淇淋銷售在夏季達(dá)到頂峰。

ppqq

由于季節(jié)性趨勢,我們可能適合ARIMA(1,0,0)(1,0,0)模型。但是,由于我們知道溫度和外生變量的收入,因此它們可以解釋數(shù)據(jù)的趨勢:

由于income解釋了整體趨勢,我們不需要漂移術(shù)語。此外,由于temp解釋了季節(jié)性趨勢,我們不需要季節(jié)性模型。因此,我們應(yīng)該使用ARIMAX(1,0,0)模型進(jìn)行預(yù)測。為了研究這些假設(shè)是否成立,我們將使用以下代碼將ARIMAX(1,0,0)模型與ARIMA(1,0,0)(1,0,0)模型進(jìn)行比較

ARIMAX(1,0,0)模型的預(yù)測顯示為藍(lán)色,而ARIMA(1,0,0)(1,0,0)模型的預(yù)測顯示為虛線。實(shí)際觀察值顯示為黑線。結(jié)果表明,ARIMAX(1,0,0)明顯比ARIMA(1,0,0)(1,0,0)模型更準(zhǔn)確。

但請(qǐng)注意,ARIMAX模型在某種程度上不像純ARIMA模型那樣有用于預(yù)測。這是因?yàn)?,ARIMAX模型需要對(duì)應(yīng)該預(yù)測的任何新數(shù)據(jù)點(diǎn)進(jìn)行外部測量。例如,對(duì)于冰淇淋數(shù)據(jù)集,我們沒有超出1953-07-11的外生數(shù)據(jù)。因此,我們無法使用ARIMAX模型預(yù)測超出此時(shí)間點(diǎn),而ARIMA模型可以實(shí)現(xiàn):

?

如果您有任何疑問,請(qǐng)?jiān)谙旅姘l(fā)表評(píng)論。?


R語言中ARMA,ARIMA(Box-Jenkins),SARIMA和ARIMAX模型用于預(yù)測時(shí)間序列數(shù)據(jù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
清远市| 乐陵市| 会同县| 察雅县| 正安县| 嫩江县| 阳朔县| 定兴县| 宁阳县| 美姑县| 轮台县| 柘荣县| 黄陵县| 岳阳县| 黔西县| 辽阳市| 博罗县| 高清| 金坛市| 景德镇市| 河津市| 崇义县| 绥阳县| 汝州市| 磐石市| 黄山市| 博乐市| 宁波市| 瑞丽市| 古田县| 故城县| 北流市| 信宜市| 藁城市| 高淳县| 涞水县| 连江县| 大名县| 鄯善县| 六安市| 五家渠市|