[英]How to estimate Residuals of Autoregressive Model AR(2)with missing data for dataframe in R
我想估計/獲取AR(2)模型的殘差。 由於殘差=實際值-擬合值。我有一個巨大的數據框,其中包含4000列(每個公司),時間序列。 現在我想運行一個AR(2)模型並從中獲取殘差。這些列是每個公司的流動性度量。 現在,我需要對這兩個要通過Auto Regressive模型進行轉換的公司進行的流動性度量轉換具有2個滯后,因此,首先自動相關性將被刪除。在下面的公式中,並使用殘差進行后續分析。
其中,Ct i是第t個月股票i流動性的度量,x是自回歸過程中滯后的數量,ut i是第t個月股票i流動性的殘差。 我提供了以下數據的一小部分。
DATE A B C D E F
31/12/1999 79.5 NA NA 6 NA NA
03/01/2000 79.5 NA NA 6 NA NA
04/01/2000 79.5 NA 325 6 961 3081.9
05/01/2000 79.5 NA 322.5 6 945 2524.7
06/01/2000 79.5 NA 327.5 6 952 3272.3
07/01/2000 79.5 NA 327.5 6 941 2102.9
10/01/2000 79.5 7 327.5 6 946 2901.5
11/01/2000 79.5 7 327.5 6 888 9442.5
12/01/2000 79.5 7 331.5 6 870 7865.8
13/01/2000 79.5 7 334 6 853 7742.1
我從統計信息包中發現了以下代碼。 您能否幫助指定此代碼,以便它在每一列(日期除外)上運行,並注意滯后值為2的缺失值。
ar(x, aic = TRUE, order.max = NULL,
method = c("yule-walker", "burg", "ols", "mle", "yw"),
na.action, series, ...)
假設您的數據稱為df
,則可以為每一列添加AR(2)模型的殘差,如下所示:
df <- data.frame(df, apply(df[-1], 2, function(x) arima(x, order = c(2,0,0))$res))
df
Date Company1 Company2 Company1.1 Company2.1
1 Jan-2000 0.05365700 0.01821019 -0.036876374 0.0006985845
2 Feb-2000 0.07201239 0.01680506 -0.001093970 -0.0005063298
3 Mar-2000 0.08740745 0.01924687 -0.003796628 0.0017217050
4 Apr-2000 0.10866274 0.01792439 0.010745400 0.0007815183
5 May-2000 0.14189171 0.01848372 0.032286719 0.0014418422
6 Jun-2000 0.15228030 0.01472494 0.023719800 -0.0024127538
7 Jul-2000 0.10231285 0.01634404 -0.025709302 -0.0016760248
8 Aug-2000 0.10838209 0.01919361 0.019162611 0.0009089139
9 Sep-2000 0.08358543 0.01624093 -0.022191184 -0.0010003877
10 Oct-2000 0.10907866 0.01768522 0.022780332 0.0001924767
編輯代碼:
df <- data.frame(df, apply(df[-1], 2, function(x) arima(x[!is.na(x)], order = c(2,0,0), method = "ML")$res))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.