Я пытаюсь изменить код учебника, чтобы добавить регрессор, значение которого было получено за 4 недели до этого, при этом предполагается, что ошибка больше не является белым шумом.Я пытаюсь объединить два примера из книги, оба из которых работают сами по себе, но у меня проблемы с их объединением.Вот код, который включает в себя включение значения за 4 недели до этого: partL4.
temp = tempr-mean(tempr)
ded = ts.intersect(cmort, trend=time(cmort), temp, temp2=temp^2, part, partL4=lag(part,-4))
summary(fit <- lm(cmort~trend + temp + temp2 + part + partL4, data=ded))
pairs(ded) # easiest way is to do all of them
cor(ded)
AIC(fit)/nrow(ded) - log(2*pi)
BIC(fit)/nrow(ded) - log(2*pi)
Затем, вот код из книги, который использует ту же самую предыдущую регрессию, но без запаздывающего термина:
trend = time(cmort); temp = tempr - mean(tempr); temp2 = temp^2
fit = lm(cmort~trend + temp + temp2 + part, na.action=NULL)
acf2(resid(fit), 52) # implies AR2
sarima(cmort, 2,0,0, xreg=cbind(trend, temp, temp2, part) )
Наконец, вот моя попытка объединить их:
temp = tempr-mean(tempr)
temp2=temp^2
trend=time(cmort)
partL4=lag(part, -4)
ded = ts.intersect(cmort, trend, temp, temp2, part, partL4)
summary(fit <- lm(cmort~trend + temp + temp2 + part + partL4, data=ded, na.action=NULL))
acf2(resid(fit)) #implies AR2
sarima(cmort, 2,0,0, xreg=cbind(trend, temp, temp2, part, partL4))
pairs(ded) # easiest way is to do all of them
cor(ded)
AIC(fit)/nrow(ded) - log(2*pi)
BIC(fit)/nrow(ded) - log(2*pi)
Однако, когда я пытаюсь запустить его, я получаю следующую ошибку:
Ошибка в статистике:: arima (xdata, order = c (p, d, q), сезонный = список (order = c (P,: длины 'x' и 'xreg' не совпадают
Я неполностью уверен в том, почему я получаю эту ошибку, и я был бы признателен за некоторое понимание ее исправления. Спасибо!