主要问题是:我无法使用EViews和R获得类似的参数估计。
由于我自己不了解的原因,我需要使用EViews估算某些数据的参数。这是通过选择NLS(非线性最小二乘)选项并使用以下公式来完成的:indep_var c dep_var ar(1)
的EViews 权利要求:它们估计线性AR(1)处理,诸如 其中错误被定义为: 通过使用等效等式(带有一些代数替换): 此外,该线程在EViews论坛上,建议他们的NLS估计值是由Marquardt算法生成的。
现在,用于估计AR(1)过程的R函数为arima
。但是,存在两个问题:
- 该估计是最大似然估计;
- 截距估计值实际上不是截距估计值(根据RH Shumway和DS Stoffer)。
因此,我转向nlsLM
了minpack.lm包中的函数。此函数使用Marquardt算法来实现非线性最小二乘估计,该估计应产生与EViews实现相同的结果(至少是非常相似的结果)。
现在的代码。我有一个数据帧(data
),其中包含一个自变量和一个因变量,例如由以下代码生成的变量:
data <- data.frame(independent = abs(rnorm(48)), dependent = abs(rnorm(48)))
以估计方程的EViews权利要求参数来估计(3 次对这个职位之一),我使用下面的命令:
library(minpack.lm)
result <-
nlsLM(dependentB ~ ((1 - theta1) * theta2) + (theta1 * dependentA) +
(theta3 * independentB) - (theta1 * theta3 * independentA),
data = list(dependentB = data$dependent[2:48], dependentA = data$dependent[1:47],
independentB = data$independent[2:48], independentA = data$independent[1:47]),
start = list(theta1 = -10, theta2 = -10, theta3 = -10)
)
不幸的是,输出的估算值nlsLM
与EViews 的估算值并不接近。您有什么可能的原因吗?也许我的代码是错误的?
最后,我想说我个人是R用户-这就是为什么我试图在R中而不是EViews中执行此操作。我也很乐意为您提供我正在使用的数据,但这是不可能的,因为它是机密数据。
4
欢迎使用该网站@Fael。+1是一个明确的问题。我随意调整格式以使其更整洁。请确保它仍然说出您想要的内容。
—
gung-恢复莫妮卡
哇,你真好。非常感谢,@gung!
—
Fael 2012年
您可以始终缩放/编码数据并将其发布。形式[[y-constant1)/ constant2]的转换就可以解决问题。
—
IrishStat
顺便说一句:线性过程的参数可以通过OLS估算。
—
Germaniawerks