如何对AR模型进行RESET测试?
How to do the RESET test on an AR model?
> 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,我做的事情如上图所示。我该怎么办?
(我试过在resettest()
处输入type
、data
和power
参数,结果是一样的。)
问题2.If我想在下面的模型上做同样的事情
=0.5+0.5(−1)−0.5(−2)+0.1(−1)^2+_
这是一个ar(2)模型加上0.1_(−1)^2,如何拟合这个非线性模型(用R,谢谢!)?
应该赢得更多声誉...不能 post 图片低于 10 :(
问题是 resettest
的第一个参数是
formula - a symbolic description for the model to be tested (or a fitted "lm" object).
因此,传递 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
> 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,我做的事情如上图所示。我该怎么办?
(我试过在resettest()
处输入type
、data
和power
参数,结果是一样的。)
问题2.If我想在下面的模型上做同样的事情
=0.5+0.5(−1)−0.5(−2)+0.1(−1)^2+_
这是一个ar(2)模型加上0.1_(−1)^2,如何拟合这个非线性模型(用R,谢谢!)?
应该赢得更多声誉...不能 post 图片低于 10 :(
问题是 resettest
的第一个参数是
formula - a symbolic description for the model to be tested (or a fitted "lm" object).
因此,传递 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