mcem r语言代码_R语言阈值自回归模型(TAR)代码示例
原文鏈接:
R語言時間序列TAR閾值模型分析?tecdat.cn閾值模型用于統計的幾個不同區域,而不僅僅是時間序列。一般的想法是,當變量的值超過某個閾值時,過程可能表現不同。也就是說,當值大于閾值時,可以應用不同的模型,而不是當它們低于閾值時。例如,在藥物毒理學應用中,可能低于閾值量的所有劑量都是安全的,而當劑量增加到閾值量以上時毒性增加。或者,在動物種群豐度研究中,種群可以緩慢增加至閾值大小,但是一旦種群超過一定大小,則可能迅速減少(由于有限的食物)。
閾值模型是制度轉換模型(RSM)的特例。在RSM建模中,不同的模型適用于某些關鍵變量的不同值間隔。
單變量時間序列的閾值自回歸模型(TAR)。在TAR模型中,AR模型在由因變量定義的兩個或更多個值間隔中單獨估計。這些AR模型可能是也可能不是相同的順序。為方便起見,通常假設它們具有相同的順序。
該文本僅考慮單個閾值,因此將存在兩個單獨的AR模型 - 一個用于超過閾值的值,另一個用于不超過閾值的值。困難在于確定是否需要TAR模型,使用的閾值以及AR模型的順序。TAR模型可以工作的數據的一個特征是當值高于某個水平時,增加和/或減少的速率可能不同于當值低于該水平時。
閾值水平的估計或多或少是主觀的。許多分析師探索了幾種不同的閾值水平,試圖提供良好的數據擬合(通過MSE值和殘差的一般特征來衡量)。AR模型的順序也可以是試錯法,特別是當數據的固有模型可能不是AR時。一般來說,分析師從他們認為可能比必要的更高的訂單開始,然后在必要時減少訂單。
第一步繪制數據。以下是數據的時間序列圖。
?
注意陡峭增加(和減少)的時期。作者還注意到略有下降趨勢,因此首先考察了差異。以下是第一個差異的時間序列圖。
?
與原始數據一致,我們看到某些時期的急劇增加和減少。經過一些實驗,作者決定對兩個區域使用單獨的AR(4)模型:第一個差異大于或等于0.05的數據和第一個差異小于0.05的數據。該模型非常適合,作為以下圖表的證據 - 殘差的ACF和PACF以及將實際的第一差異與預測的第一差異進行比較的圖表。在比較實際值和預測值的圖中,預測值沿著紅色虛線。
?
?
R代碼示例
該示例的R代碼如下。在ts.intersect 命令中,lag(,)命令創建滯后,輸出的矩陣不包含缺少值的行。在代碼中,我們對所有數據進行AR(4)模型的回歸擬合,以便設置將在單獨的制度回歸中使用的變量。另請注意,閾值在命令c = .05中定義。 代碼將執行兩個回歸,確定殘差及其acf / pacf,并創建實際值和預測值的圖。
model = ts.intersect(y,lag1y = lag(y,-1),lag2y = lag(y,-2),lag3y = lag(y,-3),lag4y = lag(y,-4)) x = model [ ,1]
##低于閾值的值的回歸 less =(P [,1] <c) out1 = lm(x1~P1 [,1] + P1 [,2] + P1 [,3] + P1 [,4]) ##回歸值高于閾值 out2 = lm(x2~P2 [,1] + P2 [,2] + P2 [,3] + P2 [,4]) ## Residuals less [less == 1] = res1 more acf2(resid) ##預測值 less =(P [,1 ] <c) greater =(P [,1]> = c) less [less == 1] = fit1 greater [greater == 1] = fit2 flu.tar4.05 = setar(dflu,m = 4,thDelay = 0,th = .05)
通過擬合和診斷圖顯示上方和下方的最終模型.05 plot(flu.tar4.05)#cycles
如果我們沒有為th選項提供閾值,則setar搜索網格以選擇閾值(.036):
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的mcem r语言代码_R语言阈值自回归模型(TAR)代码示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python识别手写文字_如何快速使用P
- 下一篇: hive sql练习_经典的SparkS