为绘图保存AC中的ACF值

时间:2017-03-06 22:38:22

标签: r plot

我需要将几个ACF的情节放在一起,但我不太确定如何“保存”每个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])
}

但它不起作用,所以我希望有人可以帮助我做我应该做的事情。

1 个答案:

答案 0 :(得分:3)

创建一个返回模拟acflag值的函数sapply。然后使用1:10循环遍历acf并将模拟的lagplot值转换为矩阵。现在使用基础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]) } 函数,绘制图。

{{1}}

enter image description here