(1)常规:
xthreg2 depvar [ indepvars] [if] [in] , rx(varlist) qx(varname)
[thnum(integer) grid(integer) trim(numlist) bs(numlist) thlevel(#)
gen(newvarname) noreg nobslog wc(string) options ]
(2)本人喜欢的排版(能更直观的观察各类变量的情况,当然,选择适合你自己的):
xthreg2 depvar ///
[ indepvars] [if] [in] ///
, rx(varlist) qx(varname) ///
[thnum(integer) grid(integer) trim(numlist) bs(numlist) thlevel(#)
gen(newvarname) noreg nobslog wc(string) options ]
3.说明:
depvar:被解释变量
indepvars:解释变量
rx(varlist) :制度(区域)内生变量——必选项(可以理解为受qx影响的变量,即模型中qx括号前的变量)
qx(varname) :门限变量——必选项。
thnum(#) :门限个数——在Stata13-15版本中,#必须小于等于3,默认为thnum(1)。
grid(#) :网格点数——在样本量较大时,该选项可以控制计算时间,默认为grid(300)。
trim(numlist) :估计每个门限值时的修整比例,修整比例的个数
必须与th中num(#)中的#相等,默认trim(0.01)
bs(numlist) :bootstrap迭代次数——若不设置bs(),xthreg将不会使用bootstrap进行门限效应检验。
thlevel(#) :置信区间,默认为95%,即thlevel(95)。
...(其他的属实不需要知道)
4.命令安装:
(1)据说源自南开大学 王群勇 老师(我没研究过),对此表示感谢!
(2)有这个包的人很多,但免费的很少,原因不细说了没有对错谁叫人家有。
(3)总共两个文件:lxthreg.mlib (可以理解为后者愉快执行的必备文件;别细问,不知道)和 xthreg2.do(可以理解为xthreg的升级版。好吧,就是)
5.运行问题:
(1)无法运行且跳红码:
①“There exist time-invariant individual(s) (maybe only one obs): y q1 q2 ......”;
②“ thest2(): 3200 conformability error
thestm2(): - function returned error
<istmt>: - function returned error”
③理解及解决方案:
对于①,time-invariant individual(s)翻译为“时不变”个体,帖子里很多人说是 不随时间变化 的数据(or 指标)。就我个人尝试经历而言,我是在:
1)区制变量rx()(受门槛/限变量qx影响的变量)也在控制变量/解释变量/[indepvars]中
以及
2)进行全样本缩尾“winsor2 XX, cut(1 99)”
后出现的这种情况。
观察数据发现,某一城市的某一控制变量确实在某几年的数据是一样的,这和缩尾有关。但如果是time-invariant的原因,我想总不可能仅仅因为就这几个样本的数据一样就无法运行该命令吧?
之后,尝试将rx()变量从[indepvars],可运行。
总结:可能大概率是因为这个命令无法同时考虑同一个变量在rx()和[indepvars]中存在,我猜的。
(2)可运行且跳红码:“There exist time-invariant individual(s) (maybe only one obs): y q1 q2 ......”;
问了个貌似上过 王群勇 老师课的up主,说没影响,我也可运行,那就暂时认定为无影响。
(3)无法执行命令:
1)大部分消息认定务必要stata16.0才可运行该命令。
2)我可以在Windows 11上用STATA16.0运行该命令,那就说明这条命令(我发的这个文件,其他人发的我就不知道了)至少在windows11上的stata16.0中可运行。
3)do文件路径问题:
这没啥好讲的,基操问题。不行的直接把这两个文件拖桌面,然后定义桌面为stata路径就行了。
设置好运行环境的,那就放plus的x文件夹里,亲测可运行。有人说放plus的l文件夹里,没试过。