2013-03-23 98 views
1

您好計算自相關我試圖計算與滯後的自相關U,U = 1 ... 9與滯後ü中的R

我期望9X1自相關函數。但是,當我嘗試使用此代碼時,它總是給我10x1自相關函數,第一項= 1。我不知道如何繼續。

# initialize a vector to store autocovariance 
maxlag <- 9 
varstore <- rep(NA,maxlag) 
# Calculate Variance 
varstore[1] <- sd(as.vector(sample1),na.rm=T)^2 

# Estimate autocovariances for all residuals 
for (lag in 1:maxlag) 
    varstore[lag+1] <- mean(sample1[,1:(10-lag)] * 
         sample1[,(lag+1):10],na.rm=T) 
print(round(varstore,3)) 
# calculate autocorrelations 
corrstore <- varstore/varstore[1] 
print(corrstore) 

而這就是我得到:

[1] 1.0000000 0.6578243 0.5670389 0.5292314 0.5090411 0.4743944 0.4841038 0.4756297 
[9] 0.4275208 0.4048436 
+1

什麼是'sample1'?你也應該把空間轉換成我的編碼(就像我現在編輯的那樣)。 – Arun 2013-03-23 10:20:26

回答

3

你得到,因爲回收的長度爲10的矢量。

lag =maxlog(您for循環的最後一步)

varstore[lag+1] 

將創建NA一個新條目。爲了清楚地看到這一點,試試這個,例如:

v <- NA  ## a vector of length 1 
v[10] <- 2 
v 
[1] NA NA NA NA NA NA NA NA NA 2 ## you get a vector of legnth 10!! 

That'said,你爲什麼要長9的載體?爲什麼不使用acf功能?這裏acf功能的輸出:

length(acf(1:10)$lag) 
[1] 10