你好,我也遇到了这个问题,在网上也没有搜到答案,在我经过不断地尝试之后,我发现我的问题出在最后的,robust first,我改成,first之后就可以输出结果了。
我的详细情况如下,仅作参考,希望对你有所帮助!
我想做一个2sls的回归,并且分别输出两个阶段的结果:
最开始使用的命令是
ivregress 2sls y x2 x3 (x1=z1 z2),robust first
其中y为被解释变量,x2 x3为外生解释变量,x1为内生解释变量,z1 z2为x1的工具变量
但是我发现这个命令没办法输出第一阶段的回归结果,于是我在搜索之后下载了ivreg2命令
使用的命令为
ivregress2 2sls y x2 x3 (x1=z1 z2),robust first
就出现了这个问题:
_iv_vce_wrk(): 3001 expected 21 arguments but received 20
<istmt>: - function returned error
最开始我以为是变量的数量太多导致的,后来尝试了很多情况都发现不是
不知道为啥突发奇想可能是命令格式的问题,在将最后的,robust first改成,first之后,可以正常跑回归和输出结果了,
即:ivregress2 2sls y x2 x3 (x1=z1 z2),first
两阶段的结果都可以分别输出了,顺便将我用的2sls分别输出的命令发在此处:
ivregress2 2sls y x2 x3 (x1=z1 z2),first
est restore first
outreg2 using 2SLS.doc,cttop(first) tstat tdec(3) bdec(3) word replace
ivregress2 2sls y x2 x3 (x1=z1 z2),first
outreg2 using 2SLS.doc,cttop(first) tstat tdec(3) bdec(3) word replace
其中,replace是覆盖掉原文件进行输出,append是在第一列输出结果之后添加第二列结果等,tstat是把系数下面括号内的标准误改成输出t值
tdec(3) bdec(3)是输出有星号的结果*,**,***表示显著性的那种,这几部分可以根据自己需要进行省略。
虽然这个帖子已经很长时间了,但是还是希望对你有所帮助,希望对后来搜索到这个问题的人都能提供一点帮助~谢谢!


雷达卡





京公网安备 11010802022788号







