R中的多變量時間序列。如何找到滯後相關性並建立預測模型
我是新來的,在統計和 R 方面也很新。我正在為大學做一個項目,目的是找出河流中雨水和水流水位之間的相關性。一旦證明相關性,我想預測/預測它。
數據 我有一組特定河流的幾年數據(每 5 分鐘採集一次),其中包含:
- 以毫米為單位的降雨量
- 河流流量(立方米/秒)
這條河沒有雪,所以模型只是基於雨和時間。偶爾會有冰凍的溫度,但我正在考慮將這些時期作為異常值從數據中刪除,因為這種情況超出了我的項目範圍。
示例 這裡有幾張來自下雨和幾小時後水位上升的樣本數據圖。
紅線是河流流量。橙色是雨。你可以看到它總是在河水上漲之前下雨。時間序列結束時再次開始下雨,但稍後會影響河流流量。
相關性就在那裡。這是我在 R 中使用 R 中的 ccf 證明相關性所做的工作:
- 互相關
- 主要變量
- 滯後
這是我用於第二個示例的 R 線(一個降雨期):
ccf(arnoiaex1$Caudal, arnoiaex1$Precip, lag.max=1000, plot=TRUE, main="Flow & Rain")
我的解釋是:
- 下雨(先發生),
- 有一個顯著的相關性,在滯後時達到峰值(我可以檢查確切的數字,我知道那部分)。
- 我不知道如何找出相關性影響河流流量的時間,我認為名稱是“保留”。我看到的是該圖與第一張圖的形狀相同,當河流在雨後失水時。如果基於此,我不認為我可以說保留期從當它達到頂峰時(我可以在返回的數據框中創建的對像中檢查這一點,
ccf
看看水位何時恢復到“下雨前”的值。對嗎?有沒有更好的方法來找到保留?我對嗎?
關於時間序列。這個時間序列沒有周期性或季節性。雨隨時可能到來並造成影響。它在夏天確實會減少,但它仍然會發生,這是一個一年四季都下雨的地區。
模型和預測。 我不知道如何創建一個模型來進行預測,告訴我在一段雨後河流的流量會增加多少。我一直在嘗試一些
arima
,auto arima
但不是很成功。我應該使用Arima
,vars
還是其他不同的多元模型?任何指向示例的鏈接都會有很大幫助。如果您知道創建此預測的最佳方法,請告訴我,我應該使用什麼模型。還有一些其他的事情我正在考慮做,但為了簡單起見,把它們從這個解釋中刪除了。如果需要,我可以分享一些數據。
您需要使用您的 ACF 和 PACF 行為來幫助您確定哪個模型更適合您的數據(例如,ACF 圖中存在緩慢衰減表明可能需要差分以使序列更穩定。您的 ACF 圖顯然表明某種需要轉換。如果您使用正確的轉換(平穩序列),波動必須較少變化並且在藍線內。一旦您使序列平穩,請考慮哪種模型 AR、MA、ARMA 或 ARIMA 是合適的。在我的項目中,我執行了以下操作來幫助選擇模型:
ACF 圖在滯後 2 處顯示了一個相對較大的值(查看它在圖中的位置)。除此之外,它在滯後大於 2 時基本上為零。這表明 MA(2) 模型可以擬合數據,然後通過查看 PACF 圖,我們立即註意到相關性幾乎在所有滯後時間都為零。這可能表明該模型上沒有任何 AR 部分(將其調整為您的情節)。因此,我們的候選模型之一可能是參數 p=0、d=1 和 q=1 或 2 的 ARIMA (p, d, q)。我還嘗試了一些更高階的 MA,並考慮了在模型中加入 AR 部分的可能性,以便比較 AIC、AICc 和 BIC 的結果並決定最終模型。下一步,您需要運行一些診斷測試,以確保您選擇了正確的模型並且殘差中沒有模式(殘差的 ACF 和 PACF,Ljung-Box 統計的 p 值,殘差的直方圖,以及QQ情節)。希望能幫助到你!