如何输出stata异方差 约束性参数回归后方差分析表

当前位置: >>
连玉君STATA教程
Estimation with STATA连玉君1西安交通大学 金禾经济研究中心 arlion@stu.xjtu.edu.cn 2006.041 这是我在平时学习过程中整理的笔记。非常感谢我的导师钟经樊先生带我走进计量经济学的多彩世 AT X 软件的使用 界,并介绍给我一非常难得的朋友 ―- STATA。同时,也要感谢金禾中心的程建博士在 L E方面给与的帮助。如果发现笔记中有任何错误和不妥之处,或是对我还没有想出来的问题有任何解决的 建议,烦请发邮件给我,或登陆金禾中心 BBS 计量版进行讨论,地址为 http://jinhe.xjtu.edu.cn/bbs。 目录第二章 STATA简介 § 2.1 安装和基本设定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 2.1.2 窗口设定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 字体设定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 3 3 3 4 5 5 5 6 6 6 6 6 6 6 8 8 9 12 12 12 12 12 13 13§ 2.2 基本操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 2.2.2 2.2.3 执行命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 管理输出结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 获得帮助 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .§ 2.3 变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 2.3.2 2.3.3 变量名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 数值变量和文字变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 缺漏值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .§ 2.4 数据处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . § 2.5 回归分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.1 2.5.2 2.5.3 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 管理输出结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 常用命令列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .§ 2.6 假设检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1 Wald 检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .§ 2.7 面板相关的处理技巧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . § 2.8 矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.8.1 取出矩阵的行名和列名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .§ 2.9 绘图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.9.1 2.9.2 二维图基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 二维图选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .§ 2.10 程序相关 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10.1 程序的基本结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 目录2.10.2 暂元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10.3 基本控制语句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10.4 输入项的设定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10.5 返回值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10.6 子程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10.7 结果的输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10.8 读写文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . § 2.11 部分命令解释 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.11.1 egen 命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.11.2 con?rm 命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.11.3 程序的调试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . § 2.12 模拟分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.12.1 基础知识 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.12.2 MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.12.3 BS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.12.4 相关命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 13 14 15 19 20 20 21 21 21 21 22 23 23 25 25 25 第二章§ 2.1 安装和基本设定STATA简介建议安装路径为: D: \stata8 。这是因为我们通常会将数据和程序存储于安装目录下,如果 安装 c 盘,一旦计算机出现意外故障,很可能导致我们存储在上面的数据无法恢复。 然后在此文件夹下建立 D:\stata8\ado\personal 子文件夹,以便存储个人的资料。这一点很 重要,因为随后我们需要从网上下载资料时,STATA会自动在 personal 文件夹下建立一个名为 plus 的文件夹以便分类存储各种下载的 ado 文件。 可以在 D:\stata8\ado\personal 子文件夹中建立一个名为 pro?le.do 的文件,包含如下内容:log using d:\stata8\ado\personal\stata.log, text replace cmdlog using d:\stata8\ado\personal\command.log, append sysdir set PLUS &D:\stata8\ado\plus& sysdir set OLDPLACE &D:\stata8\data& sysdir set PERSONAL &D:\stata8\ado\personal&2.1.1窗口设定根据个人喜好设定完四个窗口的相对位置后,可以点击菜单上的 Prefs 按钮,然后点击下 拉菜单中的 Save Windowing Preferences 即可。在窗口位置发生改变,希望回到以前的设定状态 时,可以点击下拉菜单中的 Load Windowing Preferences 即可恢复到最近一次保存的设定状态。2.1.2字体设定STATA 的四个界面窗口和 do 文件编辑器中的字体都可以调整,方法为:右击相应的区 域,然后选择 “Font” 即可。§ 2.22.2.1基本操作执行命令STATA的指令可以通过三种方式执行:窗口方式、命令方式和 do 文件方式。窗口方式基本 上同其他常用的软件,如 Eviews 、 SPSS 相同,命令窗口是多数 STATA 常用者所采用的方式, 因为这种方式非常快捷。而 do 文件方式无非是命令方式的集成,这是我们在熟练掌握 STATA 后主要采用的执行指令的方式。下面是一个简单的 do 文件。//Greene chp12 exercises clear3 § 2.2. 基本操作4cap log close cap cmdlog close log using Greene12,text replace cmdlog using Greene12_cmd, replace use &D:\stata8\ado\Examples\others\Greene4th\TBL5-1.DTA&, clear *======================================================= *===============------Example12.1------================= *======================================================= label var x3 &Avg. monthly credit card expenditure& label var x1 &Age in years + 12ths of a year& label var x2 &Income, divided by 10,000& rename x1 age rename x2 income rename x3 expenditure gen income2 = income?2 reg expenditure age income income2 if exp&02.2.2管理输出结果STATA 的输出结果可以有两种接收方式,一种是直接显示在屏幕上,1 另一种是存储于文件 中,细心的读者可能已经注意到上例中的如下命令:log using Greene12,text replace它的作用就在于把所有显示于屏幕上的结果复制一份到名为 Greene12.txt 的文本文件中,replace 选项的作用在于,如果再次执行上述 do 文件,那么以前记录的输出结果将被本次的输出结果替 换掉。采用这种方法的优点在于,当我们的输出结果有很多行以至于屏幕上仅能显示最近的一 些计算结果时,我们可以通过文本文档来查看所有的输出结果。 对于在屏幕上可以直接看到部分输出结果,如表格,数值等,都可以直接复制、粘贴到常A 用的文本编辑器中,如 Word、L TEX等,以及表格编辑器中,如 Excel 。这中间有一个重要的技巧在于,当我们选中一个表格后右击,下拉菜单中会有三种 Copy 的选项,如果选择“Copy as table”,则表格中的结果可以直接以表格形式粘贴到 Excel 中,只要稍作处理就可以粘贴到 Word 中作为最终的论文输出结果。1 如果不想让结果显示在屏幕上,可以在相应的指令前增加 quietly 命令,如qui reg y x1 x2。当我们仅需采用某个命令进行中间计算时,采用此命令可以节省不少时间。 § 2.3. 变量52.2.3获得帮助我们有多种途径可以获得 STATA 的帮助,主要的途径有三个:手册、STATA 自带帮助和网 络帮助。对于多数人而言手册是可望不可及的,因为一套完整的手册有 10 余本,更糟糕的是价 格昂贵。STATA 的自带帮助虽然写的没有 Eviews 或是 Gauss 的帮助那么容易读,可也还是不错 的。获得帮助的命令为:help [command] whelp [command][ ] 表示可选项,如果不加此选项,则会显示所有帮助的目录,如果输入具体的命令,则只显示 该命令的帮助,如whelp regress网络帮助可以采用如下命令获得2findit [command] search [,...]读者可以分别输入以上命令看看有何惊喜发现。§ 2.32.3.1变量变量名称基本要求如下: ? 第一个字元可以是英文字母或 , 但不能是数字; ? 最多只能包括 32 个英文字母、数字或下划线 ; ? 由于 STATA 保留了很多以 开头的内部变量,所以最好不要用 为第一个字元来定义变 量。2 这两个命令都是默认你的计算机可以连接到国际网上的。所以,如果你使用的是校园网,那么需要首先设定代理服务器,具体方法为:具体方法为:依次点击STATA主窗口中 Preference → General preferences → Internet prefs, 然后输入代理服务器和端口即可。 § 2.4. 数据处理62.3.2数值变量和文字变量make AMC Concord AMC Pacer AMC Spirit Buick Century Buick Electra Buick LeSabre Buick Opel price 99 88 4453 mpg 22 17 22 20 15 18 26 rep78 3 3 . 3 4 3 .2.3.3缺漏值§ 2.4数据处理help for numlist collapse§ 2.52.5.1回归分析简介command varlist [if] [in] [weight], [options]举几个简单的例子加以说明; 对结果中的基本项目进行说明;2.5.2管理输出结果est table est store 系数估计的获取2.5.32.5.3.1常用命令列表回归分析命令STATA 回归分析命令的共同特征。whelp estcom。采用列示项目的方式加以说明。 2.5.3.2 估计后命令在 STATA 完成相应的估计后,仅将部分估计结果列示在屏幕上,如果我们想获取更多的附 加结果,如残差估计值、协方差矩阵,或是对两个模型的估计结果进行对比,本节表 2.5.3.2 中 § 2.5. 回归分析7表 2-1: 回归分析相关命令一览命令 anova heckman intreg ivreg newey prais qreg reg sw reg3 rreg sureg svyheckman svyintreg svyregress tobit treatreg truncreg用途 方差和协方差分析 Heckman 筛选模型 离散型变量模型,包括 Tobit 、 cnreg 和 intreg 工具变量法(IV 或 2SLS) Newey-West 标准差设定下的回归 针对序列相关的 Prais-Winsten, Cochrane-Orcutt, or Hildreth-Lu 回归 分量回归 OLS 回归 逐步回归法 三阶段最小二乘回归 稳健回归(不同于方差稳健型回归,即 White 方法) 似无相关估计 调查数据的 Heckman 筛选模型 调查数据的间断变量回归 调查数据的线性回归 Tobit 回归 treatment 效应模型 截断回归 § 2.6. 假设检验8表 2-2: 时间序列命令一览命令 clemao1 zandrews dfuller dfgls pperron coin dwstat durbinh用途 允许结构突变的单位根检验单方程协整检验 参考 dwstat2 , durbina2介绍的命令可以大大提高你的分析效率。3§ 2.62.6.1假设检验Wald 检验whelp testsysuse auto qui reg price mpg weight test weight=0 test (weight=4)(mpg=1)/*单个系数检验*/ /*联合检验,给出F统计量*/3 要获得详细的帮助列表,请输入帮助命令:whelp postest。 § 2.7. 面板相关的处理技巧9§ 2.72.7.0.1面板相关的处理技巧产生组内均值tsset id year by id: egen avgi = mean(invest)2.7.0.2统计各行业的公司数目假设我们事先定义了一个表示行业归属的变量,sicmen,4 我们需要知道每个行业中的公司 数目,便可以采用 table 命令:tab sicmen if year==1998如果需要分年度统计,可以结合使用前面介绍的 bysort 命令:bysort year: tab sicmen2.7.0.3虚拟变量的产生STATA 提供了多种方法可供我们产生虚拟变量。 1. generate 和replace 命令结合使用。使用于在任何情况下产生虚拟变量,不过当类别较 多(即需要产生的虚拟变量较多时)会比较繁琐。这是可以考虑使用循环语句,如 forvalue 、foreach 命令。 我们可以巧妙的使用判别语句,将上述两条命令合二为一。等号的右边就相当于我们前面 使用 replace 命令时设定的 if 语句中的内容。 1.1 巧用判别语句gen age2530 = agelabel == 2 gen age30s = agelabel == 3 gen dum1 = size&2002. tabulate 加gen() 选项。利用含有 k 种分类的类别变量,如 group ,产生 k 个虚拟变量。tab sicmen , gen(sicdum)4 如,属于农林行业的公司取值为 1,采掘业公司取值为 2,制造业公司取值为3,? ? ? , 综合类公司取值为 13。 § 2.7. 面板相关的处理技巧10我们将产生对应于 13 个行业门类的 13 个虚拟变量,回归时略去其中一个(通常是第一个)即 可。 3. xi:reg varlist i.groupvar。前提条件: 一定要有一个类别变量,如种族、地区或行业归属、做面板时的行业代码等。比如,我们想估计一个既有个体效应又有时间效应的固定效应模型,就可以采用此命令:tsset id year xi: xtreg varlist i.year, fe接着,我们还可以利用 2.6.1 小节中介绍的 test 命令对时间效应的联合显著性做 Wald 检验。test _Itime_2=_Itime_3=_Itime_4=_Itime_5=_Itime_6这里我们假设 T=6 。局限性: 由于 xi: 中已经包含了一个冒号,所以对于回归命令如,reg 前附加的命令,使用该方法无法产生虚拟变量。如以下两条命令都无法正确执行:bysort region: xi: xtreg y x i.sicmen, fe sw xi: reg y x i.group4. xtile 可以根据指定的分位数产生一个新的类别变量。我们可以根据此类别变量来产生虚 拟变量。 2.7.0.4 非平行数据转化为平行数据方法1:参考 xtgls.ado 文件的子程序 ChkBal 。 思路:采用 by 命令统计每个截面中的样本数目,比较它们是否相等。5program define ChkBal global S_1 = 0 if $X_bal == 0 { exit } /* Check for balanced panels */ global S_1 0 tempvar use mark ‘use’5 另外两种处理方法参考面板数据那一章。 § 2.7. 面板相关的处理技巧11markout ‘use’ $X_depv $X_indv $X_ivar $X_tvar *replace ‘use’ = ‘use’ * $X_ttemp tempvar test egen ‘test’ = sum(‘use’), by($X_itemp) summ ‘test’ if r(min) != r(max) { global S_1 1 /* Not balanced */ exit } /* Check for duplicate values in panel & equal values across panels */ tempvar t1 t2 sort $X_ttemp quietly by $X_ttemp: gen long ‘t1’ = 1 if _n==1 qui replace ‘t1’ = sum(‘t1’) sort $X_itemp $X_ttemp capture by $X_itemp : assert ‘t1’ != ‘t1’[_n-1] if _n&1 if _rc { global S_1 2 /* Duplicate values in panel */ exit } egen ‘t2’ = sum(‘t1’) if ‘use’, by($X_itemp) summ ‘t2’ if r(min) != r(max) { global S_1 3 /* Unequal values across panels */ exit } sort $X_itemp $X_ttemp end主程序中对该子程序的调用方式如下:ChkBal if $S_1 == 1 { noi di in red ‘&panels must be balanced&’ exit 459 } if $S_1 == 2 { noi di in red /* */ ‘&$X_tvar has duplicate values within panel&’ exit 459 } if $S_1 == 3 { noi di in red /* */ &$X_tvar has different values across panels& exit 459 }方法2: § 2.8. 矩阵12quietly { tempvar T touse gen byte ‘touse’ = e(sample) sort ‘touse’ ‘ivar’ by ‘touse’ ‘ivar’: gen int ‘T’ = _N if ‘touse’ summarize ‘T’ if ‘touse’ & ‘ivar’?=‘ivar’[_n-1], detail } /*参考xtlogit.ado*/方法3:采用 egen 命令产生标示后进行处理6egen balan = tag(code)§ 2.82.8.1矩阵取出矩阵的行名和列名具体参见钟老师的笔记和 STATA 编程手册。local rnames: rownames matname§ 2.92.9.1绘图二维图基础基本语法格式如下:[graph] twoway plot [if exp] [in range] [, twoway_options]其中,plot 定义为:[(] plottype varlist ..., options [)] [||]这里的 plottype 表示图形的类别,包括散点图、连线图、直方图等,详见表 2.9.1 。而选项 options 的设定,我们将在第 2.9.2 小节详加说明。2.9.2二维图选项二维图选项的主要类别参见表 2.9.2 ,具体可在相应选项类别名称前加 whelp 查看帮助。6 感谢程建提出的建议。 § 2.10. 程序相关13stata 绘制的图片可以保存为.wmf 类型的文件后粘贴到 Word 中进行编辑。右击图片,选择 “编辑”图片,对其中虚化的文本框进行编辑即可。§ 2.102.10.1程序相关程序的基本结构program define prog_name version 8.2 program codes end各项的解释: 2.10.1.1 程序的模块化参考 xtgls 命令的更新程序。 对于大型的程序,我们最好事先将其分成若干个子程序模块,然后采用一个主程序将它们 组织起来。这一方面使得我们的程序结构清晰,便于调试,另一方面也便于其他人阅读和理解 程序。2.10.22.10.2.1暂元局域暂元preserve gen x = _n tempvar d1 d2 gen ‘d1’ = x&10 gen ‘d2’ = 1 -‘d1’ local dlist ‘d1’ ‘d2’ foreach var of varlist ‘dlist’{ sum ‘var’ } restore为什么下面的命令无法正确执行?tempvar d1 d2 foreach v of local ‘d1’ ‘d2’ { gen ‘v’ = 1 } § 2.10. 程序相关14采用 args 这种低级的输入项设定方式,处理起来要非常小心,因为它以空格来识别输入项的个 数。看下面的例子就知道了:program define test_args args sin varlist if ‘sin’ == 1{ sum ‘varlist’ } else{ des ‘varlist’ } end *------调用方式------test_args 1 size tl local vars &size tl& test_args 1 &‘vars’&/*这样只能显示size的统计值*/ /*正确,这样两个变量的统计值都可显示*/2.10.2.2 2.10.2.3全局暂元 临时性文件几中不用临时性文件的解决办法:capture、preserve(restore)。7 2.10.2.4 一些技巧从上次估计结果或使用者输入的回归命令中获得变量列表和变量个数。local varlist : colnames ‘b’ local nvar : word count ‘varlist’2.10.3基本控制语句continue命令的使用范例:*-1-* 通常做法: . forvalues i = 1(1)4{ 2. if mod(‘i’,2){ 3. di & ‘i’ is odd& 4. } 5. else{ 6. di & ‘i’ is even& 7. } 8. } 1 is odd 2 is even 3 is odd7 参见 STATA 编程手册 pp.134。 § 2.10. 程序相关154 is even *-2-* 使用continue命令: . forvalues i = 1(1)4{ 2. if mod(‘i’,2){ 3. di & ‘i’ is odd& 4. continue 5. } 6. di & ‘i’ is even& 7. } 1 is odd 2 is even 3 is odd 4 is even *-3-* 使用continue,break的效果 . forvalues i = 1(1)4{ 2. if mod(‘i’,2){ 3. di &‘i’ is odd& 4. continue, break 5. } 6. di &‘i’ is even& 7. } 1 is odd2.10.4输入项的设定参考 syntax 和 args 帮助。 2.10.4.1 args 的使用program define boy args model if ‘model’==1{ dis &good boy& } else{ dis &bad boy& } end命令执行结果如下:. boy 1 good boy . boy 2 bad boy . boy /*未指定输入项*/ ==1 invalid name r(198);/*错误信息*/ § 2.10. 程序相关16一个需要注意的问题,采用 args 输入项设定方式时,因为它是以空格来分离输入项的,所 以调用命令时要注意这一点:program define myreg args depvar indvars reg ‘depvar’ ‘indvars’ end比如我们想估计模型 y = β1 x1 + β2 x2 + u ,也就是说有两个解释变量,那么下面的调用方式是 错误的:myreg y x1正确调用方式为:local varlist x1 x2 myreg y &‘varlist’&我们也可以调用临时性文件:program define chp2_sintro_tempfile args tempfile use ‘tempfile’,clear sum end看下面的调用方式:sysuse auto sum keep price wei tempfile temp_data save &‘temp_data’&,replace chp2_sintro_tempfile &‘temp_data’&输出结果:(... ommited ...) . keep price wei . save &‘data’& file C:\DOCUME?1\Rebecca\LOCALS?1\Temp\ST_0800000e.tmp saved . chp2_sintro_tempfile &‘data’& (1978 Automobile Data) § 2.10. 程序相关17Variable | Obs Mean Std. Dev. Min Max ----------+-------------------------------------------------------price | 74 9.496
weight | 74 .40从这个例子中可以看出,只需把需要调用的部分按原样放在输入项的位置上即可。 2.10.4.2 syntax 的使用如果在输入项中包含矩阵,可以定义为字符串,因为矩阵的名称就是字符串。暂元的使用 类似。看下面的程序:program define getmat syntax [,Mat(string)] mat list ‘mat’ end调用结果为:. tempname pc . mat a = J(3,1,1) . mat ‘pc’ = a . getmat_temp , mat(‘pc’) __,1] c1 r1 1 r2 1 r3 12.10.4.3切割输入变量为 y 和 xtokenize ‘varlist’ local dep &‘1’& mac shift local ind &‘*’& noi _rmcoll ‘ind’ if ‘touse’, ‘constan’ local ind &‘r(varlist)’& local p : word count ‘ind’ /*参考xtlogit.ado*/gettoken § 2.10. 程序相关18local varlist tobin size tang tshr prof gettoken depvar indvars : varlist dis &varlist: & &‘varlist’& dis &depvar: & &‘depvar’& dis &indvars: & ‘&‘indvars’&’2.10.4.4标示样本program define xx syntax varlist [if] [in], sort(varname) local touse marksample touse bysort ‘sort’: sum ‘varlist’ if ‘touse’ end2.10.4.5一些实例if length(&‘fe’‘re’‘pa’&) & 2 { di in red &Choose only one of fe, re, and pa& exit 198 } /*参见xtlogti.ado*/2.10.4.6判断上次估计命令参考 linktest.ado 。 2.10.4.7 共线性处理_rmcoll ‘rhs’ ‘w’ if ‘touse’, ‘constant’2.10.4.8字符串的处理当选项中有字符串时,我们通常允许字符串的缩写形式,但不同的人输入的缩写字符数可 能不同,这就需要我们在程序中给出判断。如8program define MapPanel /* panel */ local l = length(‘&‘1’&’) if ‘&‘1’&’==substr(‘&iid&’,1,‘l’) | ‘l’==0 { global S_1 0 exit }8 参见 xtgls.ado 。 § 2.10. 程序相关19if ‘&‘1’&’==substr(‘&heteroskedastic&’,1,‘l’) | /* */ ‘&‘1’&’==substr(‘&heteroscedastic&’,1,‘l’) { global S_1 1 exit } if ‘&‘1’&’==substr(‘&correlated&’,1,‘l’) { global S_1 2 exit } if ‘&‘1’&’==‘&0&’ | ‘&‘1’&’==‘&1&’ | ‘&‘1’&’==‘&2&’ { global S_1 ‘1’ exit } di in red ‘&panel(‘1’) invalid&’ exit 198 end2.10.52.10.5.1返回值一些应当注意的问题1. 返回矩阵时,等式右边只能是一个现有的矩阵名称,而不能含有任何矩阵运算。看下面 的例子:... mat a = J(3,2,1) mat a1= a[....,1] eret mat b = a[....,1] eret mat b = a1 .../*错误返回*/ /*正确返回*/2. 将所有的返回值放在最后返回,之前用暂元存储,这样可以避免中间过程在调用 STATA 自身 程序时清除我们已经设定好的返回值。9 如果需要把上一部执行后的返回值作为我们程序的返回 值,如果不是在程序末尾,一定也要先存到暂元中,然后再在程序的末尾一并返回。在下面这 个例子中我们就无法得到想要的返回值:10... sum v1 ... sum v2 eret scalar v1_max = r(max)虽然这个道理非常简单,但一旦忽略可能会让你很难觉察,我是在这上面栽了一次。9 部分 STATA 程序使用了 eret clear 命令,这样会清除掉记忆体内现存的所有返回值。 10 假设我们想把变量 v1 的最大值返回得到 e(v1 max)。 § 2.10. 程序相关202.10.6子程序下面的命令可以正确执行,但如果想在子程序中也加入样本标示的限制,由应当如何实现 呢?program define xx syntax varlist [if] [in], sort(varname) marksample touse bysort ‘sort’: sum ‘varlist’ if ‘touse’ dis &sub prog begin== & _n a ‘varlist’ end program define a syntax varlist [if] list ‘varlist’ end下面这段程序可以提供一个粗略的解决办法:program define xx syntax varlist [if] [in], sort(varname) marksample touse bysort ‘sort’: sum ‘varlist’ if ‘touse’ dis &sub prog begin== & _n a ‘varlist’ if ‘touse’ end program define a syntax varlist [if] list ‘varlist’ ‘if’ end2.10.7结果的输出display qui no 下面的例子有助于我们理解该命令的使用:program define qui_n qui{ reg inv m s n { mat list e(b) } } end § 2.11. 部分命令解释21调用结果为:. qui_n e(b)[1,3] market y1 .stock ._cons -48.029736tabdisp 介绍一些典型的列表方式2.10.8读写文件whelp ?le§ 2.112.11.1 2.11.2部分命令解释egen 命令 con?rm 命令先举一个简单的例子。比如我们的数据库中有200个变量,其中包括部分文字类型的变 量,我们希望将这些变量剔除掉。一个非常直接的办法就是首先采用“describe”命令列示出 所有变量的存储类型,然后记录下所有文字类型变量的名称,如“ x1 , x2 , ? ? ? , xn ”,然后采用 “drop”命令将这些变量全部删除。有过一些数据处理经验的读者的第一反应可能就是,“这 是一件很繁琐的事情!”。事实也的确如此,即使你是个非常细心的人,这个过程也要花费你 数十分钟,如果数据库中变量的数目达到2000个,你或许要花费更多的时间时间来完成这项工 作,处理过程中出错也几乎是不可避免的。 利用 con?rm 命令和循环计数器我们可以很轻松地完成这项工作,我们可以先看下面的处理 程序:local varlist &x1-x2000& foreach v of local varlist { capture confirm string variable ‘v’ if !_rc { drop ‘v’ } }我们首先将所有的变量名都存储在一个名为“varlist”的暂元中,继而判断每一个变量的存储类 型,如果该变量是文字型变量,我们就将其删除。其中,“con?rm string variable ‘v’”的作用就 § 2.11. 部分命令解释22在于判断某个变量是否为文字型变量,并将判断后的返回值存储在 STATA 内部定义的一个暂元 “ rc”中,如果是就返回“0”,否则就返回一个非零的整数。理解了“con?rm”命令的工作 原理后,我们就很容易理解随后的语句了。 除了能够判断变量的存储类型外,“con?rm”命令还可以判断某个变量、单值、矩阵甚 或文件是否存在。但不论是做那种判断,其背后的原理都是一样的,有兴趣的读者可以参考 STATA 的帮助文件。 2.11.2.1 preserve我们在程序执行的过程中往往要对使用者的数据进行修改,但有希望程序执行完毕能够恢 复到使用者原本的数据存储状态,此时可以结合使用 preserve 和 restore 命令来达到这个目的。 其原理很简单,就是在使用 preserve 的地方把记忆体中的数据备份,然后就可以做任何修改和 删除动作,显示计算结果,等到一切都完成后,执行 restore 命令,把先前执行 preserve 时备份 的那个数据调入记忆体。clear sysuse auto sum preserve keep price sum restore,preserve sum drop leng sum restore,not sum drop leng sum/*1---*/ /*2---back to 1*/ /*2end*/ /*3---back to 2end,because we cancel the preserve in 2*/ /*an error will occur here,because leng has been dropped*/2.11.3程序的调试这或许是最能让我们掉头发的事情了! 我的经验是最好事先对程序的框架进行设计,划分出 合理的模块结构。然后要写出一个所有可能定义到的变量的列表,使所有变量、暂元、暂时性 文件等物件都有各自的名称,这些名称要符合 STATA 的命名规则,同时要有一定的规律性,尽 量简短,减少输入错误。不过,不管你事先考虑的在周全,STATA 总是能帮你找点麻烦出来, 小小地蹂躏你一下而后快。所以你要做好充分地被蹂的准备。下面是一些提示: ? 为了避免不断地翻页,你可以在可能出错的地方之前加 set trace on 命令,这样可以提高调 试的效率; ? 简化你的思路,编一个极其简陋的程序测试一下你的想法; § 2.12. 模拟分析23? ad§ 2.122.12.12.12.1.1模拟分析基础知识获取百分位值_pctile var1, n(2) local p2 = r(r1)该命令专用于编程,最大可允许 1000 个分位点的设定。看其参考可以获得其它相关命令的帮 助。 2.12.1.2 随机数的产生gen seed = ceil(uniform()*10?6) local seed = seed[1] set seed ‘seed’2.12.1.3抽样时的一个问题,待解决当采用 sample 命令进行非重复抽样时,我采用了 preserve 和 restore 的结合来反复修改抽样 的 id 。但结果是每次抽样的结果都相同。如果不采用 preserve 和 restore 命令的话,就不会有任 何问题。两种方法的代码如下: 方法一:每次抽样的结果都相同// refer Cleary(1999,JF) BS empirical p-value use &D:\Stata8\ado\Examples\XTFiles\invest2.dta&, clear rename time id rename com t mat d = J(50,2,0) forvalues i = 1(1)3{ preserve qui keep if t == 5 qui keep id sample 40 gen label = 1 sort id label qui save temp_bs.dta,replace restore § 2.12. 模拟分析24tsset id t qui merge id using temp_bs.dta qui replace label = 0 if label==. cap drop _merge * reg and save the difference qui xtreg inv mark stock if label==1, fe local b1 = _b[mark] local b2 = _b[stock] qui xtreg inv mark stock if label==0, fe mat d[‘i’,1] = (_b[mark]-‘b1’, _b[stock]-‘b2’) } mat list d方法二:可以正常抽样// refer Cleary(1999,JF) BS empirical p-value mat d = J(50,2,0) forvalues i = 1(1)50{ * to Bootstrap sample, with no replacement * basic idea: BS id, gen new variable to label them, * and them merge with the main dataset. use &D:\Stata8\ado\personal\temp_id.dta&, clear sample 50 gen label = 1 sort id label qui save temp_bs.dta, replaceuse &D:\Stata8\ado\Examples\XTFiles\invest2.dta&, clear rename time id rename com t tsset id t qui merge id using temp_bs.dta cap drop _merge //dis &Ito: & ‘i’ //list id if t==5&label==1 * reg and save the difference qui xtreg inv mark stock if label==1, fe local b1 = _b[mark] local b2 = _b[stock] qui xtreg inv mark stock if label==., fe mat d[‘i’,1] = (_b[mark]-‘b1’, _b[stock]-‘b2’) } mat list d § 2.12. 模拟分析252.12.2 2.12.3 2.12.42.12.4.1MC BS 相关命令drawnorm. . . . matrix m = (2,3) matrix sd = (.5,2) drawnorm x y, n(2000) means(m) sds(sd) summarize. matrix C = (1, .5 \ .5, 1) . drawnorm x y, n(1000) corr(C) § 2.12. 模拟分析26表 2-3: Panel Data 模型相关命令一览 I命令 统计描述相关命令: xtdes xtsum xttab xtpattern 估计相关命令: xtreg xtregar xtgls xtpcse xtrchh xtivreg xtabond xtabond2 xttobit xtintreg xtlogit xtprobit xtcloglog xtpoisson xtnbreg xtfrontier xthtylor模型变量类型,数据类型描述 基本统计量 按表格形式列示 面板数据的模式面板数据模型(固定效应、随机效应) 含有 AR(1) 干扰项的固定效应和随机效应面板数据模型 截面-时序混合模型,可处理异方差、组内序列相关和组间相关性 OLS or Prais-Winsten models with panel-corrected standard errors Hildreth-Houck random coef?cients models 面板模型的工具变量或两阶段最小二乘法估计 Arellano-Bond(1991) 线性动态面板数据模型估计 Arellano-Bover(1995) 系统 GMM 动态面板数据模型估计 Tobit 随机效应面板模型 Random-effects interval data regression models Fe, Re, Pa logit models Re, Pa probit models Re, Pa cloglog models Fe, Re, Pa Poisson models Fe, Re, Pa negative binomial models 面板随机前沿模型 Hausman-Taylor estimator for error-components models § 2.12. 模拟分析27表 2-4: Panel Data 模型相关命令一览 II命令 假设检验相关: test xttest0 xttest1 xttest2 xtserial xtab hausman 面板单位根和协整相关: xtunit ipshin levilin madfuller xt?sher模型Wald 检验,如时间效应联合显著性检验 随机效应检验 面板序列相关检验 ads Wooldridge 一阶序列相关检验 Arellano 面板一阶序列相关检验 Hausman 检验stata提供的检验方法 IPS(2003)面板单位根检验 Levin,Lin和Chu(LLC, 2002)面板单位根检验 Sarno-Taylor(1998) 面板单位根检验 Maddala和Wu(1999),基于 P 值的面板单位根检验 § 2.12. 模拟分析28表 2-5: Post-estimation Commands命令名称 adjust estimates hausman lincom linktest lrtest mfx nlcom predict predictnl test testnl vce用途 列示预测结果的均质,适于多种回归分析,可分组列示 估计结果的存储、再显示、列表比较等 Hausman 模型识别检验 获得参数的线性组合,在 Logit 模型中可以获得系数线性组合的 OR 值 但方程 link 识别检验,用 y 对 y ?和y ?2 回归 似然比(LR)检验 计算边际效应和弹性系数 系数的非线性组合 获得拟合值、残差等 获得非线性估计的拟合值、残差等 线性约束的假设检验,Wald 检验 非线性约束的假设检验 列示参数估计值的方差-协方差矩阵 § 2.12. 模拟分析29表 2-6: 二维图种类一览图形种类 scatter line connected scatteri area bar spike dropline dot rarea rbar rspike rcap rcapsym rscatter rline rconnected tsline tsrline mband mspline lowess l?t q?t fp?t l?tci q?tci fp?tci function histogram kdensity简单描述 scatterplot line plot connected-line plot scatter with immediate arguments line plot with shading bar plot spike plot dropline plot dot plot range plot with area shading range plot with bars range plot with spikes range plot with capped spikes range plot with spikes capped with symbols range plot with markers range plot with lines range plot with lines and markers time-series plot time-series range plot median-band line plot spline line plot LOWESS line plot linear prediction plot quadratic prediction plot fractional polynomial plot linear prediction plot with CIs quadratic prediction plot with CIs fractional polynomial plot with CIs line plot of function histogram plot kernel density plot § 2.12. 模拟分析30表 2-7: 二维图选项一览选项类别 added line options added text option axis options title options legend option scale(#) region options aspect option scheme(schemename) by(varlist, ...) nodraw name(name, ...) saving(?lename, ...) advanced options简单描述 draw lines at speci?ed y or x values display text at speci?ed (y,x) value labels, ticks, grids, log scales titles, subtitles, notes, captions legend explaining what means what resize text, markers, and line widths outlining, shading, aspect ratio, size constrain aspect ratio of plot region overall look repeat for subgroups suppress display of graph specify name for graph save graph in ?le dif?cult to explain表 2-8: 暂元相关命令一览命令 erase用途 删除数据文件, eg. erase temp?le.dta § 2.12. 模拟分析31表 2-9: 模拟分析相关命令一览命令用途备注抽样相关:corr2data drawnorm invnorm(uniform()) matuniform(r,c) sample sim arma Bootstrap 相关: bootstrap bs bstat bsample MC 相关: simulate jknife permute post?le statsby exp list 存储 MC 的结果 MC simulation 类似于 MC 产生服从标准正态分布的随机数 产生均匀分布 从现有数据中进行非重复随机抽样 产生服从 ARIMA 过程的随机变量 函数,可调节均值和方差 函数 参考 bsample 需要下载 产生具有指定相关性的数据 仅适用于模拟相关分析 Estimation with STATA连玉君 (西安交通大学金禾经济研究中心) arlion@stu.xjtu.edu.cn 2005.10 目录第二章 矩阵 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 基本运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 分块矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 直乘运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 向量化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 矩阵的迹 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 线性相关 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 特征值和特征向量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 正定矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 2 3 5 5 5 6 7 10 11 11 11 132.10 矩阵的秩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.11 微分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.12 STATA 中的矩阵函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.12.1 应用技巧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 第二章2.1 2.2加减 A+B=B+A (A + B) + C = A + (B + C) A+0=A A + (?A) = 0 (A ± B) = A ± B 乘数 k (l A) = (kl )A (k A) = k A k (A ± B) = k A ± k B (k ± l )A = k A ± l A 矩阵相乘 (AB)C = A(BC) k (AB) = (k A)B = A(k B) A(B + C) = AB + AC (A + B)C = AC + BC (AB) = B A |AB| = |A| ? |B| 方阵的乘幂 Ar As = (A)r +s (k A)r = k r As 转置 (A ) = A 2 (Ar )s = Ar s (A )r = (Ar )矩阵简介 基本运算(其中,A 和 B 均为 n 阶方阵) 2.3. 分块矩阵(AB) = B A (ABC) = C B A 若一个方阵满足 A = A ,则称该方阵为对称矩阵。 求逆3如果 n × n 矩阵 A 的行列式不等于 0,则它的逆矩阵 A?1 存在,并且可以用其伴随矩阵除 以其行列式得出: A?1 = (1/|A|) ? [(?1)i + j |Ai j |]. 例如,对于 2 × 2 方阵,有如下关系存在: ? ? ? ? a b d ?b ? ? = (1/(ad ? bc)) ? ? ? c d ?c a (2.1)(2.2)逆矩阵存在的矩阵称为“非奇异矩阵”(Nonsigular Matrix),行列式为 0 的矩阵称为“奇异矩 阵”(Sigular Matrix)。逆矩阵具有如下性质: (A?1 ) = (A )?1 (2.3) (2.4) (2.5) (2.6) (2.7)(cA)?1 = c?1 A?1 A?1 A = AA?1 = I (AB)?1 = B?1 A?1 (ABC)?1 = C?1 B?1 A?12.3转置分块矩阵? ? 以下是两个常用的实例: ? ?? ? A A ? 1 ? ? 1 ?= A2 A2 及 ? ? A11 0 0 A22 ?? ?? A11 0 A1 A2? ? = A1 A2 (2.8)? A1 A2 ? A1 A2 ? 0 A22 ?? ?= A1 A1 + A2 A2 ? A11 A11 0 0 A22 A22 ?. (2.10) (2.9)?=? 2.3. 分块矩阵4行列式A11 0 对于一般的 2 × 2 矩阵,有如下性质: A11 A21 A12 A220 A22= |A11 | ? |A22 |(2.11)1 = | A22 | ? | A11 ? A12 A? 22 A21 | 1 = | A11 | ? | A22 ? A21 A? 11 A12 |(2.12)求和 ? ? A11 A12 A21 A22 乘积 ? ? A11 A12 A21 A22 对称矩阵求逆 ? ? 或 A B ? ? A B B C B C ??1 ? ? =? A?1 + A?1 BEB A?1 ?A?1 BE ?EB A?1 E ??1 ? ? =? D ?DBC?1 ?C?1 B D C?1 + C?1 B DBC?1 ? ? (2.16) ? ? (2.15) ?? ?? B11 B12 B21 B22 ? ? A11 B11 + A12 + B21 A11 B12 + A12 + B22 A21 B22 + A21 + B22 A21 B12 + A22 + B12 ? ? (2.14) ? ? B11 B12 B21 B22 ? ? A11 + B11 A12 + B12 A21 + B21 A22 + B22 ? ? (2.13)?+??=??=?其中, D = (A ? BC?1 B )?1 , E = (C ? B A?1 B)?1 。同时, (2.15) 要求 C 为非奇异矩阵, (2.16) 要求 A 为非奇异矩阵。 2.4. 直乘运算52.4直乘运算? ? ? ? a21 B a22 B ? ? ? A?B=? ? . . .. . ? . . . . ? an 1 B an 2 B ? ? ? a11 B a12 B ? ? ? a1 K B a2 K B . . . an K B ? ? ? ? ? ? ? ?(2.17)需要说明的是,直乘运算对两个矩阵的维数没有任何要求。同时,直乘运算还具有如下性质: 转置 (A ? B) = A ? B 乘积 (A ? B)(C ? D) = AC ? BD (A1 ? B1)(A2 ? B2)(A3 ? B3) = A1A2A3 ? B1B2B3 取逆 (A ? B)?1 = A?1 ? B?1 交换、结合律 (B + C) ? A = B ? A + C ? A A ? (B ? C) = (A ? B) ? C A ? (B ? C) = (A ? B) ? C 行 列式 如果 A 为 m × m 维矩阵,B 为 n × n 维矩阵,则 |A ? B| = |A|n |B|m 秩 trace(A ? B) = tr(A)tr(B) (2.26) (2.25) (2.22) (2.23) (2.24) (2.21) (2.19) (2.20) (2.18)2.5 2.6定义向量化 矩阵的迹一个 n × n 矩阵的迹是其所有对角元素之和: tr(A) = a11 + a22 + ? ? ? + ann (2.27) 2.7. 线性相关6基本性质tr(λA) = λ ? tr(A) tr(A ) = tr(A) tr(A + B) = tr(A) + tr(B) tr(I K ) = K tr(AB) = tr(BA) tr(AB) = tr(A) + tr(B) (2.33) 式成立的条件是: A 和 B 均为 n × n 方阵。式 (2.32) 可扩展为: tr(ABCD) = tr(BCDA) = tr(CDAB) = tr(DABC) 同时,(2.32) 式有以下两个重要用途: a a = tr(a a) = tr(aa ) 和K K K(2.28) (2.29) (2.30) (2.31) (2.32) (2.33)(2.34)tr(A A) =i =1ai ai =i =1 j =1ai2j即,矩阵 A A 的迹等于其所有元素的平方和。 下面需要补充矩阵的迹和其特征根之间的关系。(参见 Handbook chp1.)2.7线性相关令 {x1 , x2 , ? ? ? , xk } 表 示 k 个 不 同 的 n × 1 向 量 的 集 合 。 如 果 存 在 不 全 为 0 的 k 个 常 数{c1 , c2 , ? ? ? , ck } 使得 c1 x1 + c2 x2 + ? ? ? + ck xk = 0 成立,则称这些向量是线性相关的。反之,如果不存在不全为 0 的数 {c1 , c2 , ? ? ? , ck } 使得上式 成立,则称这些向量是线性无关的。 假如 {x1 , x2 , ? ? ? , xk } 组成一个 (n × k ) 矩阵,写成分块形式为: T = [x1 , x2, ? ? ? , xk ] 如果 {x1 , x2 , ? ? ? , xk } 是线性相关的,那么 |T| = 0 。因为,矩阵 T 中至少有一列可以用其它列的 线性组合表示,这表明 T 不是满秩矩阵,于是可以得到 |T| = 0 。反之亦然,如果 |T| = 0 ,则 {x1 , x2 , ? ? ? , xk } 是线性无关的。 2.8. 特征值和特征向量72.8定义特征值和特征向量假如一个 n × n 矩阵 A ,一个非零 n × 1 向量 x 和一个标量 λ 之间存在如下关系: Ax = λx 则 x 称为 A 的特征向量,而 λ 称为 A 的特征值。式 (2.35) 可表示为: (A ? λIn )x = 0 (2.36) (2.35)假如矩阵 (A ? λIn ) 为非奇异矩阵,那么 (A ? λIn )?1 存在,我们可以在 (2.36) 式两边同时左乘 (A ? λIn )?1 ,从而得到: x = 0. 所以,如果存在满足 (2.36) 式的非零向量 x ,那么相应地必存在一个 λ 值使得 (A ? λIn ) 是奇异 矩阵。矩阵 A 的特征值便是满足下述关系的 λ 值: |A ? λIn | = 0 我们称 (2.37) 式为“特征方程”。有如下基本性质: ? |A| = ? tr(A) =n i =1(2.37)λi λi即, A 的行列式等于其所有特征根的乘积; 即, A 的迹等于其所有特征根的和。n i =1三角矩阵的特征值 若 A 是一个三角矩阵,则 (A ? λI) 也是,并且其行列式的值是所有主对角元素之积: |A ? λI| = (a11 ? λ)(a22 ? λ) ? ? ? (ann ? λ) 因此,对于三角矩阵而言,其特征值(使 2.38 式为零的 λ 值)就是其主对角元素。 特征向量的线性无关性 如果 n × n 矩阵 A 的特征值 {λ1 , λ2 , ? ? ? , λn } 均不相同,那么相应的特征向量 {x1 , x2 , ? ? ? , xn } 线性无关。这里我们需要明确的是,一个矩阵的可以有多个特征根和特征向量的组合。 (2.38) 2.8. 特征值和特征向量8一个有用的分解 假如 n × n 矩阵 A 有 n 个不同的特征根,用对角矩阵表示为: ? ? λ1 0 ? ? ? 0 ? ? ? ? ? 0 λ2 ? ? ? 0 ? ?, ? =? . ? . . .. . . ? . . . ? . . ? ? 0 0 ? ? ? λ2 将特征向量 {x1 , x2 , ? ? ? , xn } 组成一个 n × n 矩阵: T = [x1 , x2 , ? ? ? , xn ] 另用分块矩阵的运算性质,可得, AT = [Ax1 , Ax2 , ? ? ? , Axn ] 由特征向量的定义 (2.35) 可知, AT = [λ1 x1 , λ2 x2 , ? ? ? , λn xn ] 而 (2.39) 式右边的部分可用 T 表示,于是我们得到 AT = T 对 (2.40) 式两边同时右乘 T?1 ,得到 A = T T?1 同理,我们也可以在 (2.40) 式两边同时左乘 T?1 ,得到 T?1 AT = (2.42) (2.41) (2.40) (2.39)我们通常称 (2.42) 式为“对角化”,即通过对 A 右乘其特征向量组成的矩阵 T,进而左乘 T?1 可以将 A 变换为由其特征根组成的对角矩阵。 约当分解 (2.41) 式的分解要求 n × n 矩阵 A 有 n 个线性无关的特征向量。当 A 有 n 个互不相同的特 征值时它是成立的,但当特征值存在重根时,该结论依然成立。考虑一般情况,A 有 s ≤ n 个 线性无关的特征向量,总存在一个类似于 (2.41) 的分解,称为“约当分解”。明确地讲,对于 这样一个矩阵 A ,存在一个 n × n 非奇异矩阵 M ,使得 A = MJM?1 (2.43) 2.8. 特征值和特征向量这里, n × n 矩阵 J 的形式为9? ? ? ? J=? ? ? ? J1 0 . . . 0 0 ??? 0 0 . . . Js 0 0 0 . . . λi 0 J2 ? ? ? . .. . . . 0 ???? ? ? ? ? ? ? ?(2.44)其中,? ? ? ? ? ? ? Ji = ? ? ? ? ? ? ?λi 0 0 . . . 0 01 λi 0 . . . 0 00 1 λi . . . 0 0??? ??? ??? .. . ??? ???0 0 0 . . . 1 λi? ? ? ? ? ? ? ? ? ? ? ? ? ?(2.45)如果同一个特征根 λi 同时对应几个线性无关的特征向量,那么它可以出现在两个不同的约当块 Ji 和 J j 中。 直乘的特征值 若 n × n 矩阵 A 的特征值为 (λ1 , λ2 , ? ? ? , λn ), p × p 矩阵 B 的特征值为 (?1 , ?2 , ? ? ? , ? p ), 则 A ? B 矩阵的 np 个特征值为 λi ? j (其中, i = 1, 2, ? ? ? , j = 1, 2, ? ? ? , p )。证明过程如下: 矩阵 A 和 B 的约当形式为: A = MAJAMA B = MB JB MB 下面将要提到的 (2.48) 式表明非奇异矩阵 SAS?1 与 A 具有相同的特征根,而1 ?1 [M? A ? M B ](A ? B)[M A ? M B ] = J A ? J B ?1 1 其中, S = M? A ? M B 。所以, A ? B 与 J A ? J B 具有相同的特征值。我们注意到 J A 和 J B 均为上三角矩阵,所以 J A ? J B 也是上三角阵。因此, A ? B 的特征值就是 J A ? J B 的主对角线上 的元素,为 λi ? j 。 几个重要结论 1. 如果 λ 是 n × n 矩阵 A 的一个特征值,那么 λ 也是任意一个 n × n 非奇异矩阵 SAS?1 的 特征值。为了证明这一点,我们注意到 (A ? λIn )x = 0 (2.46) 2.9. 正定矩阵由此可得 S(A ? λIn )S?1 Sx = 0 可进一步表示为 (SAS?1 ? λIn )x? = 0 其中, x? = Sx 。因此, λ 是 SAS?1 的特征值,对应的特征向量为 x? 。10(2.47)(2.48)2. 如果 A 是一个 n × n 非奇异矩阵,那么 A?1 与 A 具有相同的特征向量,二者的特征根互 为倒数。在 Ax = λx 两边同时左乘 (λA)?1 得到 A?1 x = (1/λ)x,上述结论非常显然。 3. 对于 n × n 矩阵 A,A2 与 A 具有相同的特征向量, A2 的特征根是 A 的特征根的平方。 在 Ax = λx 两边时左乘 A 得到 A2 x = λAx = λ2 x,上述结论得证。由该结论我们可以判定幂等 矩阵 (如,M = I ? X(X X)?1 X ) 的特征根只能为 0 或 1 ,因为只有这两个数值具有幂乘不变 性。2.9定义正定矩阵半正定若对于一个 n × n 实数矩阵 A,对任意实数向量 x 而言,都有 x Ax ≥ 0 成立,就称矩阵 A 为“半正定矩阵”。 正定 若对于一个 n × n 实数矩阵 A,对任意非零实数向量 x 而言,都有 x Ax & 0 成立,就称矩阵 A 为“正定矩阵”。 因此,一个正定矩阵一定是半正定矩阵,反之则未必成立。 性质 对于 n × n 维对称矩阵 A ,设其特征根为 λi ( i = 1, 2, ? ? ? , n ), ? 若 A 半正定,则 λi ≥ 0,tr(A) ≥ 0,|A| & 0; 1 ? 若 A 正定,则 λi & 0 ,tr(A) & 0,|A| & 0; 这是因为 A 的行列式和迹分别分别是其所有特征根的积和和。 ? 若 A 为 n × n 正定矩阵, B 为 n × n 非奇异矩阵,则 B AB 正定。21 设 x 和 λ 分别为 A 的特征向量和特征根,由于其特征向量不可能为零向量,则 x x & 0 。在 Ax = λx 两边同乘x 得到 x Ax = λx x ≥ 0,所以 λ ≥ 0 。2设 x ? = Bx,其中 x 为非零向量,显然,x ? 也一定非零。由于 A 正定,所以 x ? Ax ? = x (B AB)x & 0,这表明 B AB正定。 2.10. 矩阵的秩由该性质,我们可以得到如下扩展性质:11(1) 若设 A = I,则表明对于任意矩阵 B,只要可以表示成 B B 的形式,则 B B 一定是半正 定的。更进一步,若 B 为非奇异矩阵,则 B B 一定为正定矩阵。3 (2) 若 A 为半正定矩阵,则一定存在一个矩阵 B 使得 A = B B ; 若 A 正定,则一定存在一 个非奇异矩阵 B 使得 A = B B 。2.10矩阵的秩n × n 方阵 A 的秩是指 A 中线性独立的行数或列数的最大值。因此,r ( A) ≤ n 。2.11 2.12微分 STATA 中的矩阵函数P=cholesky(B) 运算公式为: P P = B ?1表 2-1: 矩阵的基本运算运算 C=A±B C=A?B C = B?1 C=A C=A?B C = A/ kSTATA 命令 mat c = a ± b mat c = a*b mat c = inv(b) mat c = a mat c = a # b mat c = a/ k说明 dim(a)=dim(b) cols(a)=rows(b ) b 为方阵 转置运算 直乘运算 k 为常数这里我们需要对 nullmat(A) 命令的使用作特别的解释,因为在编程过程中,该命令非常有 用。设 A = I3 (1) , B = I(2) , C 矩阵不存在,则执行指令mat C = (nullmat(C),A)将得到 C = A,但是若执行如下指令mat C = (nullmat(B),A)3 x B Bx = x ?x ? ≥ 0,其中, x ? = Bx 。 2.12. STATA 中的矩阵函数12表 2-2: 矩阵函数I―返回值为标量函数名称 colnumb(A,s) colsof(B) det(B) diag0cnt(B) el(A,i,j) issym(A) matmissing(A) mreldif(B,C) rownumb(A,s) rowsof(B) trace(B)返回值说明 返回矩阵 A 中第一个名称为字符串 s 的列所在的列数; 返回矩阵 B 的列数; 返回矩阵 B 的行列式; 返回矩阵 B 中对角线为零的元素的个数; 返回矩阵 A 中第 [i,j] 个元素,等价于 A[i,j]; 判断矩阵 A 是否为对称矩阵,是返 1 ,否返 0 ; 判断矩阵 A 中是否含有缺漏值,是返 1 ,否返 0 ; 返回矩阵 B 和 C 的相对差异;4 返回矩阵 A 中第一个名称为字符串 s 的行所在的行数; 返回矩阵 B 的行数; 返回方阵 B 的秩;则得到的矩阵为:? ? ? C=? ?? . 2 0 0 . . 1 0 0 ? . ? . 0 2 0 . 0 1 0 ? ? . . 0 0 2 . 0 0 1(2.49)3×6有趣的是,若我们继续执行mat C = (nullmat(C),A)将得到? ? ? C=? ?? . . 2 0 0 . . 1 0 0 . . 1 0 0 ? . . ? . . 0 2 0 . 0 1 0 . 0 1 0 ? ? . . 0 0 2 . . 0 0 1 . . 0 0 1(2.50)3×9因此,在编程的过程中,我们可以利用此命令进行矩阵的累加运算,对此命令的灵活应用往往 会产生令人兴奋的效果。 2.12. STATA 中的矩阵函数13表 2-3: 矩阵函数II―返回值为矩阵函数名称 cholesky(B) corr(B) diag(V) get(name) hadamard(A,B) I(n) inv(B) J(r,c,z) matuniform(r,c) nullmat(A) sweep(A,z) syminv(B) vec(A) vecdiag(B)说明 裘氏分解,返回 P ,使 P P = B ?1 ,B 为对称、正定矩阵; 相关转换5 若 V 为 1 × n 或 n × 1 ,则返回对角元素为 V 的 n × n 矩阵; return system matrix (see help get()) 返回矩阵 C ,满足 C [i , j ] = A[i , j ] ? B [i , j ] ; 返回 n × n 单位矩阵; 返回方阵 B 的逆矩阵 B ?1 ; 返回 r × c 矩阵,所有元素均为常数 z ;对于 mat c=(nullmat(a),b)。若 a 不存在 , c= 否则 , c=(a,b) ; sw return A with zth row/column swept inverse if B is not positive de?nite, 将矩阵 A 向量化后返回 B ,即所有列依次堆积,若 Am ×n , 则 Bmn ×1 返回一个行向量,包含方阵 B 的对角元素;2.12.1应用技巧产生列向量对应元素的平方2 2 2 设 x = (x1 , x2 , ? ? ? , xn ) ,则 diag [xi ]x = (x1 , x2 , ? ? ? , xn ) 。6求取固定效应模型中的组内平均值 假设 y = (y1 , y2 , ? ? ? , yn ) 则 (I N ? PT )y = ( y ?1 , y ?2 , ? ? ? , y ?n ) (2.51)是一个 N × 1 维列向量。其中, PT = (1T 1T )?1 1T = (1/ T )[1, 1, ? ? ? , 1] 。我们可以结合此技巧 和上面那个技巧来计算组内的残差的方差估计量。 ? = 如果我们设定 PT = 1T (1T 1T )?1 1T ,那么由 (2.51) 式将得到一个 N T × 1 维列向量 y 1T ? ( y ?1 , y ?2 , ? ? ? , y ?n )6 For STATA implements, see chp8 het1.do. 1 2 目录第一章 多元线性回归及其 OLS 估计方法 §1.1 模型形式以及例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . §1.2 模型的五大假设 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . §1.3 一般最小平方估计(OLS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . §1.3.1 OLS 估计式的推导 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 7 8 8§1.3.2 预测值与残差 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 §1.3.3 OLS 估计式的数学特性与统计特性 . . . . . . . . . . . . . . . . . . . . . . . . 10 §1.3.4 标准误差 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 §1.4 OLS 估计式的分布 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 §1.4.1 正态分布一族 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 §1.4.2 χ 2 分布一族 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 §1.4.3 t 分布一族 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 §1.4.4 F 分布一族 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 §1.5 假设检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 §1.6 模型解构与子估计式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 §1.6.1 子估计式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 §1.6.2 遗失变量(Omitted-Variable)估计式 . . . . . . . . . . . . . . . . . . . . . . . 17 §1.6.3 部分显著性检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 §1.6.4 解释变量的正交 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 §1.6.5 离差形模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 §1.6.6 残差的均值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 §1.7 方差分析(Analysis of Variance) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 §1.7.1 方差分析表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 §1.7.2 模型配适度的衡量: R2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 §1.8 带有限制的多元线性模型及其 OLS 估计 . . . . . . . . . . . . . . . . . . . . . . . . . 23 §1.8.1 受限制的 OLS 估计式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 §1.8.2 残差比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 §1.8.3 受限制 OLS 估计的统计特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 §1.9 结构差异检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 §1.9.1 周氏检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3 4目录 §1.9.2 一般情形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 §1.10 虚拟变量(Dummy Variables) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 §1.11 共线性问题(Multicollinearity) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 §1.12 OLS 估计的 STATA 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 §1.12.1 regress 命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 §1.12.2 predict 指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 §1.12.3 test 指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 第一章§1.1多元线性回归及其 OLS 估计方法模型形式以及例子y = β1 x1 + β2 x2 + ? ? ? + βk xk + ε (1.1)经济学或者说实证经济学1 中最常见的模型就是:如果用向量的形式表示, 可写为如下更为简约的形式: y =xβ +ε 其中: ? ? ? x=? ? ? x1 x2 . . . xk ? ? ? ?, ? ? ? ? ? β =? ? ? β1 β2 . . . βk ? ? ? ? ? ? (1.2)通常,x1 都会取 1,那么 β 就是回归的常数项。实证经济学的主要研究手段就是通过数据寻 找规律,并结合成熟稳定的经济学基础理论总结出新的观点,而计量经济学又是是实证经济学的 最主要的研究工具, 因此计量经济学中最核心的部分就是回归。 (1.1) 和 (1.2) 是计量经济学中最基 础的回归方程式, 它通过假定 y 与 xi (i = 1, 2, ? ? ? , k ) 之间的线性关系, 并使用 ε 这样一个随机变 量解释所有 xi 之外的决定 y 的因素,来研究 xi 是否决定了 y 的取值以及多大程度上决定了 y 的 取值。经济学中的大部分计量模型中, 总假定解释变量与被解释变量之间的关系是线性的。 方程 (1.1) 和 (1.2) 是严格的数学模型式, 实际应用中, 除非理论推导, 否则大部分情况下我们 只会看到下面的形式: yi = β1 x1i + β2 x2i + ? ? ? + βk xki + εi , 或是: yi = xi β + εi (1.4) 方程 (1.3) 和 (1.4) 是上述模型的样本对应式, 下标 i 表示样本编号。 计量经济学的所有模型必须经 过实证检验,即必须有相应的数据输入其中,然后通过统计方法检验模型的各种特性,如配适度、 系数显著性、预测能力等,这些输入的数据就是样本。上式中,n 就是样本总数,而 k 是所有解释 变量的个数,一般的,x1i = 1,对所有 i 都成立,因此,β1 为常数项。(1.4)还可以写为更加简单的 全矩阵形式: y = Xβ + ε (1.5)1 经济学的研究方法分为实证研究法(positive)和规范研究法(normative) 。前者的典型代表是福利经济学(welfarei = 1, 2, ? ? ? , n(1.3)economics) , 从现有的基础经济理论出发, 推导出新的理论、 方法或模型; 后者的代表是金融市场的风险机制研究, 利用客 观数据, 结合一定的经济学理论, 根据客观实证结果推导出新的经济学理论或模型。5 6 其中:第一章 多元线性回归及其 OLS 估计方法? ? ? y=? ? ? ? ? ? X=? ? ?y1 y2 . . . yk x1 x2 . . . xn? ? ? ?, ? ? ?? ? ? β =? ? ? ? x11 x12 x13 . . . x1nβ1 β2 . . . βk x21 x22 x23 . . . x2n? ? ? ?, ? ? x31 x32 x33 . . . x3n? ? ? y=? ? ? ??? ??? ??? . . . ???ε1 ε2 . . . εk xk 1 xk 2 xk 3 . . . xkn? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ?=? ? ? ? ? ? ?在全矩阵形式中,y 和 ε 都是 n 维列向量,β 是 k 维列向量,只有 X 为一个 n × k 的矩阵。 yi 代表 y 的第 i 个观察值;X 中每一横行都代表着一条包含所有 k 个解释变量的样本值的观察记 录。而每一纵列都代表着某一个解释变量的所有样本记录; εi 代表着第 i 条记录的随机干扰量。 下面给出一个具体的例子。假设我们要研究工资水平的决定因素,如果我们已经大致断定工 资水平跟以下几个因素有关:受教育年限、年龄、人均 GDP 以及以往工作经验(用曾经工作总年 限衡量) , 那么多元线性模型就可以表示如下: Wi = β1 + β2 ? edu i + β3 ? age + β4 ? G D P + β5 ? ex p 对应 (1.3),yi = Wi , x1i = 1, x2i = edu , x3i = age, x4i = G D P , x5i = ex p , 显然 k = 4。 ? ? ? ? ? ? ? ? (1.6)如果用式 (1.5) 的形式来表示, 假设总资料有 586 笔(n=568)那么有: ? ? ? ? ? W1 β1 ? ? ? ? ? ? W2 ? ? β2 ? ? ? ? ? ? ? ? W ? ? ? 3 ?, β = ? β3 ? , ε =? y =? ? ? . ? (586×1) (5×1) (568×1) ? ? ? ? . ? β ? ? ? 4 ? . ? β5 W568 ? ? ? ? xi = ? ? ? ? 1 edu i agei G D Pi ex pi ? ? ? ? ?, ? ? ? ? ? ? ? ? X =? ? (586×5) ? ?ε1 ε2 ε3 ε4 ε5i = 1, 2, ? ? ? , 568以及1 edu 1 1 edu 2 1 edu 3 . . . . . . 1 edu 568age1 age2 age3 . . . age568G D P1 G D P2 G D P3 . . . G D P568ex p1 ex p2 ex p3 . . . ex p568? ? ? ? ? ? ? ? ? §1.2 模型的五大假设7§1.2模型的五大假设y = X β + εn ×1 n ×k k ×1 n ×1对于线性回归模型:为了推导其参数估计式以及进一步推导其参数估计式的统计特性, 我们通常规定如下五大假设: 1. 确认假设(the identi?cation assumption) 。 即扰项 ε 必须满足: ? ? ? ε) = ? E(ε ? ? E(ε1 ) E(ε2 ) . . . E(εn ) ? ? ? ?=0 ? ?2. 均齐方差假设(the homoscedastic variance assumption) 。 即干扰项 ε 必须满足: Var(ε1 ) = Var(ε2 ) = ? ? ? = Var(εn ) 3. 非自相关假设(not autocorrelated) 。 即干扰项 ε 必须满足: Cov(εi , ε j ) = 0, 对所有的 i = j我 们 常 常 把 均 齐 方 差 假 设 和 非 自 相 关 假 设 合 在 一 起,称 为“ “球 形 假 设” (the spherical assumption) 。球形假设可以用 ε 的方差-协方差矩阵表示如下: ? ? ? ε) = ? Var(ε ? ? Var(ε1 ) Cov(ε1 , ε2 ) ? ? ? Cov(ε2 , ε1 ) Var(ε2 ) ??? . . .. . . . . . Cov(εn , ε1 ) Cov(εn , ε2 ) ? ? ? Cov(ε1 , εn ) Cov(ε2 , εn ) . . . Var(εn ) ? ? ? ? ? ? ? = σ 2 In = ? ? ? ? ? σ2 0 0 0 0 σ2 0 0 0 0 σ2 0 0 0 0 σ2 ? ? ? ? ? ?4. 非随机回归假设(the nonstochastic regressor assumption) 。X 必须是非随机的并且是列满秩 的, 即矩阵 X(n ×k ) 的秩必须为 k , 或者说 X 的 k 列之间是线性独立的。后面将会说明为何要 求 X 是列满秩矩阵。 5. 正态性假设(the normality assumption) 。 即干扰项 ε 必须满足: ε ? N (0, σ 2 In ) 或者等价的 εi ? i .i .d .N (0, σ 2 ), i = 1, 2, ? ? ? , n 8第一章 多元线性回归及其 OLS 估计方法我们发现,五大假设几乎都是针对干扰项 ε 设定的,在以后对计量经济学的深入学习之后就 会发现, 大部分更加细致真实的模型设定2 , 几乎都是针对干扰项的假设做出修正, 使之更加宽松, 更加接近现实中的随机干扰特性, 我们现在就是从最简单, 也就是对 ε 要求最严格的 OLS 方法入 手学习。 需要说明的是,第五条假设并不是推导 OLS 估计式必须的,它只在我们推导 OLS 估计式的 统计特性以便做假设检验的时候产生作用。正是因为有了上述黔四条假设,才使得我们推导出 OLS 估计式变成了可能。由以上五条假设, 我们很容易得到下列式子: (1) ? ? ? Var(y) = ? ? ? ? ? ? ? = σ 2 In = Var(ε ε) ? ? (1.7)Cov( y1 , y2 ) ? ? ? Var( y1 ) Var( y2 ) ??? Cov( y2 , y1 ) . . .. . . . . . Cov( yn , y1 ) Cov( yn , y2 ) ? ? ?Cov( y1 , yn ) Cov( y2 , yn ) . . . Var( yn )因此, y 和 ε 具有相同的方差-协方差矩阵, 即 σ 2 In 。 (2) E(y) = Xβ 或 E( yi ) = xi β , 对所有 i = 1, 2, ? ? ? , n (1.8)之所以将第一条假设称为“确认假设” ,原因就在于它确认了被解释变量 y的期望 和解释变 3 量 X 的期望 之间的线性关系。 (3) y ? N (Xβ , σ 2 In ) 或 yi ? N (xi β , σ 2 ), 对所有 i = 1, 2, ? ? ? , n (1.10) (1.9)由 ε 的分布, 我们得到了 y 的分布, 这对以后推导 OLS 估计式统计量的分布非常重要。§1.3§1.3.1一般最小平方估计(OLS)OLS 估计式的推导一般最小平法估计 (the Ordinary Least Square estimation) , 简称 OLS, 是计量经济学中最基础, 也是最常用的估计方法。如果针对某个经济问题建立了一个多元线性回归模型,那么只要 ε 和 X 满足上述五大假设 (有时甚至只需要前四条) , 我们就可以使用 OLS 估计法对参数 β 和 σ 2 进行估 计。下面我们就开始推导 OLS 估计式。2 例如即将接触的 GLS 估计方法、 GMM 估计方法以及自相关时间序列模型。 3 由非随机假设, X 的期望也就是它本身。 §1.3 一般最小平方估计(OLS)9? ,使得如下定义的目标函数值 OLS 估计法也叫做最小二乘法,其主导思想是求一个最优解 β 最小:n nβ) = S (βi =1( yi ? xi β )2 =i =1( yi ? β1 x1i ? β2 x2i ? ? ? ? ? βk xki )2(1.11)如果定义: ei = yi ? β1 x1i ? β2 x2i ? ? ? ? ? βk xki = yi ? xi β , 或 e = y ? Xβ 则求 OLS 估计式就变成了一个最优化问题: β ) = e e = (y ? Xβ ) (y ? Xβ ) min S (ββi = 1, 2, ? ? ? , n(1.12)其实 OLS 的指导思想很简单,就是希望找到一个系数向量 β 使得 Xβ 最大程度的逼近 y,也就是 二者的差的平方和4 e e 最小。 为了解此最优化问题, 首先确定一阶条件(FOC) : β) ? S (β = ?2X y + 2X Xβ = 0 β ?β 经过简单变换, 我们可以得到所谓“正规方程” (normal equation) : X Xβ = X y (1.14) (1.13)考虑到我们曾经作过 X 为列满秩的假设5 , 因此 X X 为一个(k × k )的满秩矩阵, 也就是说, X X 的逆存在。我们将该最优化问题的解记作 b, 那么: b = (X X)?1 X y 为了进一步证明该问题存在极小值, 我们必须求取二阶条件: β) ? 2 S (β = 2X X β ?β β ?β 由于 X X 是满秩矩阵, 因此它也是正定义矩阵, 故该问题的最优解存在, 为 b。 注意: b 中包含常数项系数 β1 的估计。4 采用平方和的形式是为了避免正负相消以及难以求导的问题, OLS 的名称也由此而来。 5 见 §1.2。(1.15)(1.16) 10第一章 多元线性回归及其 OLS 估计方法 为了熟悉 b 的内部结构, 我们可以将 b 做如下变换: ? ? ? ? ? ? ? b = (X X)?1 X y = ? [ x x ? ? ? x ] n ? ? 1 2 ? ?n ?1 nx1 x2 . . . xn???1 ?? ?? ?? ?? ??? ? ? [x1 x2 ? ? ? xn ] ? ? ?y1 y2 . . . yn? ? ? ? ? ?(1.17)=i =1xi xii =1xi yi§1.3.2预测值与残差预测值(predicted value)的定义: y ?i = xi b, 预测值又叫做配适值(?tted value) 。 残差(residual)定义如下: ei = yi ? y ?i = yi ? xi b, 残差又叫做误差(error) 。 从预测值和残差的定义可以看出, 预测值实际上是真实值 yi 中有多少部分可以被由 b 所构建 的线性组合预测到,而 ei 则是这个线性组合所无法预测到的部分。从经济解释上来说,ei 是去除 掉 x1 , x2 , ? ? ? , xk 这些因素影响之外剩余的部分,是不能被回归所解释的部分,因此,称之为“残 差”也理所当然。我们还要注意到: E( y ?i ) = E( yi ), i = 1, 2, ?, n i = 1, 2, ? ? ? , n (1.19) i = 1, 2, ? ? ? , n (1.18)也就是说, 预测值与真实值有相同的期望值, 这也是 OLS 的强大支持理论基础之一。§1.3.3OLS 估计式的数学特性与统计特性从预测值与残差的定义出发, 我们定义几个比较有用的矩阵: P = X(X X)?1 X , M = In ? X(X X)?1 X1. 数学特性那么显然 ? = Py, y e = MyP 和 M 是相互垂直的, 并且都是自乘不变矩阵, 其秩分别为 k 和 n ? k 。 根据这些定义, 我们不难验证如下的等式成立: §1.3 一般最小平方估计(OLS) C e = My = M(Xβ + ε ) = Mε C X e = X My = 0 那么显然有: 特别的, 如果模型中包含常数项, 即 X = [1n X2 ],n11? e e = y My = ε Mε(1.20)(1.21)1n e =i =1ei = 0?e ?1 nnei = 0i =1(1.22)残差垂直于预测值: ? e=bXe=0 y C ? + e = Xb + e y = Py + My = y 此外, y 的各项平方和可以做如下分解: ?y ? + e e = y Py + y My = b X Xb + e e yy=y 2. 统计特性 在得到 OLS 估计式 b 之后, 我们必须清楚地认识到: b 是一个随机变量, 原因是其表达 式中含有 y 或者从根本上说含有 ε : b = (X X)?1 X y = (X X)?1 X (Xβ + ε ) = β + (X X)?1 X ε (1.26) (1.25) (1.24) (1.23)为了对估计进行假设检验, 我们必须明了 b 的统计特性, 即 b 的累积分布以及与之相关的统 计量的分布, 在 §1.4 中对此将详细展开讨论。 高 斯 -马 可 夫 定 理(the Gauss-Markov theorem)6 :OLS 估计式 b 是 β 的 BLUE(最佳线 性无偏估计) 。 通过式 (1.26), 很容易得到: E(b) = β , Var(b) = σ 2 (X X)?1 (1.27)§1.3.4标准误差在多元线性模型中, 待估计的参数除了 β 之外, 尚有 σ 2 , 也就是 εi 的方差。为了估计这个参 n 2 ? 1 因为, ei = yi ? xi b 是 εi = yi ? xi β 的一个很自 数, 我们会很自然的考虑用 n i =1 ei = e e/ n ,6 详细证明请参照:钟老师英文版讲义讲义第六章第 12 页。 12第一章 多元线性回归及其 OLS 估计方法然的估计, 事实上却非常不幸, 由于 E(e e) = (n ? k )σ 2 而不是 n σ 27 , 所以, 我们只能用下式估计 2 σ 以达到无偏的要求: n 1 1 ei2 = ee (1.28) s2 = n?k n?ki =1s2是σ2的一个无偏估计。由式 (1.27) Var(b) = σ 2 (X X)?1 ? Var(b) = s 2 (X X)?1 (1.29)在此补充一点,我们构造估计式,必须只含有确定的样本,例如 X 等,而不能含有任何随机变量 在估计式中。由上式, 有 1 (1.30) Var(b j ) = s 2 (X X)? jj1 ?1 矩阵的第 j 个对角线元素。 其中 (X X)? 上式右边开根号得到的结果称为 b j 的标准误 j j 为 (X X) 差(standard error 或s.e.) : 1 s .e.(b j ) = s (X X)? jj ,j = 1, 2, ? ? ? , k(1.31)§1.4OLS 估计式的分布我们应该注意到:到本节为止, 我们针对 OLS 所讨论的所有统计结果以及数学特性都只是基 于 §1.2 中的前四条假设, 我们完全没有用到第五条假设, 即 ε 正态分布假设: ε ? N (0, σ 2 In ) 当我们加上该条假设之后, 我们可以推导出与 OLS 估计式有关的非常丰富的统计结果, 以帮助我 们完成各种各样的假设检验。下面我们按照累计分布函数将这些结果进行分类。§1.4.1正态分布一族? OLS 估计式 b 本身即服从正态分布: β , σ 2 (X X)?1 ) b ? N (β (1.32)这是因为,由 (1.26),b 是具有正态分布的随机变量 ε 的一个线性转换,而正态分布的线性 转换仍然是正态分布。又由 (1.27), 可以得到 b 的期望和方差。特别的,1 b j ? N (β j , σ 2 (X X)? j j ),j = 1, 2, ? ? ? , k? 上一节中, 我们提到了高斯-马可夫定理, 即 b 是 β 的 BLUE, 在正态假设下, 该定理可以进 8 一步加强为: OLS 估计式 b 是所有无偏估计中最好的(”BUE”) 。7 证明见钟老师英文讲义第六章第 12 页 8 本章无法证明该结论, 在后面的理论工具介绍中, 将会证明本结论。 §1.4 OLS 估计式的分布 ? 对任意的行满秩矩阵 R(m × k ), 有: Rb ? N (Rβ , σ 2 R(X X)?1 R ) 要证明上式, 只需要将 Rb 分解为: ? ? ? Rb = ? ? ? r1 r2 . . . rm ? ? ? ? ? ? ?b = ? ? ? ? ? r1 b r2 b . . . rm b ? ? ? ? ? ? ?=? ? ? ? ? r11 b1 + r12 b2 + ? ? ? + r1k bk r21 b1 + r22 b2 + ? ? ? + r2k bk . . . rm 1 b1 + rm 2 b2 + ? ? ? + rmk bk ? ? ? ? ? ?13(1.33)特别的, 对于 R 中第 j 个横行, 有: r j b = r j 1 b1 + r j 2 b2 + ? ? ? + r jk bk ? N (r j β , σ 2 r j (X X)?1 r j ) (1.34)最后需要说明的是,若 R 为行满秩矩阵,显然有 m & k ,Rb 代表 m 个相互独立的、b 中元 素的线性组合, 他们都是服从正态分布的, 并且放在一起还服从多元正态分布。若 R 不是行 满秩的(m 仍旧小于 k) ,那么 Rb 整体不再服从多元正态分布,但是不妨碍 Rb 中的部分横 行仍旧满足一元正态分布。§1.4.2χ 2 分布一族? 为了对 σ 2 的估计式 s 2 本身或者利用它对其它统计量进行假设检验,我们必须知道 s 2 的分 布。然而 s 2 本身的分布我们不得而知, 但却知道 s 2 乘上一个常数之后的分布9 : (n ? k )s 2 ee ε Mε = 2 = ? χ 2 (n ? k ) 2 σ σ σ2 ? 按照上一小节中 R 的定义, 那么如下的二次型服从 χ 2 分布10 : (Rb ? Rβ ) R(X X)?1 R σ2?1(1.35)(Rb ? Rβ )? χ 2 (m )(1.36)值得注意的是, 如此复杂的表达式中, 只有一个随机向量, 就是 b。 ? s 2 独立于 Rb(R 的定义同上, 且不需要行满秩假设) 。特别的, s 2 和 b 是独立的11 。9 我们可以证明(钟老师讲义第五章 (5.32) 式) ,若 x ? N (0, In ) 且 An ×n 是一个秩数为 k (k ≤ n ) 的自乘不变矩阵,则 x Ax ? χ 2 (k ) 10 我们可以证明, σ 2 R(X X)?1 R ?1/2(Rb ? Rβ ) ? N (0, 1m ), 仍然根据 (5.32), 得到结果。11 证明见钟老师英文讲义第六章第15页。 14第一章 多元线性回归及其 OLS 估计方法§1.4.3t 分布一族前 面 小 节 我 们 说 明 了 s 2 和 b 是 独 立 的(当 然 s 2 和 b 中 的 每 一 个 分 量 b j 独 立) ,又 由 (1.32)、 (1.35)以及 t 分布的定义, 我们有: bj ? βj s 2 (X1 X)? jj=bj ? βj ? t(n ? k ) s .e.(b j )(1.37)因此, 参数 β j 的 100(1 ? α)% 置信区间为: b j ± tα/2 (n ? k ) × s .e.(b j ) 通常我们将比例 bj1 s 2 (X X)? jj(1.38)=bj s .e.(b j )(1.39)叫做 t 值或是 t 统计量, 这也是我们在大多数统计软件的回归结果中看到的 “t-ratio” 或是 “t-value” 的含义。事实上, t 统计量是在“ H0 : β j = 0”的假设下, 得到的 t 分布统计量, 可以做系数 β j 的显著性检验。§1.4.4F 分布一族(Rb ? Rβ ) R(X X)?1 R s2?1由 (1.35) 和 (1.36) 所定义的两个 χ 2 分布, 以及 s 2 与 Rb 的独立性, 我们有: (Rb ? Rβ )/ m ? F(m , n ? k ) (1.40)特别的, 有如下两种情况: ? 如果 R = Ik , 那么 (b ? β ) X X(b ? β )/ k ? F(k , n ? k ) s2 (b j ? β j )2 ? F(1, n ? k ) s 2 (X X) ?1 j j(1.41)? 如果 R 是一个行向量, 且只有第 j 个元素为 1, 其它元素都为 0, 那么有 (1.42)我们在习题中已经证明过: 若 x ? t(n ? k ), 则 x 2 ? F(1, n ? k ), 因此, 上式与 (1.37) 也是 一致的。§1.5假设检验对一个多元线性回归模型, 我们仅仅利用 OLS 估计方法求出 β 的估计值 b 是远远不够的, 我 们甚至都无法说明我们在模型中所引入的解释变量是否必要,也就是说,某个解释变量对应的系 数是否显 显著 ;有时候我们还希望根据我们手中所掌握的信息对 β 做更复杂的假设,这些假设可能 是一组线性方程式。为了达到上面的目的, 我们就必须利用前面构造的那些统计量进行假设检验。 本节介绍两种最常用的假设检验。 §1.6 模型解构与子估计式 1.15我们永远无法知道 β 的真实值,这是非常残忍的一个事实,但是好在我们可以利用假 设检验来确定我们在多少的概率水平上可以相信 β 的一个假设值,如果我们将要求的精度 提高到足够的高, 并且我们做出的假设检验结果也并不拒绝零假设的话, 那么我们就基本上 可以非常确信的说 β 就等于我们所给出的假定值。 若 c 为一个常数, 并做如下假设: H0 : β j = c 我们使用下面的统计量来检验: bj ? c1 s 2 (X X)? jjagainstH1 : β j = c=bj ? c s .e.(b j )(1.43)在 H0 假设成立的情况下,该统计量服从 t(n ? k ) 分布。在此类检验中有一种最常见的,也 最有用的检验,我们称之为“显著性检验” ,也就是我们需要知道我们所求出的系数是否显 著的异于零。令 c = 0, 那么上面的假设就变成了: H0 : β j = 0 against H1 : β j = 0用来检验的统计量就变成了前面提到的 t 统计量, 在 H0 假设成立的条件下: bj s 2 (X 2.1 X)? jj=bj ? t(n ? k ) s .e.(b j )若我们对模型的系数 β 有若干假设, 每条假设可以表示成为一个 β 的线性组合方程式, 也就是: H0 : Rβ = q 那么我们用如下的统计量来检验: (Rb ? q) R(XX )?1 R s2?1againstH1 : Rβ = q(Rb ? q)/ m(1.44)在 H0 假设成立的条件下, 该统计量服从 F(m , n ? k ) 分布。§1.6模型解构与子估计式为了进一步了解多元线性回归模型以及 OLS 估计式的内部结构, 本节我们将拆解模型, 并深 入研究由拆解后的模型所推导出所谓“子估计式” (subset estimators) 。通过本节的分析,我们可 以更进一步的了解回归的含义以及在评价各个解释变量对独立变量的贡献时,各个解释变量间相 互关系的重要性。通过本节的研究,我们还会了解当由于各种原因导致回归模型的结构发生变化 时, OLS 估计式的结构是否会发生变化以及如何发生变化。 16第一章 多元线性回归及其 OLS 估计方法§1.6.1子估计式?n ×k将 X 与 β 做相对应的块分解: ? β =?k1 ×1 k2 ×1β1 β2? ? ?X =X1 n ×k1X2 n ×k2以及k ×1其中 k1 + k2 = k 。那么模型 (1.5) 变为: y = Xβ + ε = [X1 相应的, OLS 估计式做如下变动: b= b1 b2 = (X X)?1X2 ]β1 β2+ ε = X1 β 1 + X2 β 2 + ε(1.45)Xy=X1 X2?1[X1X2 ]X1 X2y=X1 X1 X2 X1X1 X2 X2 X2?1X1 y X2 y (1.46)可以进一步推导出12 : b1 = (X1 M2 X1 )?1 X1 M2 y = (X1 X1 )?1 X1 (y ? X2 b2 ) b2 = (X2 M1 X2 )?1 X2 M1 y = (X2 X2 )?1 X2 (y ? X1 b1 ) 其中, M1 = In ? X1 (X1 X1 )?1 X1 是两个自乘不变矩阵。显然 E(b1 ) = β 1 , E(b2 ) = β 2 , Var(b1 ) = σ 2 (X1 M2 X1 )?1 Var(b2 ) = σ 2 (X2 M1 X2 )?1 (1.49) 以及 M2 = In ? X2 (X2 X2 )?1 X2 (1.48) (1.47)下面我们对上面的结果进行分析。对分解形式的回归模型 (1.45), 如果我们想单纯的估计 β 1 , 我们必须去除 X2 , 将 (1.45) 两边同时左乘以 M2 , 有: M2 y = M ? 2X1 β 1 + M2 X2 β 2 + M2 ε = M2 X1 β 1 + M2 ε 其中第二个等号成立是因为 M2 X2 = 0。如果做如下定义: y? = M2 y, 那么 (1.50) 可以写成:? y? = X? 1β 1 + ε(1.50)X? 1 = M2 X1 ,ε ? = M2 ε(1.51)12 具体推导见钟老师英文讲义第六章第20页。 §1.6 模型解构与子估计式 ε ? ) = M2 E(ε ε) = 0 , 我们注意到: E(ε 且该模型是线性的, 因此可以用 OLS 方法进行估计13 :?1 ? ?1 ? ? b1 = (X? 1 X1 ) X1 y = (X1 M2 X1 ) X1 M2 y17(1.52)这个结果跟我们之前通过将 X, β 分块推导出来的 b1 完全一致。在上面的处理步骤中,左 乘 M2 矩阵实际上相当于消去块 X2 的影响,因为 M2 X2 = 0,而由 M2 的结构,我们可以看出, M2 y, M2 X1 不是别的,正是将 y 和 M2 对 X2 做“回归”得到的残差,此处需要我们对残差的概念 有着更进一步的理解,同时要从估计式结构的角度理解回归的概念。为了更进一步的说明问题, 我们可以观察下式: M2 y = (In ? X2 (X2 X2 )?1 X2 )y = y ? X2 (X2 X2 )?1 X2 y M2 X1 = (In ? X2 (X2 X2 )?1 X2 )X1 = X1 ? X2 (X2 X2 )?1 X2 X1 对于 y 无需多做解释,结果显然是残差的形式;对于 X1 ,我们可以将 X1 中的各列看作 k1 个被解 释变量,而等号右边的结果恰恰就是对这 k1 个被解释变量对 X2 做回归之后得到的 k 个残差的合 并。因此,为了正确的评估 X1 中对的解释变量 y 的影响效果,必须完全消除 X2 对 y 的影响,同 时还必须消除 X2 透过 X1 给 y 带来的影响, 而左乘 M2 矩阵正是达到了这一效果。§1.6.2遗失变量(Omitted-Variable)估计式如果我们希望单单评估 X1 中的解释变量对 y 的影响,我们不能单纯的采取丢掉 X2 的方式; 或者更多的情形是, 我们在设定模型的时候, 遗漏掉了 X2 中所包含的解释变量(真实的解释变量 应当是 k = k1 + k2 个, 而模型只包含了 X1 中的 k1 个) , 以致模型变成: y = X1 β 1 + ε ? 此时, 真实的情况是: ε ? = X2 β 2 + ε 。我们不能直接应用 OLS 估计方法, 因为: ε ? ) = E[X2 β 2 ] = 0 E(ε 如果我们硬要使用 OLS 方法, 那么?1 b? 1 = (X1 X1 ) X1 y(1.53)(1.54)但是?1 E(b? 1 ) = β 1 + (X1 X1 ) X1 X2 β 2 = β 1(1.55)? 也就是说, b? 1 甚至连无偏性都无法满足。造成其有偏的根本原因在于 b1 不仅仅包含了 X1 中的解 释变量对 y 的影响,而且还包含了 X2 透过 X1 对 y 的影响,具体原因上一节已经分析过,正是这 部分影响, 造成了 b? 1 的偏性。13 事实上,我们在 §1.3 中

我要回帖

更多关于 方差膨胀因子 stata 的文章

 

随机推荐