Professional Documents
Culture Documents
Econometrics Projects (1) 11
Econometrics Projects (1) 11
Econometrics Projects (1) 11
班 级: 硕 2201 留学生班
姓 名:纳迪 I202221122
心雨 I202221141
李莎 I202221234
课 程: 高级计量经济学
课程教授: 王少平教授
2023 年 2 月
目 录
一、 绪论.................................................................................................................. 2
二、 研究内容及研究方法...................................................................................... 2
三、 最小二乘法(OLS) ...................................................................................... 3
3.1 OLS 无偏性 ................................................................................................. 3
3.2 OLS 一致性 ................................................................................................. 4
3.3 OLS 有效性 ................................................................................................. 5
四、 使用 Stata 14.2 的蒙特卡罗模拟.................................................................... 5
4.1 OLS 无偏性模拟 ......................................................................................... 6
4.2 OLS 正态性模拟 ......................................................................................... 8
4.3 OLS 一致性模拟 ....................................................................................... 10
4.4 违反 OLS 性质的假设 .............................................................................. 12
4.4.1 Ommited Variable Bias (遗漏变量偏差) ........................................ 12
4.4.2 Functional Form Misspecification (模型函数设定错误) ............... 13
4.4.3 Autocorrelation and Lagged Dependent Variables (自相关和滞后因
变量) 14
五、 总结................................................................................................................ 16
参考文献...................................................................................................................... 18
一、 绪论
在进行经济学研究的时候,计量经济学的知识是不可忽略的。做计量经济学
的意思是在给定真实现实生活中数据样本的情况下估计解释变量或者影响因素
参数,例如人口的平均值、线性回归中的系数或时间序列的自相关。除了关于估
计参数之外,我们还需要知道得出的估计量与真实值的接近程度。换句话说,我
们还需要知道它的“准确度”或“精确度”。估计量是随机变量的一个函数,因此也
可以认为它本身就是一个随机变量。估计量的属性完全由它的概率分布去描述,
然后通过该抽样分布进行假设检验,另外,抽样分布的均值和方差也是个计量经
济学里的重要观察点。
在某些情况下,做计量经济及研究的时候可以从计量经济模型中计算抽样分
布。但有时,特别是对于有限(小)样本,可能会遇到困难或者演剧结果是不可
靠的。在这情况下,我们可以利用 Monte Carlo Simulation(蒙特卡洛模拟)来获取
有关抽样分布信息以及估计量的质量信息的直观方法。
术语“Monte Carlo”指的是通过生成随机过程的许多随机实现并以某种方式
对它们进行平均来近似本人设定真实值的数量的过程。在统计学中,真实值的数
量是等于估计量和检验统计量的分布、原假设下检验统计量的大小,或某些特定
备择假设下检验统计量的功效(Davidson 和 MacKinnon,1993)。在经济理论中,
蒙特卡洛的技术用于探索具有随机元素的模型的定量特性,例如真实商业周期模
型中变量之间的相关性。
二、 研究内容及研究方法
我们如何使用蒙特卡洛技术找到估计量的抽样分布?在现实生活中,我们通
常只观察一个特定大小 N 的样本,并且会给出一个估计。蒙特卡洛模拟可以设
想为一种实验室的情况,我们将现实生活中的研究重复多次(R)。每次,我们都会
从原始总体中抽取大小为 N 的不同样本。因此,我们可以多次计算估算值,任何
估计量都会有所不同。这些许多估计的经验分布近似于估计量的真实抽样分布。
本文使用蒙特卡洛模拟来试验最小二乘法(OLS)的性质,通过 Stata 来实证
OLS 的无偏性、正态性和一致性。下面是本文蒙特卡罗实验步骤:
1) 设定样本量为 N 模型中的外生部分或解释变量的真实值或从它们各自的分
布函数中设定它们的值
2) 从各自的概率分布函数中为统计模型中的误差项设定大小为 N 的随机样本
3) 计算统计模型的内生部分或被解释变量
4) 计算本人感兴趣的值(例如𝛽̂1 估计器)
5) 重复步骤 1 到 4 R 次
6) 检查感兴趣值的分布等
三、 最小二乘法(OLS)
𝑦𝑖 = 𝛽0 + 𝛽1 𝑥𝑖 + 𝜀𝑖
𝑦𝑖 。本人想估计的值是模拟数据集中的最小二乘估计𝛽0 和𝛽1 。
蒙特卡洛摸你的核心是随机数自生成的技术。利用随机数生成器产生一系列
数字,这些数字来自特定的相同且独立分布的随机变量。实际上,这是一种数学
算法,它会产生一系列所谓的伪随机数。这些数字实际上不是随机的,因为该算
法描述了数字之间的纯粹确定性关系。然而,现在已经有了一个好的生成器,它
们就无法与真正随机数的序列区分开来,并且可以通过通常的独立性统计测试。
Judd (1998)提供了对不同伪随机数生成器的全面处理。
蒙特卡洛实验有一个重要的局限性:我们必须完全指定统计模型(数据生成
过程 Data Generation Process)。这意味着,我们必须假设模型的确定性部分、随
机(误差)项分布的形式和确切参数以及外生变量的分布。最终这是一个很大的
普遍性损失,因为实验结果仅适用于所做的研究假设。
where 𝑢𝑖 = 𝑌𝑖 − 𝑌̂𝑖
为了评估线性回归模型的估计量,我们基于其偏差和方差使用其模型的有效。
无偏但没有最小方差的估计器不是最好的;方差最小但有偏差的估计器不是最好
的;无偏且方差最小的估计器是最好的(有效的)。OLS 估计是最佳(有效)估
计,是因为 OLS 估计在所有线性和无偏估计中方差最小。
在 Stata 应用中已经有一些帮助自动生成随机数字的命令,在这次模拟我们
使用的命令是:
uniform()
这个命令是帮助生成正态分布的随机数。在 Monte Carlo Simulation 中,为了
估计 OLS 的 BLUE 性质,首先需要生成真实值的解释变量、误差项、和被解释
变量。我们可以通过对双变量回归模型中的 OLS 估计量的属性检验来解释在
Stata 14.2 中蒙特卡罗模拟的不同步骤。在 Stata 中设置蒙特卡洛模拟的第一个任
务是定义一个程序 (Program) 来产生单个模拟的结果,本文使用的程序为:
program MCS1, rclass
clear
set obs 100
generate e = rnormal() 步骤 (1)
generate x = rnormal() 步骤 (2)
gy=3+3*x+e 步骤 (3)
regress y x 步骤 (4)
return scalar b0=_b[_cons]
return scalar b1=_b[x]
end
上面程序里面的 clear 清除了内存中的数据,并 set obs 100 的命令将每个样
本中的观察数设置为 N = 100。步骤 (1) 的命令是帮助实现标准正态(Gaussian)
均值为 0 和标准差为 1 的正态分布的误差项 u。步骤 (2) 的命令帮助生成独立和
分布为正太的变量 x。步骤 (3) 将根据 DGP (Data Generation Process)计算被解释
偏的。
clear
program drop _all
program define MCS1, rclass
clear
set obs 100
generate u=rnormal()
generate x=rnormal()
g y = 3+3*x+u
reg y x
return scalar b0=_b[_cons]
return scalar b1=_b[x]
end
simulate alpha=r(b0) beta1=r(b1),reps(1000): MCS1
histogram beta
在上面的代码可以知道已经定义真实值𝛽0 和 𝛽1都为 3。在 Stata 利用上面的
2
1
0
上面的代码进行模拟可以得出下面的结果:
4
3
Density
2
1
0
图 4-2 正态性直方图
继续这一思路,本文使用的第二正态性检验是偏度和峰度检验,专注于 beta
(𝛽̂1 )是否符合正态性的要求。正态性检验确定概率,随机变量具有正态分布。检
验结果列于下表。
表 4-2 偏度和峰度检验结果
正态性检验有以下假设:
H0: 变量服从正态分布。
H1: 变量不服从正态分布。
偏度机率(Pr. Skewness)为 0.5210,因此偏度有正态分布(它的 p 值>0.05)。
峰度机率(Pr. Kurtosis)
等于 0.9156,所以峰度也是正态分布的(峰度的 p 值>0.05)。
除此之外,卡方检验(chi(2))等于 0.8080,因此检验在 5%水平下显著,所以我
们不能拒绝零假设。
10
5
0
-5
-4 -2 0 2 4
x
y Fitted values
图 4-3 残差分布
30
25
Density
Density
Density
20
20
15
15
10
10
10
5
5
0
0
2.9 2.95 3 3.05 3.1 2.95 3 3.05 2.94 2.96 2.98 3 3.02 3.04
beta beta beta
40
30
30
Density
Density
20
20
10
10
0
的估计量𝛽̂1 越多。该模拟实证了如果样本量越来越多或无穷大的时候,解释变量
接近,而且在样本量增大的时候,𝛽̂1 估计量的最大值和最小值越来越接近真实值
3,说明因为 OLS 是一致的。另外,因为 OLS 是一致的,所以在样本量 N 为无
穷大的时候,𝛽̂1 估计量会等于真实值𝛽1 。
当 OLS 模型未能包含一个或多个相关变量时,就会出现我们所叫的遗漏变
量偏差。换句话说,这意味着我们在分析中遗漏了一个重要因素。结果,模型错
误地将缺失变量的影响归因于包含的变量。另外,排除重要变量可能会限制研究
结果的有效性。遗漏变量是与研究的假设原因和假设结果相关的混杂变量。换句
话说,它与自变量和因变量都有相关。
OLS 回归模型描述了一个或多个自变量(也称为预测变量、协变量或解释变
量)与因变量(通常称为响应变量或目标变量)之间的关系。由于遗漏的变量是
隐藏的或未观察到的,因此不会将其纳入我们的分析中,影响我们的结果或者会
导致𝐸[𝑈𝑖 |𝑋𝑖 ] ≠ 0。总而言之,如果遗漏变量与因变量或一个或多个其他自变量
有相关,这可能会影响您的结果。
为了实证遗漏变量误差的想象,我们可以通过下面的模特卡罗模拟去观察。
我们首先设定真实值的误差(u)跟解释变量 X 有相关。下面是本次模拟使用的
Stata 代码:
clear
set obs 10000
set seed 111
generate a = rchi2(1)
generate x1 = rnormal() + a
generate x2 = rchi2(2)-3 + a
generate e = rchi2(1) - 1
generate y = 3 - 3*x1 + 3*x2 + e
quietly regress y x1 x2
estimates store real
quietly regress y x1
estimates store omitted
estimates table real omitted, se
从上面的代码可以看出,首先我们需要为 X1 和 X2 随机生成一个公共数据
为 a。设定好各个变量之后,就可以进行回归。在本次模拟我们进行两个回归,
一个是 Y 对 X1 和 X2 进行回归和另外一个是 Y 对 X1 进行回归,然后从两个回
归结果观察 X1 变量的系数。下面是真实回归(real)和遗漏变量回归(omitted)的结
果:
表 4-4 real 和 omitted 回归结果
Variable real omitted
x1 -2.9871046 -.98421618
.00915198 .03818187
x2 2.9999393
.00648263
_cons 2.9920283 1.0049106
.01678995 .0768551
从上面的表 4-4 可以知道,X1 在 X2 包含在模型中的时候(真实回归结果),
它的系数是无偏的。但是在 X2 不包含在回归中的时候(遗漏变量回归),X1 的系
数是有偏的。所以本次模拟展示了遗漏变量的想象。
如果真实回归模型是非线性的但样本回归模型是线性的,则样本回归模型是
模型函数设定错误,这会导致 OLS 估计量的偏差。当估计的回归模型的函数形
式不同于总体回归模型的函数形式时,回归会遭受函数形式的错误指定。函数形
式的错误指定会导致系数估计有偏差和不一致。检测模型函数形式指定错误的一
种方法是绘制估计的回归函数和数据,所以这会有助于选择正确的函数形式。
为了实证模型函数设定错误的想象,接下来我们通过 Stata 进行模特卡罗模
拟,我们可以使用下面的代码进行模拟:
clear
set obs 1000
generate x=rnormal()
generate u=rnormal()
generete y = 3+3*x^3+u
reg y x
graph twoway (lfitci y x) (scatter y x)
从上面的代码可以看出,我们设定了在 X 对 Y 的回归模型中,X 的函数是
平方,这是本次模拟的模型函数设定错误的假设。然后通过 reg 命令得到回归结
果并观察 X 的系数,另外我们也使用了 Graph twoway 命令来查看分布。下面是
模拟的结果:
表 4-5 模型函数设定错误模拟的回归结果
y Coef. Std. Err.
x 8.706769 .2227229
_cons 3.111628 .2255643
上面的表 4-5 回归的结果可以知道 X 的系数是为 8.7068,这个系数是有偏
的,因为 X 的系数跟真实值的 X 系数为 3 不一致。可以得出结论因为 X 在模型
𝑦𝑖 = 𝛽0 + 𝛽1 𝑥𝑖𝟑 + 𝜀𝑖 里的函数是平方的,所以就导致样本回归的结果有偏差
或者 X 的系数跟真实值不一致。
150
100
50
0
-50
-100
-4 -2 0 2 4
x
图 4-7 模型函数设定误差的散点图
图 4-7 告诉我们在存在模型函数设定错误时,y 对 x 的分布不是线性,因为
样本回归非线性,所以就会导致最优拟合线不能解释所有模型的想象,换句话来
说最优拟合线不适合样本 OLS 回归的分布。所以通过本次模特卡罗模拟我们成
功展示模型函数设定错误的想象。
在残差之间具有一阶自相关的线性回归中,如果用作回归模型的因变量没有
滞后,则最小二乘法是一致的。而且,如果模型包含滞后因变量,并且存在自相
关,则最小二乘法是不一致的。所以本次模拟我们可以通过模特卡罗模拟来证明。
让模型成为
𝑦𝑡 = 𝛽1 + 𝛽2 𝑥𝑡 + 𝛿𝑦𝑡−1 + 𝑢𝑡 𝑡 = 1,2, … , 𝑛
𝑢𝑡 = 𝜌𝑢𝑡−1 + 𝑣𝑡
从上面的公式,其中𝜌是参数,𝑣𝑡 是均值为零和方差为𝜎 2 的随机误差。该模型
包含多种可能性。如果𝛿 = 0 模型是通常的 AR(1)模型,如果𝜌 = 0 则它是滞后的
因变量模型,如果两者都 𝛿= 0 和 𝜌= 0 模型就简化为基础的 OLS 模型。平稳
性要求 |𝜌|< 1,所以如果 |𝛿| = 1,则因变量是非平稳的,应建模为变化(𝑦𝑡 − 𝑦𝑡−1 )
而不是水平(level)。
完整模型可以写成 ARDL(2,1):
𝑦𝑡 = 𝛽1 (1 − 𝜌) + 𝛽2 𝑥𝑡 + (𝛿 + 𝜌)𝑦𝑡−1 − (𝜌𝛽2 )𝑥𝑡−1 − (𝜌𝛿)𝑦𝑡−2 + 𝑣𝑡
进行本次模拟模型可以回答很多问题,其中,LDV 模型自相关时最小二乘有多
少偏差?这是否取决于自相关的程度?假设模型是自相关的但很小,最小二乘是
否有严重偏差?等等。
本次模拟还介绍了自相关自变量的能力𝑥𝑡 = 𝜃𝑥𝑡−1 + 𝑣𝑡 。这是有用的,否则
𝑥𝑡 和𝑦𝑡−1将不会同时相关;因此,在模型中省略滞后因变量不会造成𝛽2估计的不
一致。这可以通过在模拟中设置𝜃= 0 来去实证。正如我们在大多数这些模拟中所
做的那样,我们在模拟中将截距参数的值设置为零,这可以在不失一般性的情况
下完成。
Stata 中使用的代码如下所示:
global nobs = 200 replace u = rho*L.u + rnormal(0,sigma) in 2/$nobs
global nmc = 1000 replace y = beta*x+delta*L.y + u in 2/$nobs
set seed 10101 reg y x /* b1 OLS, w/o LDV */
set obs $nobs scalar b1 = _b[x]
gen time = _n scalar se1 = _se[x]
tsset time reg L(0/1).y x /* b2 LDV w/o Prais */
scalar b2 = _b[x]
scalar theta = .8 /* autocorrelation in x */ scalar se2 = _se[x]
scalar beta = 10 /* slope for x */ prais L(0/1).y x, twostep /* b3 LDV w/Prais */
scalar sigma = 20 /* variance of y */ scalar b3 = _b[x]
scalar delta = .5 /* coeff for lagged y */ scalar se3 = _se[x]
scalar rho = .8 /* autocorrelation in errors */ reg L(0/2).y L(0/1).x /* b4 ARDL(2,1) */
scalar b4 = _b[x]
gen x = rnormal() scalar se4 = _se[x]
replace x = theta*L.x + rnormal() in 2/$nobs post `sim' (b1) (b2) (b3) (b4) (se1) (se2) (se3) (se4)
gen u = 0 }
gen y = 0 }
postclose `sim'
program regLDV, rclass end
tempname sim
postfile `sim' b1 b2 b3 b4 se1 se2 se3 se4 using results, replace regLDV
quietly { use results, clear
forvalues i = 1/$nmc { summarize
在本次模拟中有几个新东西。首先,在第 1 行和第 2 行创建了全局宏变量;
nobs 命令允许我们设置每个样本将包含的观察数量,而 nmc 命令允许您设置要
绘制的模拟样本的数量。在第 4 行中,set obs $nobs 命令打开一个空数据集,其
中包含用于 nobs 观察的空间。自回归自变量是在第 14 行和第 15 行创建的。而
且在第 16 行和第 17 行设置零来填充误差和因变量。所以本质上,这设置允许将
时间序列的初始值设置为零。
创建一个名为 regLDV 的程序,并使用 rclass 选项给出返回分类;这允许将
在 regLDV 程序中计算的某些东西携带到 regLDV 之外。我们需要这个设置才能
将系数和标准误差的计算结果发布到指定的数据集。
replace 命令可以帮助构建时间序列,而无需诉诸递归。然而,必须谨慎进行
模拟,以将观察结果限制在可用的范围内。因此,在第 24 行和第 25 行中,需要
in2/$nobs 限定符。在本次模拟中,𝑢1 = 0和𝑦1 = 0由于这些系列在上面被初始化
的方式。后续值将使用 25 和 26 中的公式计算。
本次模拟的其余部分比较直接。估计模型并收集统计数据并将其发布到称为
sim 命令的临时内存位置。该模型以多种方式进行估计:1) 省略了𝑦𝑡−1 的最小二
乘法、2) 包含𝑦𝑡−1 的最小二乘法,但忽略了误差中的自相关、3) 具有两步 Prais-
Winsten 变换的 LDV 模型和、4 ) 正确指定的 ARDL(2,1)模型。模拟的结果显
示如下:
表 4-6 自相关与之后因变量的模拟结果
五、 总结
最佳估计是那些无偏且方差最小的估计。 当您的模型满足假设时,定理表明
OLS 过程产生具有最小方差的无偏估计。 抽样分布以实际人口值为中心,并且
是尽可能紧密的分布。 最后,这些不仅是 OLS 可以产生的最佳估计,而且是
任何线性模型估计器可以产生的最佳估计。
OLS 无偏性: 在有限样本的性质下,我们可以说 OLS 估计量是无偏的,这意味着
[1] Cameron, A. Colin and Pravin K. Trivedi (2005), Microeconometrics: Methods and
[2] Davidson, Russell and James G. MacKinnon (1993), Estimation and Inference in
[3] Judd, Kenneth L. (1998), Numerical Methods in Economics, MIT Press, chapter 8.
[4] Kennedy, Peter (2003), A Guide to Econometrics, 5th ed., Blackwell Publishing, section
2.10.