Как выполнить тест RESET на модели AR? - PullRequest
2 голосов
/ 03 апреля 2019
> library("lmtest")
> a = arima.sim(list(ar = c(.05, -.05)), 1000)
> b = arima(a, order = c(2, 0, 0))
> resettest(b)
**Error in terms.default(formula) : no terms component nor attribute**

Вопрос 1. То, что я делаю, показано выше. Что мне с этим делать? (Я попытался ввести параметр type, data и power в resettest(), результат тот же.)

Вопрос 2. Если я хочу сделать то же самое на модели ниже

1010 * ? * ? = 0,5 + 0.5? (?-1) -0.5? (?-2) + 0.1? (?-1) ^ 2 + ε_?

что представляет собой модель ar (2) плюс 0.1?_ (? − 1) ^ 2, как подогнать эту нелинейную модель (используя R, спасибо!)?

должен заработать больше репутации ... не может размещать фотографии ниже 10: (

1 Ответ

1 голос
/ 04 апреля 2019

Проблема в том, что первый аргумент resettest это

формула - символическое описание для тестируемой модели (или установленного объекта "lm").

Таким образом, передача объекта Arima не будет работать. Вместо этого мы можем вручную определить отстающие переменные и предоставить объект lm или просто формулу:

la1 <- Hmisc::Lag(a, 1)
la2 <- Hmisc::Lag(a, 2)
resettest(a ~ la1 + la2)
#
#   RESET test
#
# data:  a ~ la1 + la2
# RESET = 0.10343, df1 = 2, df2 = 993, p-value = 0.9018

Теперь ваша вторая модель нелинейна по переменным, но линейна по параметрам, поэтому все еще применяются те же методы оценки. (Я предполагаю, что настоящий DGP остается прежним, и вы просто хотите протестировать новую спецификацию.) В частности,

resettest(a ~ la1 + la2 + I(la2^2))
#
#   RESET test
#
# data:  a ~ la1 + la2 + I(la2^2)
# RESET = 0.089211, df1 = 2, df2 = 992, p-value = 0.9147
...