Я хочу смоделировать данные временного ряда, следующие за AR (1) с phi = 0,6, так что, если я попробую свое первое моделирование, я проверю, следует ли оно за AR (1). Если нет, я сделаю второе испытание, вместе с первым я получу среднее из двух испытаний, чтобы сформировать серию. Я проверяю заказ, пока он не соответствует AR (1), в противном случае я продолжаю добавлять один (1) к своим испытаниям, пока не подтвердил, что среднее значение испытаний представляет собой временной ряд модели AR (1).
После этого я проверю, равен ли коэффициент AR (1) phi = 0,6. если нет, я добавлю еще один (1) к своим испытаниям, пока не проверю, что phi = 0,6.
** MWE *
library(FitAR)
n=50
a=0.6
count=0
e <- rnorm(n+100)
x <- double(n+100)
x[1] <- rnorm(1)
for(i in 2:(n+100)) {
x[i] <- a * x[i-1] + e[i]
}
x <- ts(x[-(1:100)])
p=SelectModel(x, lag.max = 14, Criterion = "BIC", Best=1)
if(p >= 2){
count <- count + 1
mat <- replicate(count, x)
x <- as.ts(rowMeans(mat))
}
fit=arima(x,order = c(p,0,0))
my_coef=fit$coef
if(my_coef != 0.6){
mat <- replicate(count + 1, x)
x <- as.ts(rowMeans(mat))
}
my_coefficients=my_coef[!names(my_coef) == 'intercept']
print(my_coefficients)
print(paste0("AR(2) model count is: ", count_coef))