hello,guys!很高兴又和大家见面了,由于很多同学在面板门限回归实证处理上存在着一些困难,今天我们这里来统一解析一下面板门限回归的相关命令。
目前面板门限回归有两个命令。一个是xtptm(stata 12.0),一个是xthreg(stata 14.0),这两个程序都是王群勇老师开发的,其中xthreg使用高版本进行编译,无法在低版本的环境下运行(即低于13.0就无法执行)。
【代码示例】
use thresholddata,clear
STATA12.0:xtptm pollution population urbanization_level industrialization_level, rx(pgdp) thrvar(fdi) regime(1) iters(300) trim(0.01) grid(100)
STATA14.0:xthreg pollution population urbanization_level industrialization_level, rx(pgdp) qx(fdi) thnum(1) bs(300) trim(0.01) grid(100)
【命令区别】
两个命令里的rx都代表受门限变量影响的核心解释变量;
xthreg命令里的qx代表门限变量,而xtptm命令里的thrvar代表门限变量(有一些旧版的xtptm也是以qx代表门限变量);
xthreg命令里的thnum代表门限数量,而xtptm命令里的regime代表门限数量(有一些旧版的xtptm也是以thnum代表门限数量);
xthreg命令里的bs代表自举抽样次数,而xtptm命令里的iters代表自举抽样次数;
两个命令里的trim都代表每个门限分组内异常值去除的比例;
两个命令里的grid代表样本网格计算的网格数(不设的话该值为0,设置这个option可以减少运算时间,提高运算效率)。
关于整体运算效率:xtptm运算耗时要明显小于xthreg,效率更高。
关于对输出结果的解释:xthreg的回归输出要比xtptm更友好:xtptm按变量顺序命名然后输出,xthreg直接按变量名称命名然后输出。
【报错原因1】
至于有的同学说使用命令出错,系统提示3200 conformability error之类的错误,很可能是你把rx里的核心解释变量也写到一般解释变量里面去了,会导致矩阵结构上的错误,所以系统报错,然后回归无法运行。形如:
STATA14.0:xthreg pollution pgdp population urbanization_level industrialization_level, rx(pgdp) qx(fdi) thnum(1) bs(300) trim(0.01) grid(100)
这样的语句就是错误的。
【报错原因2】
有的同学说运行的时候出错,系统提示thestm(): 3301 subscript invalid之类的错误,很可能是你每个门限分组内异常值去除的比例太小,也就是trim设得太小(比如0.01),这时会导致元素引用时下标溢出而导致下标引用无效,遇到这种情况时你不妨将trim调大一点(比如0.05),形如:
STATA14.0:xthreg pollution pgdp population urbanization_level industrialization_level, rx(pgdp) qx(fdi) thnum(1) bs(300) trim(0.05) grid(100)
这样的调整或许可以解决你的问题。
不知道我讲清楚没,有不懂的同学可以继续咨询我。