0
ARMA 모델을 사용하여 모델 재 피팅을 사용하여 롤링 예측을 계산하는 다음 루프가 있다고 가정합니다. 나는 R에서 실행으로창 함수에서 빈도 인수 사용
library(forecast)
set.seed(1)
prices=rnorm(1963)
USDlogreturns=diff(log(prices))
h <- 1
train <- window(USDlogreturns, end=1162, frequency=1)
test <- window(USDlogreturns, start=1163, frequency=1)
n <- length(test) - h + 1
fc1 <- ts(numeric(n), start=1163+1, freq=1)
fc2 <- ts(numeric(n), start=1163+1, freq=1)
fc3 <- ts(numeric(n), start=1163+1, freq=1)
fc4 <- ts(numeric(n), start=1163+1, freq=1)
fit1 <- Arima(train, order=c(0,0,0), include.mean=TRUE, method="ML")
fit2 <- Arima(train, order=c(0,0,1), include.mean=TRUE, method="ML")
fit3 <- Arima(train, order=c(1,0,0), include.mean=TRUE, method="ML")
fit4 <- Arima(train, order=c(1,0,1), include.mean=TRUE, method="ML")
for(i in 1:n){
x <- window(USDlogreturns, end=1162 + i, frequency=100)
refit1 <- Arima(x, model=fit1, include.mean=TRUE, method="ML")
refit2 <- Arima(x, model=fit2, include.mean=TRUE, method="ML")
refit3 <- Arima(x, model=fit3, include.mean=TRUE, method="ML")
refit4 <- Arima(x, model=fit4, include.mean=TRUE, method="ML")
fc1[i] <- forecast(refit1, h=h)$mean[h]
fc2[i] <- forecast(refit2, h=h)$mean[h]
fc3[i] <- forecast(refit3, h=h)$mean[h]
fc4[i] <- forecast(refit4, h=h)$mean[h]
}
, 내가 실행 (50) 경고 메시지를 얻을 :
window.default에서"(USDlogreturns, 끝 = 1162 + I, 주파수 = 100) : '주파수'는 변경되지 "
내 문제는 창 기능을 통해 8 시간 동안 네 개의 ARMA 모델을 100 일마다 다시 수리하는 방법을 이해하는 데 어려움을 겪고 있다는 것입니다.
신참을위한 조언?
'window'에 대한 호출에서 무엇을'frequency'로 사용하려고합니까? 창의 너비를 제어하려는 것 같지만 '빈도'는 사용되지 않습니다. 이는 시계열의주기를 지정하는 데 사용되며 '빈도 = 1'은 연간 데이터를 나타냅니다. – ulfelder
예. 제 문제는 100 일마다 발생하는 모델 리 피팅으로 일일 예측을 생성하려고하지만 명령 창을 통해이를 알려주는 방법을 모르는 것입니다. – msmna93
'lapply' 나'sapply'를 호출 할 때'(seq (0, 800, 100)'과 같은) 샘플 브레이크 포인트 벡터를 사용하여 함수를 작성하고자합니다. 그 전화. 해당 프로세스의 첫 번째 및 두 번째 반복 코드를 작성한 다음 두 번째로 변경 한 비트를 함수의 변수로 바꿔보십시오. – ulfelder