ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

伍德里奇计量习题 Stata 复现:从 OLS 到面板与工具变量

伍德里奇计量习题 Stata 复现:从 OLS 到面板与工具变量 简介这份《伍德里奇计量经济学部分计算机习题详解STATA.pdf》面向正在学习伍德里奇《计量经济学》并用Stata完成课后计算机习题的本科生、考研复习者及备考人群尤其适合需要核对异方差章节操作结果与解题思路的读者。压缩包内仅含1个PDF文件大小约1.12MB轻量便携可直接在电脑或平板上阅读。内容围绕第8章计算机习题展开涉及方差随性别变化的模型设定、异方差模型参数估计、稳健标准误与通常标准误对比、完全怀特检验、特殊怀特检验、LM与F统计量及p值计算并对对数变换后异方差影响减弱等现象给出解释。文档以Stata回归截图配合逐步结果说明便于读者对照复现模型、检查代码输出并理解考试常见考点。目前已有6686人学习下载适合用作计量经济学课程作业、期末复习与Stata实操排错参考。1. 伍德里奇计算机习题用 Stata 复现的真实门槛很多人拿到伍德里奇《计量经济学导论》的计算机习题部分第一反应是打开 Stata把题目里的变量名敲进去跑一条regress然后对着 PDF 里给的系数表看能不能对上。真跑起来就会发现障碍根本不在回归命令本身习题给的是行为描述而不是数据字典你要先判断这是横截面、时间序列还是面板结构要判断该用稳健标准误还是普通标准误要判断样本里那几个缺失值到底该删还是该保留。伍德里奇教材的习题编号体系CE 系列比如 CE4.3 对应第 4 章第 3 题本身就是在训练这套判断而不是训练你背命令。把 STATA 和这份 PDF 放在一起讲讲的就是把纸面题目翻译成可复现 do 文件的全过程适合正在做课程作业、准备毕业论文实证部分或者想快速补上计量实操这一环的从业者。2. 从 PDF 题目到 wooldridge 数据集的读取与变量核对2.1 先解决数据从哪来伍德里奇教材配套的数据集是公开的Stata 用户最常见的获取方式是通过 SSC 上的数据包而不是去网上零散下载.dta文件再手动对齐变量名。前者一次安装就能拿到几十个.dta文件名和教材里提到的数据名基本一致省掉了重命名的麻烦。* 安装教材配套数据集包只需执行一次 ssc install wooldridge, replace * 查看包里包含哪些数据集 sysuse dir ado describe wooldridge * 读取一个横截面数据集 use bwght, clear describe第一段代码安装的是一个数据集集合包不是分析命令包它只把.dta文件放到你的个人 ado 路径下。use bwght, clear里的clear是关键参数没有它而当前内存中有未保存数据时Stata 会直接报错中断。describe输出的是变量清单、存储类型、显示格式和标签这一步决定了你后面能不能正确写出回归式。特别提醒习题 PDF 里描述变量用的是中文或英文全称而.dta里是缩写比如家庭收入在 bwght 数据里叫faminc吸烟支数叫cigs出生体重叫bwght先做变量名映射再动手。2.2 用极值和缺失值检查防止系数跑偏习题里经常有一句话轻描淡写地带过“剔除信息不全的样本”或“删去极端观测”。这句话落到实处就是缺失值统计和极值定位靠summarize的返回值就能完成不需要额外命令。* 描述统计同时拿到最小值最大值到返回值 summarize bwght cigs faminc, detail * 直接调用返回值判断极值 display bwght 最小值 r(min) 最大值 r(max) * 缺失值计数每行返回某变量的 missing 个数 misstable summarize bwght cigs faminc * 生成一个完整样本指示变量 gen byte insample !missing(bwght, cigs, faminc) count if insample 1detail参数会额外输出偏度、峰度、分位数排气量、收入这类右偏变量一眼就能看出是否需要取对数伍德里奇习题里大量使用lwage、lbwght这种对数变量选型依据就来自这一步。r(min)和r(max)是summarize留下的临时返回值只能在紧接着的下一条命令里使用中间插了别的命令就会被覆盖这是新手最常踩的坑。misstable summarize给出每个变量的缺失条数以及多个变量联合缺失的样本量判断“删除缺失”会不会把样本砍掉一大块。最后生成的insample变量比反复写if !missing(...)更可控做分组和回归时直接引用它即可。2.3 面板与时间序列数据的结构声明同一条regress命令在横截面数据上是对的在时间序列或面板数据上可能直接给你错误的自由度、错误的 t 值。区别就在于有没有声明数据结构。数据类型声明命令教材习题常见场景漏声明后果横截面不需要工资方程、房价方程无时间序列tsset 时间变量通胀与失业率、利率与赤字滞后项全错、DW 统计量不输出面板xtset 个体 时间工资面板、犯罪率面板、企业投资无法用xtreg聚类标准误无效* 时间序列年度数据 use phillips, clear tsset year * 面板个体编号 年份 use wagepan, clear xtset nr year xtdescribetsset year之后 Stata 才知道L.inflation是上一年通胀、F.unem是下一年失业率才不会在你写L.时报“时间变量未设定”。xtset nr year中nr是个体标识year是时间标识第二个参数可省略但强烈建议写上因为面板不平衡时xtdescribe的输出会直接告诉你缺失了哪些年份组合。xtdescribe的T值每期观测数与n值个体数决定后面用固定效应还是随机效应也决定聚类标准误要聚到哪一层。3. 横截面习题的回归链条从 OLS 到稳健标准误再到亚组比较3.1 基准回归与系数解释的对应关系横截面习题占比最高套路也最固定先跑一个基准 OLS再逐个添加控制变量最后按题目要求解释某个系数。难点不在跑在于你写的系数解释必须和数据变换方式严格对应。* 出生体重对吸烟与家庭收入的基础回归 regress bwght cigs faminc parity male, vce(robust) * 因变量与部分自变量取对数后的弹性形式 gen lbwght log(bwght) gen lfaminc log(faminc) regress lbwght cigs lfaminc parity, vce(robust) * 查看回归后可用统计量 ereturn listvce(robust)是横截面题里最该默认加上的参数伍德里奇教材在异方差章节之后几乎默认使用稳健标准误因为出生体重、工资这类变量的误差方差明显随解释变量变化。lbwght与lfaminc同时取对数时lfaminc的系数直接读作弹性而cigs仍是水平值系数要按“每多一支烟出生体重变化百分之多少”来换算这就是log-level模型的解释规则。ereturn list会列出刚才那次回归保留的全部结果矩阵包括e(b)、e(V)、e(r2)写习题时如果需要手工计算某个检验量直接从这些返回值里取避免手抄导致的舍入误差。3.2 异方差检验与标准误的取舍题目常问“是否存在异方差”回答它需要的是检验输出而不是目测残差图。Stata 里对应的操作成本很低但要注意检验的零假设方向。regress bwght cigs faminc parity male estat hettest estat hettest cigs faminc, iid * 怀特异方差稳健的 F 检验 test cigs famincestat hettest的零假设是“同方差”p 值小于 0.05 才说明存在异方差这一点和很多人的直觉相反误读了就会把结论写反。带iid参数时检验假设误差独立同分布用它对解释变量做辅助回归适合样本量不大的情况。test命令做的是系数的联合显著性检验在异方差存在时必须配合稳健协方差矩阵一起看否则 F 统计量的分布假设不成立p 值不可信。判断题干要求写“普通标准误”还是“稳健标准误”时看教材那一章的主题第 8 章之后基本都要求稳健。3.3 亚组分析分组回归与交互项两条路习题里出现“分别对男性和女性估计”“教育回报在高经验组和低经验组是否不同”这类要求本质是亚组分析。Stata 里有两条路选错会得出不同的结论。* 路线一分组跑回归 regress lwage educ exper tenure if female 0, vce(robust) estimates store male_grp regress lwage educ exper tenure if female 1, vce(robust) estimates store female_grp * 路线二全样本加交互项 regress lwage educ exper tenure i.female c.educ#i.female, vce(robust) testparm i.female c.educ#i.female分组回归的好处是每一组的系数都是组内单独估计的包括常数项和所有控制变量的斜率都可以不同代价是它没法直接检验“两组教育回报的差异是否显著”要靠suest或手动比较置信区间。交互项写法把所有组放进同一个样本c.educ#i.female这一项直接给出教育回报的组间差异testparm一步就能给出联合显著性。样本量小的时候优先用交互项因为分组会把样本切薄稳健标准误在小样本下容易失真。两种路线都要求estimates store保存结果否则后续estimates table male_grp female_grp无法对照输出这一点在写习题答案表格时非常实用。4. 时间序列与面板习题滞后项、固定效应与聚类标准误4.1 时间序列的自相关检验与 Newey-West 修正时间序列习题绕不开自相关。教材里给的检验是回归残差对滞后残差做辅助回归Stata 把这一步做成了回归后命令但你得先正确设定时间变量。use phillips, clear tsset year regress inf unem estat dwatson estat bgodfrey, lags(1 2) * 自相关存在时改用 Newey-West 标准误 newey inf unem, lag(2)estat dwatson给出德宾-沃森统计量数值接近 2 说明无一阶自相关接近 0 说明正自相关接近 4 说明负自相关这个统计量只有在tsset之后才可用。estat bgodfrey是布罗施-戈弗雷检验lags(1 2)表示同时检验一阶和二阶自相关比 DW 更灵活因为它允许右侧出现滞后因变量。newey命令用 Newey-West 方法修正标准误lag(2)是截断参数表示允许自相关一直延续到二阶取值通常按经验法则floor(4*(T/100)^(2/9))估算或者直接按题目给定值填。回归系数本身不会因newey改变变的只有标准误和 t 值很多人第一次用会以为系数出错了。4.2 面板固定效应与聚类层级的对应面板习题的核心判断是“个体效应是否与解释变量相关”。相关就用固定效应不相关且想估计不随时间变化的变量比如性别、种族才用随机效应并用 Hausman 检验来裁决。use wagepan, clear xtset nr year * 固定效应 xtreg lwage educ exper expersq, fe vce(cluster nr) * 随机效应 xtreg lwage educ exper expersq, re vce(cluster nr) * Hausman 检验 estimates store fe_res xtreg lwage educ exper expersq, re estimates store re_res hausman fe_res re_resvce(cluster nr)里的聚类层级必须和xtset的第一层一致也就是按个体聚类因为同一个人不同年份的误差几乎必然相关不聚类会严重低估标准误。fe估计会先做组内去均值因此所有不随时间变化的变量会被自动剔除这也是随机效应能估计教育年限而固定效应在某些设定下不能的原因。Hausman 检验的零假设是“随机效应一致”p 值小于 0.05 就拒绝随机效应、选择固定效应。要注意 Hausman 检验要求两次估计使用同一批样本如果随机效应里包含了个体层面不随时间变化的变量样本可能不一致这时需要加sigmamore参数或改用xtoverid。4.3 工具变量题的两步法与弱工具检验伍德里奇教材里工具变量章节的习题给的信息量最大因为它同时涉及内生性判断、工具相关性检验和过度识别检验三件事缺一步答案就不完整。* 教育年限内生用近邻是否四年制大学作为工具 ivregress 2sls lwage exper expersq (educ nearc4), vce(robust) * 第一阶段单独跑看工具变量的显著性 regress educ nearc4 exper expersq, vce(robust) test nearc4 * 过度识别检验工具数多于内生变量数时才有意义 estat overidivregress 2sls的括号里左边是内生变量右边是工具变量括号外是所有外生变量括号的位置写错 Stata 不会报错但模型含义完全变了。第一阶段的test nearc4是在检查工具相关性t 值过低说明弱工具此时 2SLS 估计量有限样本偏误可能比 OLS 还大教材里通常会要求你报告第一阶段的 F 统计量。estat overid只能在工具变量个数大于内生变量个数时运行它检验的是工具外生性假设零假设成立意味着各工具给出的估计一致。三个检验必须一起报告只报点估计是习题答案里最常见的扣分点。5. 把 Stata 输出与 PDF 习题答案逐项对账的实用技巧习题做完只是第一步能不能和 PDF 里给出的参考答案对上考验的是输出管理能力。手抄屏幕上的系数既慢又容易错正确做法是用日志文件把整次分析的所有输出落盘再逐行核对。* 开启日志把文本输出与 SMCL 输出分别保存 log using ce_answers.log, replace text log using ce_answers.smcl, replace use bwght, clear regress bwght cigs faminc parity male, vce(robust) estimates store m1 use wage1, clear regress lwage educ exper tenure, vce(robust) estimates store m2 * 把多个模型汇总成一张对照表 estimates table m1 m2, star(0.10 0.05 0.01) stats(N r2 r2_a) log close _alllog using同时开两个日志是有意为之.log是纯文本方便用脚本做二次提取和 diff 比较.smcl保留格式方便打印或转成 PDF 存档。estimates table的star()参数按 10%、5%、1% 三档自动标注显著性星号stats(N r2 r2_a)把样本量和两种 R² 一起列在表底正好对应教材表格的排版习惯。对数似然、F 统计量可以用stats(F ll)加上。对账时最容易出偏差的三类情况值得提前防住。一是样本量不一致多半是缺失值处理方式与答案不同用count if e(sample)在每次回归后打印实际参与估计的样本量一行命令就能定位。二是标准误类型不同参考答案用的是普通标准误而你加了vce(robust)系数会完全一致但 t 值和 p 值不同遇到这种情况先看题目有没有明确要求异方差稳健。三是变量单位不同教材里工资、收入常以美元或千美元计量PDF 描述里一句“以千美元计”如果被忽略系数会差三个数量级summarize的均值输出是判断单位最快的办法。一个更省事的习惯是在 do 文件里用program define把“读取数据、描述统计、基准回归、稳健回归”打包成可传参的小程序每道题只换数据集名和变量列表这样既保证不同题目的处理流程完全一致也便于回看某一步是哪次修改引入的差异。习题的价值从来不在最终那个系数上而在这条从数据读取到检验报告的可复现链条上。本文还有配套的精品资源点击获取
返回列表