stataF值缺失_stata⾯板数据回归操作之GMM
新⼿⾯板数据回归之GMM 的 stata 操作步骤
⼴义矩估计( Generalized Method of Moments 即 GMM )
原理就是回归!就是⼀种⾼级点的回归!
我也是新⼿,也有很多不太懂的地⽅。断断续续学习了两个⽉,看了很多⽂献和拼凑整理的,放到这⾥就是⼤家可以⼀起修正和补充。
数据情况:
样本:31个省份的⾯板数据
年份:2009-2016年 ⼋年数据
因变量Y
⾃变量:⼋个X
⼀、数据整理、导⼊和保存
第⼀步:整理数据:
以X1 CPI为例最好数据原始整理的时候,就注意形式,整理成这样
⾸先,stata不识别字符,所以建议把省份换成1-31。以免后续⿇烦。也可以后续将字符修改为数值型,语法:egen pro=group(var1)//将var1变量转化为新的⾮字符串变量,并命名为pro。
(缺失数据:多重插补⽤的较多,这需要你根据⾃⾝情况去学习,学问多多。我是按照Landerman 等( 1997) 建议当缺失⽐例⼩于2%时,⽤均数替代; 当缺失⽐例在2%—5%之间时, ⽤最⼤似然估计替代; ⽽当缺失⽐利⼤于5%时, ⽤多项回归替代(multiple imputation)。(Landerman, L .R . Land, K .C ., and Pieper , C .F . ( 1997) . An Empirical Evaluation of the Predictive Mean Matching Method for Imputing Missing Values . Sociological Methods and Research, 26( 1) : 3—33 .))
再从数据的第三⾏即具体数据开始,开始复制粘贴到stata的数据编辑器中,如右下图。
(ps:如果把第⼆⾏也纳⼊,stata会默认地区也是⼀个样本,后⾯2009-2016是数据,观测值变为32,年份9,错误如左下图,不要地区省份和具体年份!)
第⼆步:调整数据
开始在stata⾥⾯输⼊命令
第⼀:将第⼀列中的样本var1重命名
语法:rename var1 样本名bootstrap检验方法
本例:rename var1 province
然后你就会看到var1变成province
第⼆:转换为数据,继续识别时间变量
语法:reshape long var,i(样本名)
本例:reshape long var,i(province)
其他的var就会变成年份顺序
Stata语法界⾯可以看到:⼀共31个样本,248个观测值。J variable 有8个值。
第三:重命名 语法: rename _j year ;rename var 变量名称
本例就是: rename _j year ;rename var CPI
就得到下图:其中province 1-31个省份。2-9就是2009-2016年,⼋年
为防⽌数据不符合排序问题,我们可以再来个排序:sort 样本名称 时间
本例:sort province year ⼀般是没有问题的。
最后保存⼀下,⽅便后续导⼊使⽤。
注:其他变量也全部都这样导⼊,导⼊前先clear⼀下。stata也可以直接打开Excel,前提你的格式记得修改好。如果变量较多,⼀定记得保存到⼀个⽂件夹,后续导⼊需要⼀直使⽤这个⽂件路径。
第三步:合并数据
从因变量Y开始。其他变量也是要⼀个个导⼊合并。看起来⼀个个来很⿇烦,操作熟练了,⼏分钟的事情,所以不要担⼼。
打开因变量Y的数据库。先合并CPI。
语法:merge 1:1 province year using ⽂件路径
寻这个⽂件路径,很多⽅法,我⼀般使⽤⽂件夹上⾯有个复制路径,如下图,很简单⽅便。"C:UsersthinkpadDesktop分省份数据STATA修改数据分省年度数据之CPI 2009-2016
年.dta"
本例:merge 1:1 province year using C:UsersthinkpadDesktop分省份数据STATA修改数据分省年度数据之CPI 2009-2016年.dta
合并之后,再进⾏排序对应,虽然⼀般整理的时候已经匹配好了,但安全起见,再打⼀遍。
语法:tab _merge drop _merge (因为这⾥会有多次merge,之前merge的数据会⽣成⼀个新var _merge, 合并后必须drop掉才可以进⾏下⼀步merge)
如下图,左边是语法界⾯,右边数据截⾯,我已经合并好了y和x1,x2,x3。
sort province year
结束!保存!
⼆、简单回归
这⾥想先简单写⼀写⾯板数据最基本的回归。即固定效应模型和随机效应模型。
第⼀步:定义⾯板数据: 语法:xtset样本 year
本例:xtset province year
注:第⼀个是横截⾯(样本或个体),第⼆个是时间,不要反了呀
输⼊之后,stata会告诉你数据是否平衡,即strongly balanced。
第⼆步:数据检验:
单位根检验(如ADF、IPS、LLS、HT),判断是否平稳。
常⽤相同根单位根检验LLC(Levin-Lin-Chu)检验和不同根单位根检验Fisher-ADF检验(注:对普通
序列(⾮⾯板序列)的单位根检验⽅法则常⽤ADF检验),如果在两种检验中均拒绝存在单位根的原假设则我们说此序列是平稳的,反之则不平稳。但很多时候,⼤家默认ADF拒绝就⾏。
此外,单位根检验⼀般是先从⽔平(level)序列开始检验起,如果存在单位根,则对该序列进⾏⼀阶差分后继续检验,若仍存在单位根,则进⾏⼆阶甚⾄⾼阶差分后检验,直⾄序列平稳为⽌。我们记I(0)为零阶单整,I(1)为⼀阶单整,依次类推,I(N)为N阶单整。
LLC检验语法:xtunitroot llc varname, lag(n)
IPS检验语法:xtunitroot ips 变量名, lag(n)
可以使⽤xtunitroot,help⼀下,便会出现所有的检验命令及其⽤法和实例:⽽且有可能不同检验结果不⼀样,这⾥具体还需要加各种option,检验不通过,即同阶单整,还需要协整检验等,(具体去搜索别的⼤神写的,⼩的懂得也不多。这⾥还有很多学问!)
协整性检验: