混合新凯恩斯主义菲利普斯曲线是:
经过一些操作后,我们获得了以下可估计模型:
其中π是通货膨胀率,而 x 是衡量产出缺口的指标(=使用Hodrick-Prescott过滤器的GDP的周期性成分)。可以观察到模型π和 x 的解释变量。
我需要使用非线性最小二乘估计这个模型;然而,这个模型对我来说是线性的。此外,我在R中使用nls()
函数的尝试失败了。
另外,我对非线性回归的研究使我对后勤人口的增长感到兴奋,但我无法找到一种方法将我学到的东西与这项练习联系起来,特别是在得出起始值时。
答案 0 :(得分:3)
使用具有lm()
函数的普通最小二乘法(OLS)来估计问题中的等式(2)将导致估计系数,和{{0 }}
另一方面,使用具有nls()
函数的非线性最小二乘来估计方程将估计参数'a','b'和'c'的值,这些是感兴趣的参数。 / p>
R中的nls()
函数(非线性最小二乘)有两个重要参数:第一个是formula
参数,然后是start
参数。在R中运行?nls
将提供一些细节;然而,要点是formula
参数接受了想要估计的非线性模型的表达式(例如y ~ a / (b + c*x)
,其中'y'和'x'是变量和'a', 'b'和'c'是感兴趣的参数)并且start
参数接受感兴趣的参数的起始值,R将在迭代过程中使用(因为非线性最小二乘基本上迭代计算直到最佳获得参数的值。)
以下是步骤:
(i)获取参数'a','b'和'c'
的起始值在这里,我使用lm()
函数来估计等式(2)的系数。我首先创建了在函数中使用的滞后变量。
注意:'y'指的是''
y_1 = c(NA, head(y, head(y, -1) # variable 'y' lagged by one time period
y_2 = c(c(NA, NA), head(y, head(y, -2) # variable 'y' lagged by two time periods
x_1 = c(NA, head(x, head(x, -1) # variable 'x' lagged by one time period
因此,为了估计方程的系数,使用了以下代码:
reg = lm(y ~ y_1 + y_2 + x_1, na.action = na.exclude) # it is important to tell R to exclude the missing values (NA) that we included as we constructed the lagged variables
现在我们估算了,和,我们可以通过以下方式计算'a','b'和'c'的值:
B = 1 / reg$coefficients["y_1"] # Calculates the inverse of the coefficient on the variable 'y_1'
A = B * reg$coefficients["y_2"] # Multiplies 'b' by the coefficient on the variable 'y_2'
C = B * reg$coefficients["x_1"] # Multiplies 'b' by the coefficient on the variable 'x_1'
然后将 A
,B
和C
用作nls()
函数中的起始值
(ii)使用nls()
功能
nlreg = nls(y ~ (1/b)*y_1 - (a/b)*y_2 - (c/b)*x_1,
start = list(a = A, b = B, c = C))
结果可以在代码中看到:
summary(nlreg)
感谢Ben Bolker提供的见解:)