Storing arima predictions into empty vector in R -
i having trouble storing arima predictions empty vector. problem arima predictions give predictions , standard errors. there 2 columns of values. cannot seem store values in empty vector. tried create 2 empty vectors , bind them together, did not solve problem.
my intention simulate 1000 observations. use first 900 observations make 100 predictions. list of values have update. example, use 900 observations predict value of 901th observation. use 901 observations, including predicted 901th observation, predict 902th observation. repeat until use 999 observations predict 1000th observation. hope figure out how store multiple values vector.
the empty vector hope contain 100 predictions called predictions1.
# create arima series # arimaseries1 = arima.sim(n=1000, list(ar=c(0.99), ma=c(0.1)))+50 ts.plot(arimaseries1) acf(arimaseries1) arimaseries2 = arima.sim(n=1000, list(ar=c(0.7,0.2), ma=c(0.1,0.1)))+50 ts.plot(arimaseries2) acf(arimaseries2) arimaseries3 = arima.sim(n=1000, list(ar=c(0.6,0.2,0.1), ma=c(0.1,0.1,0.1)))+50 ts.plot(arimaseries3) acf(arimaseries3) # estimate arima coefficients using maximum likehood # arc1 = arima(arimaseries1, order = c(1,0,1)) arc2 = arima(arimaseries2, order = c(2,0,2)) arc3 = arima(arimaseries3, order = c(3,0,3)) # estimate arima coefficients 900 observations # ar1 = arima(arimaseries1[1:900], order = c(1,0,1)) ar2 = arima(arimaseries2[1:900], order = c(2,0,2)) ar3 = arima(arimaseries3[1:900], order = c(3,0,3)) # create for-loop make 1 prediction ahead 100 times # predictionsa = rep(0,100) predictionsb = rep(0,100) predictions1 = cbind(predictionsa,predictionsb) for(a in 1:100){ forcasting1 = predict(arima(arimaseries1[1:900+a], order=c(1,0,1)), n.ahead=1)} predictions1[a] = forcasting1
r give me error message:
warning message: in predictions1[a] = forcasting1 : number of items replace not multiple of replacement length
i grateful suggestions. explanations on went wrong appreciated. thank time.
maybe this:
predictions1 <- array(na, c(100,2)) for(a in 1:100){ forcasting1 = predict(arima(arimaseries1[1:900+a], order=c(1,0,1)), n.ahead=1) predictions1[a,] = unlist(forcasting1) }
Comments
Post a Comment