2017-03-06 3 views
0

複数のACFを一緒にプロットする必要がありますが、各ACFの値を保存して後で再度アプローチする方法についてはあまりよく分かりません。プロットのRでACFの値を保存する

これは私がこれまでにやっていることです:

#Simulating 
n <- 1000 
Y <- c() 
ACF <- c() 

for (i in 1:10) { 
    eps <- rnorm(n, mean = 0, sd = sqrt(2)^0.5) 
    Y <- cbind(Y, 1/4 + cumsum(eps)) 
    X <- acf(Y, lag.max = 100, plot = FALSE) 
    ACF <- cbind(ACF, X) 
} 

#Plotting 
plot(0,0, xlim=c(0,100), ylim=c(0,1), xlab="Lags ", ylab="ACF") 
for(i in 1:10){ 
    lines(ACF[,i],col=cl[i]) 
} 

をそれが動作していないので、私は誰かが私が何をすべきかで私を助けることができることを願っています。

+0

あなたはYが行列であるYにACFを実行していることを意味しますか? –

答えて

2

シミュレーションacflagの値を返す関数myfunを作成します。その後、sapplyを使用して1:10をループし、シミュレートされたacflagの値を行列に代入します。ベースのplot関数を使用して、Figureを描画します。

myfun <- function(x) 
{ 
    n <- 1000 
    eps <- rnorm(n, mean = 0, sd = sqrt(2)^0.5) 
    eps <- 1/4 + cumsum(eps) 
    ACF <- acf(eps, lag.max = 100, plot = FALSE) # compute acf 
    return(list(acf = ACF[['acf']],  # returns acf 
       lags = ACF[['lag']])) # returns lag 
} 

ACF <- sapply(1:10, myfun) # loop through 1:10 and get acf and lag values 

ACF 
# [,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7]  
# acf Numeric,101 Numeric,101 Numeric,101 Numeric,101 Numeric,101 Numeric,101 Numeric,101 
# lags Numeric,101 Numeric,101 Numeric,101 Numeric,101 Numeric,101 Numeric,101 Numeric,101 
# [,8]  [,9]  [,10]  
# acf Numeric,101 Numeric,101 Numeric,101 
# lags Numeric,101 Numeric,101 Numeric,101 


# using base plot function 
plot(NA, xlim=c(0,100), ylim=c(0,1), xlab="Lags ", ylab="ACF") 
for(i in 1:10){ 
    lines(x = unlist(ACF[ 'lags', i ]), y = unlist(ACF[ 'acf', i ]), col= rainbow(10)[i]) 
} 

enter image description here

+0

@ Niko24は 'matplot'を削除し、質問ごとにベース' plot'だけを使用しました。今回は、myfunから得られたラグ値とacf値 – Sathish

関連する問題