Show the code
# pkgs
library(tidyverse)
library(magrittr)
library(DT)
library(systemfit)
library(here)
# 加载数据
data( "KleinI" )胡华平
2025年12月19日
如果扰动项存在同期相关性,两阶段最小二乘估计的可行广义最小二乘(FGLS)版本可以得到一致且渐近更有效的估计量。这种估计程序通常被称为”三阶段最小二乘法”(3SLS,Zellner and Theil 1962)。标准3SLS估计量及其协方差矩阵通过方程10和12得到,其中\(\widehat{\Omega}\)等于\(\widehat{\Sigma} \otimes I_{T}\),\(\widehat{\Sigma}\)是扰动项的估计协方差矩阵。
虽然无偏的2SLS或W2SLS估计只需要每个单方程的工具变量与扰动项不相关\(\left(\mathrm{E}\left[u_{i}^{\top} Z_{i}\right]=0 \forall i\right)\),但Schmidt (1990)指出,3SLS估计量只有在所有扰动项和所有工具变量都不相关\(\left(\mathrm{E}\left[u_{i}^{\top} Z_{j}\right]=0 \forall i, j\right)\)时才是一致的。由于可能存在无法避免这种情况的场合,Schmidt (1990)分析了获得3SLS估计量的其他方法。
其中一种基于工具变量估计的方法(3SLS-IV)是:
\[ \begin{equation*} \hat{\beta}_{3 \text { SLS-IV }}=\left(\hat{X}^{\top} \widehat{\Omega}^{-1} X\right)^{-1} \widehat{X}^{\top} \widehat{\Omega}^{-1} y \tag{13} \end{equation*} \]
3SLS-IV系数估计量的协方差矩阵估计量为:
\[ \begin{equation*} \widehat{\operatorname{COV}}\left[\hat{\beta}_{3 \text { SLS-IV }}\right]=\left(\hat{X}^{\top} \widehat{\Omega}^{-1} X\right)^{-1} \tag{14} \end{equation*} \]
另一种基于广义矩估计(GMM)的方法(3SLS-GMM)是:
\[ \begin{equation*} \hat{\beta}_{3 \mathrm{SLS}-\mathrm{GMM}}=\left(X^{\top} Z\left(Z^{\top} \widehat{\Omega} Z\right)^{-1} Z^{\top} X\right)^{-1} X^{\top} Z\left(Z^{\top} \widehat{\Omega} Z\right)^{-1} Z^{\top} y \tag{15} \end{equation*} \]
其中
\[ Z=\left[\begin{array}{cccc} Z_{1} & 0 & \cdots & 0 \tag{16}\\ 0 & Z_{2} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & Z_{G} \end{array}\right] \]
3SLS-GMM系数估计量的协方差矩阵估计量为:
\[ \begin{equation*} \widehat{\operatorname{COV}}\left[\hat{\beta}_{3 S L S-G M M}\right]=\left(X^{\top} Z\left(Z^{\top} \widehat{\Omega} Z\right)^{-1} Z^{\top} X\right)^{-1} \tag{17} \end{equation*} \]
Schmidt (1990)本人开发的第四种方法是:
\[ \begin{equation*} \hat{\beta}_{3 \text { SLS-Schmidt }}=\left(\widehat{X}^{\top} \widehat{\Omega}^{-1} \widehat{X}\right)^{-1} \widehat{X}^{\top} \widehat{\Omega}^{-1} Z\left(Z^{\top} Z\right)^{-1} Z^{\top} y \tag{18} \end{equation*} \]
这些系数估计量的协方差矩阵估计量为:
\[ \begin{align*} \widehat{\operatorname{COV}}\left[\hat{\beta}_{\text {3SLS-Schmidt }}\right]= & \left(\hat{X}^{\top} \widehat{\Omega}^{-1} \widehat{X}\right)^{-1} \widehat{X}^{\top} \widehat{\Omega}^{-1} Z\left(Z^{\top} Z\right)^{-1} Z^{\top} \widehat{\Omega} Z \tag{19}\\ & \left(Z^{\top} Z\right)^{-1} Z^{\top} \widehat{\Omega}^{-1} \widehat{X}\left(\widehat{X}^{\top} \widehat{\Omega}^{-1} \widehat{X}\right)^{-1} \end{align*} \]
计量经济学软件EViews使用:
\[ \begin{equation*} \hat{\beta}_{3 \mathrm{SLS}-\mathrm{EViews}}=\hat{\beta}_{2 \mathrm{SLS}}+\left(\widehat{X}^{\top} \widehat{\Omega}^{-1} \widehat{X}\right)^{-1} \widehat{X}^{\top} \widehat{\Omega}^{-1}\left(y-X \hat{\beta}_{2 \mathrm{SLS}}\right) \tag{20} \end{equation*} \]
其中\(\hat{\beta}_{\text {2SLS }}\)是如上定义的两阶段最小二乘估计量。EViews使用标准3SLS公式(方程12)来计算系数估计量的协方差矩阵估计量。
如果在所有方程中使用相同的工具变量(\(Z_{1}=Z_{2}=\ldots=Z_{G}\)),上述所有方法都会得到相同的估计结果。然而,如果不是这种情况,结果取决于所使用的方法(Schmidt 1990)。对不同方程使用不同工具变量的唯一原因是一个方程的工具变量与另一个方程的扰动项存在相关性。否则,可以简单地在每个方程中使用所有工具变量(Schmidt 1990)。在这种情况下,只有3SLS-GMM(方程15)和Schmidt (1990)开发的3SLS估计量(方程18)是一致的。
复现Greene (2003) 表10.8的估计结果:Greene, W. H. Econometric analysis[M]. Boston: Prentice Hall, 2018. page 364-365.
接下来,我们尝试复制 Klein 的”模型 I”(Klein 1950),该模型在 Greene (2003, p. 381) 中有描述。数据可从 Greene (2003) 的在线补充材料中获取,表 F15.1 (http://pages.stern.nyu.edu/~wgreene/Text/tables/TableF15-1.txt),估计结果见表 15.3 (p. 412)。
理论模型的方程系统为:
\[ \begin{align} C_{t}&=\alpha_{0}+\alpha_{1} P_{t}+\alpha_{2} P_{t-1}+\alpha_{3}\left(W_{t}^{p}+W_{t}^{g}\right)&+\epsilon_{1 t} & \quad \text { (Consumption) } \\ I_{t}&=\beta_{0}+\beta_{1} P_{t}+\beta_{2} P_{t-1}+\beta_{3} K_{t-1}&+\epsilon_{2 t} & \quad\text { (Investment) } \\ W_{t}^{p}&=\gamma_{0}+\gamma_{1} X_{t}+\gamma_{2} X_{t-1}+\gamma_{3} A_{t}&+\epsilon_{3 t} & \quad\text { (Private wages) } \\ X_{t}&=C_{t}+I_{t}+G_{t}& & \quad\text { (Equilibrium demand) } \\ P_{t}&=X_{t}-T_{t}-W_{t}^{p}& & \quad\text { (Private profits) } \\ K_{t}&=K_{t-1}+I_{t}& & \quad\text { (Capital stock) } \\ \end{align} \]
具体变量定义如下:
简单概括一下理论模型系统的特点:
下面我们尝试复现Klein模型I的估计结果。主要工作包括:
首先,加载数据并设定三个方程以及工具变量(使用相同的工具变量)。
方程系统通过依次采用 OLS、2SLS、3SLS 和迭代 3SLS 方法进行估计。
最后,比较不同方法的估计结果。
以下是变量集的定义:
| 变量_代码 | 变量_方程变量 | 变量_中文 | 说明 |
|---|---|---|---|
| year | 年份 | 年份标识变量 | |
| consump | \(C_t\) | 消费 | 内生变量 |
| corpProf | \(P_t\) | 私人利润 | 内生变量 |
| corpProfLag | \(P_{t-1}\) | 私人利润滞后一期 | 前定变量 |
| privWage | \(W_t^p\) | 私人工资 | 内生变量 |
| invest | \(I_t\) | 投资 | 内生变量 |
| capitalLag | \(K_{t-1}\) | 资本存量滞后一期 | 前定变量 |
| gnp | \(X_t\) | 国民生产总值 | 内生变量 |
| gnpLag | \(X_{t-1}\) | 国民生产总值滞后一期 | 前定变量 |
| govWage | \(W_t^g\) | 政府工资 | 外生变量 |
| govExp | \(G_t\) | 政府非工资支出 | 外生变量 |
| taxes | \(T_t\) | 税收 | 外生变量 |
| wages | \(W_t^p + W_t^g\) | 工资总额 | |
| trend | \(A_t\) | 时间趋势 | 外生变量 |
以下是KleinI 的数据集:
下面我们依次设定三个方程、工具变量和方程系统。
# 三个行为方程
eqConsump <- consump ~ corpProf + corpProfLag + wages
eqInvest <- invest ~ corpProf + corpProfLag + capitalLag
eqPrivWage <- privWage ~ gnp + gnpLag + trend
# 工具变量
inst <- ~ govExp + taxes + govWage + trend + capitalLag + corpProfLag + gnpLag
# 方程系统
system <- list( Consumption = eqConsump, Investment = eqInvest,
PrivateWages = eqPrivWage )OLS估计结果(summary):
OLS估计结果(coef):
| term | estimate | std.error | statistic | p.value | conf.low | conf.high |
|---|---|---|---|---|---|---|
| Consumption_(Intercept) | 16.2366 | 1.3027 | 12.4638 | 0.0000 | 13.4881 | 18.9851 |
| Consumption_corpProf | 0.1929 | 0.0912 | 2.1153 | 0.0495 | 0.0005 | 0.3854 |
| Consumption_corpProfLag | 0.0899 | 0.0906 | 0.9916 | 0.3353 | -0.1014 | 0.2811 |
| Consumption_wages | 0.7962 | 0.0399 | 19.9334 | 0.0000 | 0.7119 | 0.8805 |
| Investment_(Intercept) | 10.1258 | 5.4655 | 1.8527 | 0.0814 | -1.4055 | 21.6571 |
| Investment_corpProf | 0.4796 | 0.0971 | 4.9389 | 0.0001 | 0.2747 | 0.6845 |
| Investment_corpProfLag | 0.3330 | 0.1009 | 3.3020 | 0.0042 | 0.1202 | 0.5458 |
| Investment_capitalLag | -0.1118 | 0.0267 | -4.1827 | 0.0006 | -0.1682 | -0.0554 |
| PrivateWages_(Intercept) | 1.4970 | 1.2700 | 1.1787 | 0.2547 | -1.1825 | 4.1766 |
| PrivateWages_gnp | 0.4395 | 0.0324 | 13.5609 | 0.0000 | 0.3711 | 0.5079 |
| PrivateWages_gnpLag | 0.1461 | 0.0374 | 3.9037 | 0.0011 | 0.0671 | 0.2250 |
| PrivateWages_trend | 0.1302 | 0.0319 | 4.0816 | 0.0008 | 0.0629 | 0.1976 |
Estimate Std. Error t value Pr(>|t|)
Consumption_(Intercept) 16.555 1.321 12.534 0.000
Consumption_corpProf 0.017 0.118 0.147 0.885
Consumption_corpProfLag 0.216 0.107 2.016 0.060
Consumption_wages 0.810 0.040 20.129 0.000
Investment_(Intercept) 20.278 7.543 2.688 0.016
Investment_corpProf 0.150 0.173 0.867 0.398
Investment_corpProfLag 0.616 0.163 3.784 0.001
Investment_capitalLag -0.158 0.036 -4.368 0.000
PrivateWages_(Intercept) 1.500 1.148 1.307 0.209
PrivateWages_gnp 0.439 0.036 12.316 0.000
PrivateWages_gnpLag 0.147 0.039 3.777 0.002
PrivateWages_trend 0.130 0.029 4.475 0.000
2SLS估计结果(summary):
2SLS估计结果(coef):
3SLS估计结果(summary):
3SLS估计结果(coef):
迭代3SLS估计结果(summary):
迭代3SLS估计结果(coef):
比较不同方法的估计结果(表格形式):
| Equation | math | Variable | OLS | 2SLS | 3SLS | I3SLS |
|---|---|---|---|---|---|---|
| Consumption | NA | Intercept | 16.237 (1.303) |
16.555 (1.321) |
16.441 (1.305) |
16.559 (1.224) |
| Consumption | \(P_t\) | corpProf | 0.193 (0.091) |
0.017 (0.118) |
0.125 (0.108) |
0.165 (0.096) |
| Consumption | \(P_{t-1}\) | corpProfLag | 0.090 (0.091) |
0.216 (0.107) |
0.163 (0.100) |
0.177 (0.090) |
| Consumption | \(W_t^p + W_t^g\) | wages | 0.796 (0.040) |
0.810 (0.040) |
0.790 (0.038) |
0.766 (0.035) |
| Investment | NA | Intercept | 10.126 (5.466) |
20.278 (7.543) |
28.178 (6.794) |
42.896 (10.594) |
| Investment | \(P_t\) | corpProf | 0.480 (0.097) |
0.150 (0.173) |
-0.013 (0.162) |
-0.357 (0.260) |
| Investment | \(P_{t-1}\) | corpProfLag | 0.333 (0.101) |
0.616 (0.163) |
0.756 (0.153) |
1.011 (0.249) |
| Investment | \(K_{t-1}\) | capitalLag | -0.112 (0.027) |
-0.158 (0.036) |
-0.195 (0.033) |
-0.260 (0.051) |
| PrivateWages | NA | Intercept | 1.497 (1.270) |
1.500 (1.148) |
1.797 (1.116) |
2.625 (1.196) |
| PrivateWages | \(X_t\) | gnp | 0.439 (0.032) |
0.439 (0.036) |
0.400 (0.032) |
0.375 (0.031) |
| PrivateWages | \(X_{t-1}\) | gnpLag | 0.146 (0.037) |
0.147 (0.039) |
0.181 (0.034) |
0.194 (0.032) |
| PrivateWages | \(A_t\) | trend | 0.130 (0.032) |
0.130 (0.029) |
0.150 (0.028) |
0.168 (0.029) |
主要结论和观点:
首先,OLS估计量出人意料地接近结构估计量(2SLS和3SLS)。同时,OLS估计的方差小于2SLS估计的方差。这似乎表明OLS估计要更优,但事实并非如此。因为,小样本下,可能会出现OLS估计更优的假象,而在大样本下,2SLS必须优于OLS。
其次,在模型正确设置和大样本的情况下,基于完全信息的3SLS估计量在渐近上优于基于有限信息的2SLS估计量。此外,3SLS的有限样本方差可能等于或大于2SLS的有限样本方差。但在实际应用中,有限样本性质可能对估计结果产生重要影响。