楼主: zdlspace
141460 124

[程序分享] Stata同时输出两阶段最小二乘法的两步回归结果   [推广有奖]

61
17860840952 发表于 2022-5-15 17:33:04
Elena951123 发表于 2021-1-25 16:32
xtivreg好像是不可以的,输出的两列数据都是第二阶段的,也就是第一阶段的数据好像被第二阶段的数据覆盖了 ...
所以就不知道第一阶段的r2

62
17860840952 发表于 2022-5-15 17:54:02
4095413437311 发表于 2022-3-2 10:11
请问第一阶段的调整后R2该怎么看呢?
楼主解决这个问题了吗

63
17860840952 发表于 2022-5-15 17:59:33
楼主想问一下,我用xtivreg2按照您的命令,出来的都是第二次的结果,下边是我的代码,是哪里出问题了吗
tab Year, gen(d)
xtivreg2 tfp (Dige=IVV) Growth Size age Share AOF Capital edu d*,fe  first endog(Dige) savefp(first)
eststo second
est store first`Dige'
outreg2 using 1.doc,cttop(first) tstat bdec(3) tdec(2) replace
est restore second
outreg2 using 1.doc,cttop(second) tstat bdec(3) tdec(2)

64
静山望 发表于 2022-5-18 17:19:45
当进行另一行代码回归时,estadd scalar F = `e(widstat)' : fweight   会报错显示e(f)已经生成,请问该如何解决这个问题呢?

65
静山望 发表于 2022-5-18 17:52:50
静山望 发表于 2022-5-18 17:19
当进行另一行代码回归时,estadd scalar F = `e(widstat)' : fweight   会报错显示e(f)已经生成,请问该如 ...
目前estadd scalar F只能用于相同的ivreghdfe进行回归,更改解释变量后要么显示e(f)已经存在,要么estimation result fpollution not found,无法进行接下来的代码..

66
缓缓京心 发表于 2022-6-21 23:52:34
博主,xtivreg 的第一段结果还是无法输出

67
7113341832 发表于 2022-7-1 16:41:45
小赤兔 发表于 2022-5-4 14:28
你好,我用你这段代码导出会出现,firstn不存在的问题。也就是当我运行,“est restore firstn”时,会出 ...
请你看40楼老师的说法,其实firstn的写法是楼主的核心变量就是n,但是事实上每个人的变量都是不同的,比如我的变量是bba,那么这一行里的firstn就应该改成firstbba,这样你就可以成功导出了。这不是一行固定的命令,直接输入找不到是正常现象

68
7113341832 发表于 2022-7-1 16:56:10
最近学习了楼主的xtivreg2命令,也遇到了firstn没法识别的问题
后来看到40楼老师的回复,大概明白了含义。
可能也有同学遇到的问题和我一致,结合40楼老师的说法
重新写了编辑了一下,各位到时候直接把自己的变量带进去
应该就可以顺利出结果了
xi开头是因为考虑到虚拟变量的情况
AA就是核心变量,IV是他的工具变量 BCD是一些控制变量
  1. xi:xtivreg2 A B C D  (AA = IV), fe robust first savefp(first)
  2. eststo second   //保存第二阶段结果
  3. local var="AA"
  4. est restore first`var' //激活第一阶段结果
  5. outreg2  using ns1.doc,cttop(first) tstat bdec(3) tdec(3) replace
  6. est restore second  //激活第二阶段结果
  7. outreg2  using ns1.doc,cttop(second) tstat bdec(3) tdec(3)
复制代码

69
zdlspace 学生认证  发表于 2022-7-4 14:56:14
7113341832 发表于 2022-7-1 16:56
最近学习了楼主的xtivreg2命令,也遇到了firstn没法识别的问题
后来看到40楼老师的回复,大概明白了含义。 ...
谢谢你,你说的是对的,我之前没有注意到原来大家是这个地方没看懂,我再稍微解释一下吧。
  1. xi:xtivreg2 A B C D  (AA = IV), fe robust first savefp(first)
复制代码
这个地方`savefp(first)`的意思,savefp是save first prefix的缩写,就是第一阶段以first开头保存,在这个例子中其实是第一阶段回归的名字命名以first开头,以内生变量AA结尾,所以合起来第一阶段回归的名字其实是`firstAA`。当然这个first你也可以用其他名字随意命令,比如savefp(first_),那么第一阶段回归的名字就是`first_n`。

另外,如果你不想自己自定义命名的话,也可以采用系统默认的命名。那么你可以直接使用savefist选项,系统默认的命名是`_ivreg2_内生变量`。
  1. xi:xtivreg2 A B C D  (AA = IV), fe robust first savefirst
复制代码
此时就可以使用`est restore _ivreg2_AA`来激活第一阶段回归。

70
zdlspace 学生认证  发表于 2022-7-4 15:07:37
qujl 发表于 2022-1-17 16:01
楼主提供的方法非常好!
在xtivreg2输出中,est restore firstn //激活第一阶段结果,这一行出现问题,主 ...
不建议将var存为n,还是建议直接使用first+内生变量作为第一阶段回归的名字。
  1. est restore first内生变量
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-2 12:06