Я пытаюсь реплицировать модель из прогнозирования с динамическими регрессионными моделями, и я не могу сопоставить вывод в R, используя функцию arimax из библиотека TSA. Я могу приблизиться к результату с помощью SAS, но я хочу использовать R и надеяться, что кто-то знает, как закодировать функцию arimax для достижения этого. Я обнаружил, что функция имеет проблемы, обычно связанные с аримой и оптимизацией, сходится должным образом, но в этом случае возвращается модель, но параметры отключаются.
Данные являются первыми 140 наблюдениями из серии продажи песка для продажи из Box и Jenkins в библиотеке astsa
.
Вот фрагмент из книги, показывающий их результаты (опять же, я мог бы приблизиться к SAS) и код, используемый с R (и результатами). Одна вещь, которую я отмечаю, находится в файле справки для arimax(), существует рекомендация "котировки" передачи функции "mean-delete". Я не уверен, что это значит и не уверен, что это часть проблемы.
Из книги:
и вот R-код:
library(TSA)
library(Hmisc)
library(astsa)
sales_140<-window(sales,end=140)
lead_140<-window(lead,end=140)
mod<-arimax(window(sales_140,start=4),order=c(0,1,1),
xtransf = window(Lag(lead_140,3),start=4),transfer = list(c(1,0)),
xreg=data.frame(seq(1:137)),method="ML")
mod
#Series: window(sales_140, start = 4)
#ARIMA(0,1,1)
#Coefficients:
# ma1 seq.1.137. T1-AR1 T1-MA0
# 0.5974 0.3322 0.0613 2.8910
#s.e. 0.0593 0.1111 0.0275 0.1541
#sigma^2 estimated as 0.6503: log likelihood=-163.94
#AIC=335.87 AICc=336.34 BIC=350.44
Вот код SAS:
proc arima data=BL;
identify var=sales(1) crosscorr=lead(1);
estimate q=1 input=( 3 $ ( 0 ) / ( 1) lead) method=ml;
forecast out = out1 lead = 0;
run;
и оценки: