Как поставить для l oop такое, чтобы диапазон альфа составлял от -0,9 до 0,9? - PullRequest
0 голосов
/ 13 марта 2020
n <- 1000
m <- 1000


alpha <- 0
ybar <- numeric()
for(i in 1:m){
  y <- arima.sim(model=list(ar=alpha),n)
  ybar[i] <- mean(y)
}
CI <- mean(ybar) + c(1,-1)*qnorm(0.025)*sqrt(1/n)*(1/(1-alpha))
width <- abs(abs(CI[1])-abs(CI[2]));width

Я хочу использовать для l oop, чтобы показать значения CI и width для разного типа альфа-диапазона от -0,9 до 0,9. После этого постройте график width против alpha. Я не уверен, как использовать здесь для l oop, как обычно для l oop всегда что-то вроде for( i in 1:1000) вместо диапазона.

1 Ответ

1 голос
/ 13 марта 2020

Мы можем l oop по последовательности вектора

n <- 1000 
m <- 1000 

alpha <- seq(-0.9,0.9,0.1) 
width <- numeric(length(alpha))
for(j in seq_along(alpha)){
  ybar <- numeric(m) 
   for(i in 1:m){
     y  <- arima.sim(model=list(ar=alpha[j]),n) 
     ybar[i] <- mean(y) 
     } 
    CI <- mean(ybar) + c(1,-1)*qnorm(0.025)*sqrt(1/n)*(1/(1-alpha[j])) 
    width[j] <- abs(abs(CI[1])-abs(CI[2]))
 }

plot(alpha, width, type = "l")

enter image description here

...