原文鏈接:http://tecdat.cn/?p=25122
原文出處:拓端數據部落公眾號
當一個序列遵循隨機游走模型時,就說它是非平穩的。我們可以通過對時間序列進行一階差分來對其進行平穩化,這將產生一個平穩序列,即零均值白噪聲序列。例如,股票的股價遵循隨機游走模型,收益序列(價格序列的差分)將遵循白噪聲模型。
讓我們更詳細地了解這種現象。
由於隨機游走序列的差分是白噪聲序列,我們可以說隨機游走序列是零均值白噪聲序列的累積和(即積分)。有了這些信息,我們可以以 ARIMA 模型的形式定義 Random Walk 系列,如下所示:
-
ARIMA(0,1,0)
-
其中
-
- 自回歸部分,p = 0
-
- 積分部分,d = 1
-
- 移動平均部分,q = 0
模擬隨機游走序列
我們現在可以通過為arima.sim
提供適當的參數來模擬 R 中的隨機游走序列, 如下所示:
R <- arima.sim
我們可以使用該plot.ts
繪制新生成的序列 。
> plot.ts
正如我們可以清楚地觀察到的,這是一個非平穩序列,它的均值和標准偏差隨時間變化不是恆定的。
一階差分序列
為了使序列平穩,我們取序列的一階差分。
if <- diff
繪制時,您會注意到差分序列類似於白噪聲。
該 RW_diff
序列的統計數據計算如下:
-
> mean(Rf)
-
> sd(Wf)
帶偏移的隨機游走序列
我們模擬的上述隨機游走序列在均值附近上下徘徊。但是,我們可以讓隨機游走系列跟隨上升或下降趨勢,稱為偏移。為此,我們為函數提供了一個額外的參數均值/截距 arima.sim()
。這個截距是模型的斜率。我們還可以更改模擬序列的標准差。在下面的代碼中,我們提供了 1 的平均值和 5 的標准差。
估計隨機游走模型
為了擬合具有時間序列偏移的隨機游走模型,我們將遵循以下步驟
- 取數據的一階差分。
arima()
使用階數為 的函數 將白噪聲模型擬合到差分數據c(0,0,0)
。- 繪制原始時間序列圖。
abline()
通過提供通過將白噪聲模型擬合為斜率得到的截距,使用該函數添加估計趨勢 。
1. 一階差分
為了使這個數列平穩,我們將取數列的差值。
> plot.ts
2. 將白噪聲模型擬合到差分數據
我們現在可以使用arima
將白噪聲模型擬合到差分數據。
> whodl <- arima
我們可以看到擬合的白噪聲模型的截距為 0.67。
3. 繪制原始隨機游走數據
這可以使用以下命令完成:
> plot.ts
4.添加估計趨勢
現在在同一個圖上,我們要添加估計的趨勢。在本課開始時,我們解釋了隨機游走序列如何是零均值白噪聲序列的累積和(即積分)。因此,截距實際上是我們隨機游走序列的斜率。
我們可以使用函數繪制趨勢線 abline
,其中 a 是截距,b 是線的斜率。在我們的例子中,我們將指定白噪聲模型的“a=0”和“b=intercept”。
> abline
估計的趨勢線將添加到我們的圖中。
最受歡迎的見解
1.在python中使用lstm和pytorch進行時間序列預測
2.python中利用長短期記憶模型lstm進行時間序列預測分析