异方差性实验

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.2实验二异方差性及其性质1.2.1实验目的我们已经知道,在经典条件下,线性模型回归参数的OLS估计是具有最小方差的线性无偏估计量。随机误差项的异方差性,是线性回归模型中常见的不满足经典条件的情形。与满足经典条件的情形相比,当模型中出现异方差性时,模型参数的普通最小二乘(OLS)估计的统计性质将发生什么样的变化?如何理解和把握这些变化?如何纠正模型估计因为异方差性而产生的问题?通过本实验,可以帮助学生理解异方差性本身的概念、存在异方差性时模型参数的OLS估计量的性质、加权最小二乘法等。1.2.2实验背景与理论基础1.异方差性本实验以二元线性回归模型为例进行说明。线性回归模型01122iiiiYXXu,1,2,,in假设模型满足除“同方差性”之外的所有经典假设:(1)E()0iu,1,2,,in,或表示为()EU0,从而有()EYXβ;(3)Cov(,)0,ijuuij,随机误差无序列相关;(4)解释变量是确定性变量,与随机误差项不相关:Cov(,)0jijuX,1,2i,1,2,,jn(5)自变量之间不存在精确(完全)的线性关系。矩阵X是列满秩的:rank()3X。(要求样本容量3n)(6)随机误差的正态性:2(0,)iuuN,1,2,,in。2.异方差性条件下OLS估计量的统计性质(1)ˆβ的无偏性:模型回归参数012,,的OLS估计量为:0112ˆˆˆ()ˆβ=XXXY可以证明,即使在异方差性条件下,上述估计量依然满足无偏性:00112ˆ()ˆˆE()()ˆ()EEEβ==β(2)ˆβ的方差及协方差:在模型满足经典条件时,OLS估计量的方差—协方差矩阵为21ˆVar()()uβXX,但是在异方差性条件下,不存在独立于X的随机误差项方差2u,因此不再存在这一简单公式。另一方面,在计量分析实践中,即使在线性回归模型的经典条件下,随机误差项的方差2u本身也不是可直接观察的,实践中我们用22ˆ3uien对其进行估计(大多数统计分析软件正是如此处理的),也即用矩阵21ˆ()uXX去估计OLS估计量ˆβ的方差—协方差矩阵ˆVar()β,并在此基础上对模型进行各种检验。在线性回归模型的经典条件下,这种估计将是无偏的(参见本章实验一)。重要的问题是,在异方差性条件下,如果无视异方差性的存在,仍用21ˆ()uXX去估计OLS估计量ˆβ的方差—协方差矩阵ˆVar()β,这种估计是否仍具有无偏性?建立在这种估计之上的各种模型检验是否依然有效?3.加权最小二乘法修正异方差性的常用方法是加权最小二乘法,它是广义最小二乘法中的一种。具体的方法是:如果模型01122iiiiYXXu中iu的标准差为12(,)iiifXX,在原模型中乘以1/i,模型变为:120121iiiiiiiiiYXXu将此模型看成是iiY对121,,iiiiiXX的线性回归模型,此模型将具有同方差性,由于原模型满足除同方差性外的所有经典条件,因此上述模型将满足所有线性模型的经典条件,从此模型中利用最小二乘法估计参数012,,将获得具有最小方差的线性无偏估计量,这就是加权最小二乘法及其原理。1.2.3实验原理本实验仍然通过一个虚构的二元线性回归模型来展开。与本章实验一一样,我们首先设定一定二元线性回归模型的回归参数,取定解释变量的样本值。由于是存在异方差性的模型,不能再设定随机误差项的方差,但是我们可以设定随机误差项的方差与解释变量值之间的函数关系。这样,在总体上我们已经完全掌握了模型。接着我们使用Matlab进行模拟随机抽样,对于得到的每一个模拟随机样本,我们分别使用普通最小二乘法和加权最小二乘法得到模型参数的两种不同的估计量,分别记为012ˆˆˆ,,和012,,。反复以上模拟抽样和估计,我们将分别得到每个模型参数的普通最小二乘估计量012ˆˆˆ,,和加权最小二乘估计量012,,的样本。通过这两个样本,我们可以探讨普通最小二乘估计量和加权最小二乘估计量的统计性质,分析两者之间的共同性质和区别。1.2.4实验过程和步骤1.程序设计以下将实验过程通过编制一个简单的Matlab程序来进行。程序分为以下几个部分:(1)第一步,设置模型基本参数,解释变量的样本值,这一步与实验一的相应步骤是类似的。Matlab程序段如下:clearn=20;beta0=10;beta1=5;beta2=-3;x1=15*rand(n,1)+1;x2=10*rand(n,1)+1;e=ones(n,1);X=[e,x1,x2];(2)第二步,反复抽取样本,进行普通最小二乘估计和加权最小二乘估计,并将估计结果保存在相应的向量中。Matlab程序段如下:b0=[];b1=[];b2=[];sigma=[];c0=[];c1=[];c2=[];XX=X./[x1,x1,x1];times=5000;forj=1:timesuu=normrnd(0,se,n,1);u=2*x1.*uu;Y=beta0+beta1*x1+beta2*x2+u;[b,bint,r]=regress(Y,X);b0=[b0;b(1)];b1=[b1;b(2)];b2=[b2;b(3)];sigma=[sigma,sum(r.^2)/(n-3)];YY=Y./x1;[c,bint,r]=regress(YY,XX);c0=[c0;c(1)];c1=[c1;c(2)];c2=[c2;c(3)];end代码解释:“b0=[];b1=[];b2=[];sigma1=[];”生成4个维数可变的动态向量,准备分别存放每次抽样所产生的普通最小二乘估计量012ˆˆˆ,,及2ˆ/(3)iun,其中ˆiu为普通最小二乘回归的残差。“c0=[];c1=[];c2=[];sigma2=[];”生成4个维数可变的动态向量,准备分别存放每次抽样所产生的加权最小二乘估计量估计量012,,及2/(3)iun,其中iu为加权最小二乘回归的残差。“XX=X./[x1,x1,x1];”表示将矩阵X的每一列向量的元素对应除以列向量X1的元素,也即得到矩阵211111221212211111111nnnXXXXXXXXXXX生成这一矩阵的目的将在下文中揭示,实际上是为下文中的加权最小二乘估计做准备。“times=5000;”设定反复抽样和回归的次数,你可以根据需要设定成另外的整数;“uu=normrnd(0,1,n,1);”随机生成分布N(0,1)的简单随机样本,构成n维列向量12(,,,)nuuuuuuuu,“u=2*X1.*uu”表示生成一个n维列向量u,其元素是列向量X1和uu的对应元素的乘积再乘以2,即1111221(2,2,,2)nnuXuuXuuXuu这表示随机误差12,,,nuuu相互间不相关,但其标准差为12iiX(11,2,,)n。“Y=beta0+beta1*x1+beta2*x2+u;”利用以上生成的向量生成被解释变量Y的一个模拟样本:10111221120112222201122nnnnYXXuYXXuYYXXu这是一个具有异方差性的二元线性回归模型的模拟样本,随机误差的标准差与解释变量x1的关系是12iiX。“[b,bint,r]=regress(Y,X);”将Y对X进行普通最小二乘回归,获取估计结果参数,其中b为回归系数点估计向量012ˆˆˆ(,,),r为残差列向量。“b0=[b0;b(1)];”将0ˆ的值逐个存入数表b0,使b0于循环结束时成为times维列向量。“b1=[b1;b(2)];”将1ˆ的值逐个存入数表b1,使b1于循环结束时成为times维列向量。“b2=[b2;b(3)];”将2ˆ的值逐列存入数表b2,使b2于循环结束时成为times维列向量。“sigma=[sigma,sum(r.^2)/(n-3)];”将由回归残差计算所得的值2ˆ/(3)iun逐列存入数表sigma1,使sigma于循环结束时成为times维列向量。“YY=Y./x1;”将向量Y的分量分别除以向量x1的对应分量,得到列向量YY,即1112121///nnYXYXYYYX“[c,bint,r]=regress(YY,XX);”将YY对XX(参见前文中的XX的构造)进行普通最小二乘回归,获取估计结果参数。实际上,此时YY对XX的普通最小二乘回归正是对线性模型12012111111iiiiiiiiiYXXuXXXXX的普通最小二乘回归,由于iu的标准差12iiX,因此上述模型又等价于120121iiiiiiiiiYXXu对此模型的普通最小二乘估计正是对原模型01122iiiiYXXu的加权最小二乘估计。因此上述命令中的c为即为原模型回归参数的加权最小二乘估计向量012(,,),r为残差列向量。“c0=[c0;c(1)];”将0的值逐个存入数表c0,使c0于循环结束时成为times维列向量;“c1=[c1;c(2)];”将1的值逐个存入数表c1,使c1于循环结束时成为times维列向量;“c2=[c2;c(3)];”将2的值逐列存入数表c2,使c2于循环结束时成为times维列向量。2.输出实验结果运行上述程序后,模型回归参数的普通最小二乘估计量的样本存放在向量b0,b1,b2中;模型回归参数的加权最小二乘估计量的样本存放在向量c0,c1,c2中,同时,两种估计法所产生的残差所计算的2ˆ/(3)iun和2/(3)iun的所有数据分别存放在向量sigma1和sigma2中。这些向量的值均被暂时保存于内存中,我们可以用相应的Matlab命令输出我们所希望获得的各种结果。这里需要特别指出的是,以下结果只是某一次实验(上述程序某一次运行)的结果,该程序的每一次运行都将使解释变量的值,以及被解释变量的随机样本发生变化,因此你实验时得到的结果与以下结果将会略有出入。(1)解释变量的值利用命令[x1,x2]可直接输出程序中生成的解释变量的值(经整理成为下表)。解释变量的值并没有在对被解释变量的反复抽样中发生变化。(2)012ˆˆˆ,,的无偏性x1x210.12812.21051.23645.50751.24538.15883.85119.92849.80383.7311.86373.54776.51359.65610.47183.323511.76459.048711.3910.0842.26123.31897.81533.39317.62741.49756.29881.78383.30417.408211.13472.908911.48829.438711.91262.7398.17582.70799.322610.943即使在异方差性条件下,012ˆˆˆ,,依然分别是012,,的无偏估计。在上述程序运行结束后,使用以下MATLAB命令:b_theo=[beta0,beta1,beta2]mean_b_ols=[mean(b0),mean(b1),mean(b2)]mean_b_wols=[mean(c0),mean(c1),mean(c2)]其中第一个命令输出模型被事先设定的回归参数值,记为b_theo;第二个命令输出回归参数的普通最小二乘估计量的样本均值,记为mean_b_ols;第三个命令输出回归参数的加权最小二乘估计量的样本均值,记为mean_b_wols。运行

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功