混合新凯恩斯菲利普斯曲线是:

经过几次操作,我们得到了以下可估计的模型:

其中,π是通货膨胀率,x是衡量产出缺口的指标(= GDP的周期性成分,使用过滤器)。模型π和x的解释变量是可观测的。
我需要用非线性最小二乘来估计这个模型,但是这个模型在我看来是线性的。另外,我在R中使用nls()函数的尝试也失败了。
此外,我对非线性回归的研究导致了我的逻辑人口增长,但我无法找到一种方法将我学到的东西与这项工作联系起来,特别是在推导起始值时。
发布于 2013-02-24 17:38:10
用普通最小二乘和lm()函数来估计问题中的方程(2)会导致系数的估计。

,

和

。
另一方面,用非线性最小二乘法结合nls()函数来估计方程的参数'a‘、'b’和'c‘的值,这是我们感兴趣的参数。
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)感谢Bolker提供的见解:)
https://stackoverflow.com/questions/15032166
复制相似问题