> 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:如果我想在下面的模型上做同样的事情
= 0.5 + 0.5 (− 1)−0.5 (− 2)+0.1 (− 1)^ 2 + _
这是一个ar(2)模型加上0.1 _(− 1)^ 2,如何拟合该非线性模型(通过使用R,谢谢!)?
应该赢得更多声誉...不能发布低于10的图片:(
答案 0 :(得分:1)
问题在于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