R语言中ARMA,ARIMA(Box-Jenkins),SARIMA和ARIMAX模型用于预测时间序列数据
在本文中,我將介紹ARMA,ARIMA(Box-Jenkins),SARIMA和ARIMAX模型如何用于預(yù)測給定的時間序列數(shù)據(jù)。
?
使用后移運算符計算滯后差異
我們可以使用backshift運算符來執(zhí)行計算。例如,后軸運算符可用于計算的時間序列值的滯后差異?y經(jīng)由yi?Bk(yi),?i∈k+1,…,tyi?Bk(yi),?i∈k+1,…,t其中kk表示的差異滯后。對于k=1k=1,我們獲得普通的成對差異,而對于k=2k=2我們獲得相對于前任先前的成對差異。讓我們考慮R中的一個例子。
使用R,我們可以使用diff函數(shù)計算滯后差異。函數(shù)的第二個參數(shù)表示所需的滯后kk,默認(rèn)設(shè)置為k=1k=1。例如:
By <- diff(y) <span style="color:#888888"># y_i - B y_i</span> B3y <- diff(y, <span style="color:#880000">3</span>) <span style="color:#888888"># y_i - B^3 y_i</span> message(paste0(<span style="color:#880000">"y is: "</span>, paste(y, collapse = <span style="color: ## y is: 1,3,5,10,20 ## By is: 2,2,5,10 ## B^3y is: 9,17?自相關(guān)函數(shù)
?
要計算自相關(guān),我們可以使用以下R函數(shù):
<span style="color:#000000"><span style="color:#000000"><code>get_autocor <- <strong>function</strong>(x, lag) {x.left <- x[<span style="color:#880000">1</span>:(length(x) - lag)]x.right <- x[(<span style="color:#880000">1</span>+lag):(length(x))]autocor <- cor(x.left, x.right)<strong>return</strong>(autocor) }</code></span></span>?
<span style="color:#000000"><span style="color:#000000"><code><span style="color:#888888"># correlation of measurements 1 time point apart (lag 1)</span> get_autocor(y, <span style="color:#880000">1</span>) </code></span></span> ## [1] 0.9944627 <span style="color:#000000"><span style="color:#000000"><code><span style="color:#888888"># correlation of measurements 2 time points apart (lag 2)</span> get_autocor(y, <span style="color:#880000">2</span>)</code></span></span> ## [1] 0.9819805數(shù)據(jù)的高度自相關(guān)表明數(shù)據(jù)具有明確的時間趨勢。
部分自相關(guān)
由于觀察到較大滯后的自相關(guān)可以是較低滯后的相關(guān)結(jié)果,因此通常值得考慮部分自相關(guān)函數(shù)(pACF)。pACF的想法是計算部分相關(guān)性,這種相關(guān)性決定了對變量的最近觀察的相關(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可以識別是否存在實際滯后的自相關(guān)或這些自相關(guān)是否是由其他測量引起的。
計算和繪制ACF和pACF的最簡單方法是分別使用acf和pacf函數(shù):
<span style="color:#000000"><span style="color:#000000"><code>par(mfrow = c(<span style="color:#880000">1</span>,<span style="color:#880000">2</span>)) acf(y) <span style="color:#888888"># conventional ACF</span> pacf(y) <span style="color:#888888"># pACF</span></code></span></span>
在ACF可視化中,ACF或pACF被繪制為滯后的函數(shù)。指示的水平藍(lán)色虛線表示自相關(guān)顯著的水平。
分解時間序列數(shù)據(jù)
- ?StSt
- TtTt
- ?t?t
執(zhí)行分解的方式取決于時間序列數(shù)據(jù)是加法還是乘法。
加法和乘法時間序列數(shù)據(jù)
加法模型假設(shè)數(shù)據(jù)可以分解為
?
yt?=?St?+?Tt?+??t.yt?=?St?+?Tt?+??t.
?
另一方面,乘法模型假設(shè)數(shù)據(jù)可以被分解為
?
?
- 添加劑:每個時期的季節(jié)效應(yīng)放大器相似。
- 乘法:季節(jié)性趨勢隨時間序列的變化而變化。
AirPassengers數(shù)據(jù)集提供了乘法時間序列的示例。
<span style="color:#000000"><span style="color:#000000"><code>data(AirPassengers) plot(AirPassengers)</code></span></span>
log(StTt?t)=log(St)+log(Tt)+log(?t)log?(StTt?t)=log?(St)+log?(Tt)+log?(?t)AirPassengers?數(shù)據(jù)集:
<span style="color:#000000"><span style="color:#000000"><code>plot(log(AirPassengers))</code></span></span>
正如我們所看到的,采用對數(shù)已經(jīng)使季節(jié)性成分的幅度沿時間均衡。請注意,總體增長趨勢沒有改變。
在R中分解時間序列數(shù)據(jù)
要分解R中的時間序列數(shù)據(jù),我們可以使用該decompose函數(shù)。請注意,我們應(yīng)該通過type參數(shù)提供時間序列是加法的還是乘法的。
示例1:AirPassengers數(shù)據(jù)集
對于AirPassengers數(shù)據(jù)集,我們指定數(shù)據(jù)是乘法的并獲得以下分解:
<span style="color:#000000"><span style="color:#000000"><code>plot(decompose(AirPassengers, type = <span style="color:#880000">"multiplicative"</span>))</code></span></span>
分解表明,多年來航空公司乘客總數(shù)在增加。此外,我們已經(jīng)觀察到的季節(jié)性影響已被清楚地捕捉到。
示例2:EuStockMarkets數(shù)據(jù)集
讓我們考慮可以為EuStockMarkets數(shù)據(jù)集找到的分解:
<span style=" /span>] <span style="color:#888888"># DAX data</span> <span style="color:#888888"># data do not seem to be multiplicative, use additive decomposition</span> decomposed <- decompose(daxData, type = <
該圖顯示了1992年至1998年的DAX數(shù)據(jù)中的以下內(nèi)容:
- 整體價值穩(wěn)步上升。
- 季節(jié)性趨勢強(qiáng)烈:每年年初,股價相對較低,并在夏季結(jié)束時達(dá)到相對最大值。
- 除1997年和1998年之間的最終測量外,隨機(jī)噪聲的貢獻(xiàn)可以忽略不計。
固定與非固定過程
生成時間序列數(shù)據(jù)的過程可以是靜止的也可以是非靜止的。 例如,數(shù)據(jù)EuStockMarkets和AirPassengers數(shù)據(jù)都是非平穩(wěn)的,因為數(shù)據(jù)有增加的趨勢。為了更好地區(qū)分固定和非固定過程,請考慮以下示例:
<span style="color "># climate data </span> <strong>library</strong>(tseries) data(nino)
左圖顯示了一個靜止過程,其中數(shù)據(jù)在所有測量中表現(xiàn)相似。右圖顯示了一個非平穩(wěn)過程,其中平均值隨著時間的推移而增加。
介紹了與時間序列數(shù)據(jù)分析相關(guān)的最重要概念后,我們現(xiàn)在可以開始研究預(yù)測模型。
ARMA模型
ARMA代表自回歸移動平均線。ARMA模型僅適用于固定過程,并具有兩個參數(shù):
- p:自回歸(AR)模型的順序
- q:移動平均(MA)模型的順序
ARMA模型可以指定為
?
?^?=?c?+?ε?+?Σi?=?1pφ一世?t?-?我-?Σj?=?1qθ?εt?-?j。y^t=c+?t+∑i=1p?iyt?i?∑j=1qθj?t?j.
?
使用以下變量:
- cc
- ?t?ttt?t~N(0,σ2)?t~N(0,σ2)
- ?∈Rp?∈Rp
- ytyttt
- θ∈Rqθ∈Rq
- ?t?ttt
使用backshift運算符制定ARMA模型
使用backshift運算符,我們可以通過以下方式制定ARMA模型:
?
(?1?-?Σi?=?1pφ一世乙一世)y?=?(?1?-?Σj?=?1qθ?乙?)ε?(1?∑i=1p?iBi)yt=(1?∑j=1qθjBj)?j
?
?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模型
dd
總之,ARIMA模型具有以下三個參數(shù):
- p:自回歸(AR)模型的順序
- d:差異程度
- q:移動平均(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模型的三個參數(shù)的解釋。
pp
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項的系數(shù)來指定模型。在下文中,我們將繪制自相關(guān)圖,因為它最適合于發(fā)現(xiàn)自回歸的影響。
<span styl 0" /span>) par(mfrow = c(<span style="color:#880000">2</span>, <span style="color:#880000">2</span>)) <span style="color:#888888"># 880000">"ARIMA(1,0,0)"</span>) <span style="color:#888888"># plot partial acf</span> acf(x, type = <span style="color:#880000">"partial"</span>, main = <span style="color:#880000">"Partial aut "color:#880000">0.65</span>, <span style="color:#880000">0.3</span>)), n = <span style="color:#880000">1000</span>) plot(x, main = <span style="color:#880000">"ARIMA(2,0,0)"</span>) acf(x, type = <span style="color:#880000">"partial"< span></span>
第一個例子表明,對于ARIMA(1,0,0)過程,訂單1的pACF非常高,而對于ARIMA(2,0,0)過程,訂單1和訂單2自相關(guān)都很重要。因此,可以根據(jù)pACF顯著的最大滯后來選擇AR項的順序。
dd
?ARIMA(0,1,0)模型簡化為隨機(jī)游走模型
?
y^t=μ+?t+yt?1.y^t=μ+?t+yt?1.
?
?差異的影響
以下示例演示了差異對AirPassengers數(shù)據(jù)集的影響:
<span style="color:#0 "><span style /span>), main = <span style="color:#880000">"After differencing"</span>)</code></span></span>
雖然第一個圖表顯示數(shù)據(jù)顯然是非靜止的,但第二個圖表明差異時間序列是相當(dāng)靜止的。
?
?
其中當(dāng)前估計值取決于先前測量值的殘差。
移動平均線的影響
可以通過繪制自回歸函數(shù)來研究移動平均線的影響:
<span style="color:#00 # Example for ARIMA(0,0,1)</span> x <- arima.sim(list(ma = <span style="color:#880000">0.75</span>),n = <span style="color:#880000">1000</span>) plot(x, main = <span style="color:#880000">"ARIMA(0,0,1)"</span>) acf(x, main = <span style="color:#88000 n"</span>)</code></span></span>
請注意,對于自回歸圖,我們需要注意第一個x軸位置表示滯后為0(即標(biāo)識向量)。在第一個圖中,只有第一個滯后的自相關(guān)是顯著的,而第二個圖表明前兩個滯后的自相關(guān)是顯著的。為了找到MA術(shù)語的數(shù)量,適用與AR術(shù)語類似的規(guī)則:MA術(shù)語的順序?qū)?yīng)于自相關(guān)顯著的最大滯后。
在AR和MA術(shù)語之間進(jìn)行選擇
為了確定哪個更合適,AR或MA術(shù)語,我們需要考慮ACF(自相關(guān)函數(shù))和PACF(部分ACF)。使用這些圖我們可以區(qū)分兩個簽名:
- pp
- rr
AR和MA術(shù)語的影響
AR和MA術(shù)語的組合導(dǎo)致以下時間序列數(shù)據(jù):
<span style="color:# "># ARIMA(1,0,1)</span> x <- arima.sim(list(order = c(<span style="color:#880000">1</span>,<span style="color:#880000">0</span>,<span style="color:#880000">1</span>), ar = <span style="color:#880000">0.8</span>, ma = <span style="color:#880000">0.8</span>), n = <span style="color:#880000">1000</span>) plot(x, main = <span style="color:#880000">"ARIMA(1,0,1)"</span>) acf(x, main = <span ARIMA(2,0,2)</span> x <- arima.sim( ) plot(x, main = <span style="color:#880000">"ARIMA(2,0,2)"</span>) acf(x, main = <span style="color:#880000">"ACF"</span>) pacf(x, main = <span style="color:#880000">"pACF"</span>)</code></span></span>
?SARIMA模型
- ?P:季節(jié)性自回歸(SAR)項的數(shù)量
- D:季節(jié)差異程度
- 問:季節(jié)性移動平均線(SMA)的數(shù)量
?
ARIMAX模型
?
R中的預(yù)測
auto.arimaforecastppddqqPPDDQQstepwiseapproximationFALSE
SARIMA模型用于固定過程
我們將使用包中的nino數(shù)據(jù)展示ARMA的使用,該數(shù)據(jù)tseries給出了Nino Region 3.4指數(shù)的海面溫度。讓我們驗證數(shù)據(jù)是否靜止:
<span style="color:#000000"><span style="color:#000000"><code>plot(nino3.4)</code></span></span>
d=0d=0
為了驗證是否存在任何季節(jié)性趨勢,我們將分解數(shù)據(jù):
<span style="color:#000000"><span style="color:#000000"><code>nino.components <- decompose(nino3.4) an>
沒有整體趨勢,這是固定過程的典型趨勢。但是,數(shù)據(jù)存在強(qiáng)烈的季節(jié)性因素。因此,我們肯定希望包含對季節(jié)性影響進(jìn)行建模的參數(shù)。
季節(jié)性模型
(P,D,Q)S(P,D,Q)SD=0D=0ninoS=12S=12
<span style="color:#000000"><span style="color:#000000"><code>nino.season <- nino.components$seasonal ode></span></span>
P=2P=2Q=0Q=0
非季節(jié)性模型
ppqq
<span style="color:#000000">< tyle="color:#000000"><code>par(mfrow = c(<span style="color:#880000">1</span>,<span style="color:#880000">2</span>)) acfp <- acf(n #888888"># transform lag from years to months</span> acfp$lag <- acfp$lag * <span style="color:#880000">12</span> plot(acfp, main = <span style="color:#880000"> months</span> acfpl$lag <- acfpl$lag * <span style="color:#880000">12</span> plot(acfpl, main = <span style="color:#880000">"pACF"</span>)</code></span></span>
?我們可以使用包中的Arima函數(shù)來擬合模型forecast。
<span style=" r:#888888"># non-seasonal model: (p,d,q)</span> order.non.seasonal <- c(<span style="color:#880000">2</span>,<span style="color:#880000">0</span> r:#880000">2</span>,<span style="color:#880000">0</span>,<span style="color:#880000">0</span>) A <- Arima(nino3.4, order = order.non.seasonal,seasonal = order.seasonal)</code> </span>我們現(xiàn)在可以使用該模型來預(yù)測未來Nino 3.4地區(qū)的氣溫如何變化。有兩種方法可以從預(yù)測模型中獲得預(yù)測。第一種方法依賴于predict函數(shù),而第二種方法使用包中的forecast函數(shù)forecast。使用該predict功能,我們可以通過以下方式預(yù)測和可視化結(jié)果:
<span sty #000000"><span style="color:#000000"><code><span style="color:#888888"># to construct a custom plot, we can us n> ## ## Attaching package: 'ggplot2' ## The following object is masked from 'package:forecast': ## ## autolayer <span style="color:#00000 yle="color:#880000">0</span>), cbind(fortify(fore df$y + plot.df$sd * <span style="color:#880000">1.96</span> plot.df$lower <- plot.df$y - plot.df$sd * <span style="color:#880000">1.96</span> ggplot(plot.df, aes(x = x ,y = y)) + ylab(<span style="color:#880000">"Temperature"</span>) + xlab(<span style="color:#880000">"Year"</span>)</code></span></span>
如果我們不需要自定義繪圖,我們可以使用以下forecast函數(shù)更輕松地獲取預(yù)測和相應(yīng)的可視化:
# use the forecast function to use the built-in plotting function: forecast <- forecast(A, h = 60) # predict 5 years into the future plot(forecast)用于非平穩(wěn)數(shù)據(jù)的ARIMA模型
為了演示ARIMA模型對非平穩(wěn)數(shù)據(jù)的使用,我們將使用包中的gtemp數(shù)據(jù)集astsa。該數(shù)據(jù)集提供全球平均陸地 - 海洋溫度偏差的年度測量值。
<span style="color:#000000"><span style=" 0"><code><strong>library</strong>(astsa) data(gtemp)
d=1d=1
<span style="color:#000000"><span style="
現(xiàn)在,數(shù)據(jù)似乎是靜止的。
?
<span style="color:#000 0"><span style="color:#000000"><code>par(mfrow = c(<span style="color:#880000">1</span>,<span s code></span></span>
p=0p=0q=1q=1
<span style="color:#000000"><span style="我們現(xiàn)在可以預(yù)測未來幾年平均陸地 - 海洋溫度偏差將如何變化:
<span style="color:#000000"> tyle="color:#000000"><cod 8"># predict 30 years into the future</span> pan></span>
該模型表明,未來幾年平均陸地 - 海洋溫度偏差將進(jìn)一步增加。
關(guān)于空氣質(zhì)量數(shù)據(jù)集的ARIMAX
為了展示ARIMAX模型的使用,我們將使用臭氧數(shù)據(jù)集 。
讓我們加載臭氧數(shù)據(jù)集并將其劃分為測試和訓(xùn)練集。請注意,我們已確保訓(xùn)練和測試數(shù)據(jù)包含連續(xù)的時間測量。
<span style="color:#000000"><span style="color:#000000"><code>data(airquality) ozone <- subset(na.omit(airquality)) set.seed(<span style="color:#880000">123</span>) N.train <- ceiling(<span style="color:#880000">0.7</span> * nrow(ozone)) N.test <- nrow(ozone) - N.train <span style="color:#888888"># ensure to take only subsequent measurements for time-series analysis:</span> trainset <- seq_len(nrow(ozone))[<span style="color:#880000">1</span>:N.train] testset <- setdiff(seq_len(nrow(ozone)), trainset)</code></span></span>由于數(shù)據(jù)集未指示相對時間點,我們將手動創(chuàng)建此類注釋:
為此,我們將在臭氧數(shù)據(jù)集中創(chuàng)建一個新列,該列反映了相對時間點:
<span :#000000"><span st style="color:#880000">"%j"</span>)) max.date <- as.numeric(format(max(dates), <span style="color:#880000">"%j"</span>)) ozone.ts <- ts(ozone$Ozone, start = min.date, end = max.date, frequency = <span style="color:#880000">1</span>) ozone.ts <- window(ozone.ts, <span style="color:#880000" 21</span>, <span style="color:#880000">231</span>) <span style="color:#888888"># deal with repetition due to missing time values</span> ozone$t <- seq(start(ozone.ts t</span></code></span></span>現(xiàn)在我們有了時間維度,我們可以繪制臭氧水平的縱向行為:
<span style="color:#000000"><span style="color:#000000"><code><strong>library</strong>(ggplot2) ggplot(ozone, aes(x = t, y = Ozone)) + geom_line() +geom_point()</code></span></span>
時間序列數(shù)據(jù)似乎是固定的。讓我們考慮ACF和pACF圖,看看我們應(yīng)該考慮哪些AR和MA術(shù)語
<span style="color:#000000">< :#880000">"partial"</span>)</code></span></span>
自相關(guān)圖非常不清楚,這表明數(shù)據(jù)中實際上沒有時間趨勢。因此,我們會選擇ARIMA(0,0,0)模型。由于具有參數(shù)(0,0,0)的ARIMAX模型沒有傳統(tǒng)線性回歸模型的優(yōu)勢,我們可以得出結(jié)論,臭氧數(shù)據(jù)的時間趨勢不足以改善臭氧水平的預(yù)測。讓我們驗證一下:
<span style="color eviously developed weighted negative binomial model</span> <strong>library</strong>(MASS) get.weights <- <strong>function</strong>(ozone) {z.scores <- (ozone$Ozone - mean(ozone$Ozone)) / sd(ozone$Ozone)weights <- exp(z.scores)weights <- l$pred, ozone[testset, <span style="color:#880000">"Ozone"</span>])^<span style="color:#880000">2</span> print(Rsquared.linear)</code></span></span> ## [1] 0.7676977 <span style="color:#000000"><span style="color:#000000"><code>print(Rsquared.temporal)</code></span></span> ## [1] 0.7569718我們可以看到具有負(fù)二項式可能性的線性模型優(yōu)于ARIMAX模型。
關(guān)于空氣質(zhì)量數(shù)據(jù)集的ARIMAX
要在更合適的數(shù)據(jù)集上演示ARIMAX模型,讓我們Icecream從Ecdat包中加載數(shù)據(jù)集:
<span style="color:#000000"><該Icecream數(shù)據(jù)集包含以下變量:
- 缺點:人均品脫的冰淇淋消費量。
- 收入::美元平均每周家庭收入。
- 價格:每品脫冰淇淋的價格。
- temp:華氏溫度的平均溫度。
測量結(jié)果是從1951-03-18到1953-07-11的四周觀測。
我們將模擬缺點,冰淇淋消費作為時間序列,并使用收入,價格和平均值作為外生變量。在開始建模之前,我們將從數(shù)據(jù)框中創(chuàng)建一個時間序列對象。
<span style="col style="color:#880000">"1951-03-18"</span>), as.Date(<span style="color:#880000">"1953-07-11"</span>))) months <- c(seq(<span style="color:#880000">3</span>,<span style="color:#880000">12</span>), se or:#880000">1</span>, <span style="color:#880000">52</span>, <span style="color:#880000">4</span>)) ice.ts <- ts(Icecream$cons, start = c(<span style="color:#880000">1951</span>, <span style="color:#880000">3</span>), end = c(<span style="color:#880000">1953</span>, <span style="color:#880000">6</span>), frequency = <span style="color:#880000">52</span>/<span style="color:#880000">4</span>)</code></span></span>我們現(xiàn)在調(diào)查數(shù)據(jù):
<span style="color:#000000"><span style="color:#000000"><code>plot(decompose(ice.ts))</code></span></span>
因此,數(shù)據(jù)有兩種趨勢:
ppqq
<span style="color:#000000"><span style acf(ice.ts, type = <span style="color:#880000">"partial"</span>)</code></span></span>
由于季節(jié)性趨勢,我們可能適合ARIMA(1,0,0)(1,0,0)模型。但是,由于我們知道溫度和外生變量的收入,因此它們可以解釋數(shù)據(jù)的趨勢:
<span style="color:#000000"><span style="color:#000000"><code>plot(Icecream$temp) <span style="color:#888888"># explains the seasonal trend</span></code><
由于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)行比較
yle="color:#880000">"income"</span>, <span style="color:#880000">"temp"</span>)],order = c(<span style="color:#880000">1</span>,<span style="color:#880000">0</span>,<span style="color:#880000">0</span>)) preds <- forecast(A, xreg = Icecream[test, c(<span style="color:#880000">"income"</span>, <span style="color:#880000">"temp"</span>)]) plot(preds) lines(window(ice.ts, c(<span style="color:#880000">1951</span>, <span style="color:#880000">22</span>), c(<span style="color:#880000">1951</span>, <span ="color:#880000">24</span>) lines(x = as.numeric(rownames(as.data.frame(preds))), y = as.data.frame(preds)[,<span style="color:#880000">2</span>], lty = <span style="color:#880000">2</span>)</code></span></span>
ARIMAX(1,0,0)模型的預(yù)測顯示為藍(lán)色,而ARIMA(1,0,0)(1,0,0)模型的預(yù)測顯示為虛線。實際觀察值顯示為黑線。結(jié)果表明,ARIMAX(1,0,0)明顯比ARIMA(1,0,0)(1,0,0)模型更準(zhǔn)確。
但請注意,ARIMAX模型在某種程度上不像純ARIMA模型那樣有用于預(yù)測。這是因為,ARIMAX模型需要對應(yīng)該預(yù)測的任何新數(shù)據(jù)點進(jìn)行外部測量。例如,對于冰淇淋數(shù)據(jù)集,我們沒有超出1953-07-11的外生數(shù)據(jù)。因此,我們無法使用ARIMAX模型預(yù)測超出此時間點,而ARIMA模型可以實現(xiàn):
<span style="color:#000000"><span style="color:#000000"><code>preds <- forecast(A.season, h = <span style="color:#880000">60</span>) plot(preds)</code></span></span>
非常感謝您閱讀本文,有任何問題請聯(lián)系我們!
?
大數(shù)據(jù)部落?-中國專業(yè)的第三方數(shù)據(jù)服務(wù)提供商,提供定制化的一站式數(shù)據(jù)挖掘和統(tǒng)計分析咨詢服務(wù)
統(tǒng)計分析和數(shù)據(jù)挖掘咨詢服務(wù):y0.cn/teradat(咨詢服務(wù)請聯(lián)系官網(wǎng)客服)
【服務(wù)場景】??
科研項目; 公司項目外包;線上線下一對一培訓(xùn);數(shù)據(jù)采集;學(xué)術(shù)研究;報告撰寫;市場調(diào)查。
【大數(shù)據(jù)部落】提供定制化的一站式數(shù)據(jù)挖掘和統(tǒng)計分析咨詢
?
轉(zhuǎn)載于:https://www.cnblogs.com/tecdat/p/10821111.html
總結(jié)
以上是生活随笔為你收集整理的R语言中ARMA,ARIMA(Box-Jenkins),SARIMA和ARIMAX模型用于预测时间序列数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 基本语法大全
- 下一篇: ibm 2011年服务器型号,IBM x