我有一個固定的時間序列,我想要擬合一個自迴歸項的線性模型來校正序列相關,即使用公式At = c1 * Bt + c2 * Ct + UT,其中UT = R * UT-1 +等GLM與自迴歸項來糾正序列相關
(UT爲AR(1)項,以校正誤差項序列相關)
誰知道R中使用什麼模型這個?
感謝 卡爾
我有一個固定的時間序列,我想要擬合一個自迴歸項的線性模型來校正序列相關,即使用公式At = c1 * Bt + c2 * Ct + UT,其中UT = R * UT-1 +等GLM與自迴歸項來糾正序列相關
(UT爲AR(1)項,以校正誤差項序列相關)
誰知道R中使用什麼模型這個?
感謝 卡爾
GLMMarp包將適合這些模型。如果你只是想要一個具有高斯誤差的線性模型,你可以用arima()
函數來做到這一點,其中通過xreg
參數指定協變量。
什麼是你的鏈接功能?
你描述它的方式聽起來像一個帶有自相關錯誤的基本線性迴歸。在這種情況下,一種選擇是使用lm
來獲得係數的一致估計值並使用Newey-West HAC standard errors。
我不確定GLM更普遍的最佳答案。
有幾種方法可以做到這一點R.下面是使用自帶的R.
的arima()
功能"Seatbelts" time series dataset in the datasets package兩個例子來封裝:附帶R.統計該函數的參數形式order=c(p, d, q)
您可以在其中指定自迴歸,積分和移動平均分量的順序。在你的問題中,你建議你想創建一個AR(1)模型來糾正錯誤中的一階自相關,就是這樣。我們可以用下面的命令來做到這一點:
arima(Seatbelts[,"drivers"], order=c(1,0,0),
xreg=Seatbelts[,c("kms", "PetrolPrice", "law")])
訂單的值指定我們需要AR(1)模型。 xreg組件應該是我們想要作爲迴歸的一部分添加的一系列其他X.輸出看起來有點像summary.lm()
的輸出側。
另一個替代過程可能更適合您的方式迴歸模型在nlme package中使用gls()
。下面的代碼接通安全帶時間序列對象到一個數據幀,然後提取並增加了新的一列(噸),這只是在排序時間序列對象的計數器:
Seatbelts.df <- data.frame(Seatbelts)
Seatbelts.df$t <- 1:(dim(Seatbelts.df)[1])
兩個以上行只有獲取數據。由於arima()
功能是爲時間序列而設計的,因此它可以更輕鬆地讀取時間序列對象。爲了使用nlme來擬合模型,您可以運行:
library(nlme)
m <- gls(drivers ~ kms + PetrolPrice + law,
data=Seatbelts.df,
correlation=corARMA(p=1, q=0, form=~t))
summary(m)
以「correlation」開頭的行是您將ARMA關聯結構傳遞給GLS的方式。結果將不完全相同,因爲arima()
使用最大似然來估計模型,gls()
默認情況下使用受限制的最大似然。如果您將method="ML"
添加到gls()
的調用中,您將得到與上述ARIMA函數相同的估算值。
封裝GLMMarp從CRAN庫中刪除。你知道任何其他可以實現這個目標的軟件包嗎? – TMS 2014-03-18 21:44:14
我所知道的有關軟件包在http://cran.r-project.org/web/views/TimeSeries.html上市 – 2014-03-19 00:18:48