2

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

模型

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

新模式

其中π是通货膨胀率,x是衡量产出缺口的指标(= 使用 Hodrick-Prescott 滤波器的 GDP 的周期性成分)。模型πx的解释变量是可观察的。

我需要使用非线性最小二乘估计这个模型;然而,这个模型在我看来是线性的。此外,我nls()在 R 中使用该函数的尝试失败了。

此外,我对非线性回归的研究使我实现了逻辑人口增长,但我无法找到一种方法将我学到的知识与这个练习联系起来,尤其是在推导起始值时。

4

1 回答 1

3

使用带有函数的普通最小二乘法 (OLS)lm()来估计问题中的方程 (2) 将导致对系数系数1系数2的估计系数3

另一方面,使用具有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

现在我们有了 和 的估计值,系数1我们可以继续计算 'a'、'b' 和 'c' 的值,方法如下:系数2系数3

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 提供的见解:)

于 2013-02-24T17:38:10.260 回答