请问:treatment的treat方程能否包含结果方程(outcome equation)的因变量。
如:treatreg y x1 z1 z2, select(y2=z3 z4)
如果选择方程的因变量y2理论上还受到y的影响(类似于联立方程),此时在选择方程中加入y,可以吗?
另一个问题,如:
treatreg y x1 y2*z1 z2, select(y2=z3 z4)
即结果方程中含有y2的交叉项,上面这样回归能控制选择偏差吗?
期待高手的回复!谢谢。
*stata的命令(z为0-1变量):
treatreg y x1-xn, tr(z=w1-wm) two
*等价于以下命令:
prob z w1-wm
predict gw, xb
g lambda=normalden(gw)/normal(gw) if z==1
replace lambda=-normalden(gw)/normal(-gw) if z==0
reg y z x1-xn lambda
treatreg y x1 z1 z2, tr(y2=z3 z4)
就可以了吧?
你的"y2*z1"想达到什么目的?
这种设计虽然也可能得出结果,但结果恐怕不可靠。treatment模型对所涉及的两个方程的扰动项的关系有特殊的假设(或规定),而这种设计恐怕会改变这一假设,使treatment模型不再适用。
*stata的命令(z为0-1变量):
treatreg y x1-xn, tr(z=w1-wm) two
*等价于以下命令:
prob z w1-wm
predict gw, xb
g lambda=normalden(gw)/normal(gw) if z==1
replace lambda=-normalden(gw)/normal(-gw) if z==0
reg y z x1-xn lambda
这个与heckman有什么区别?
*stata的命令(z为0-1变量):
treatreg y x1-xn, tr(z=w1-wm) two
*等价于以下命令:
prob z w1-wm
predict gw, xb
g lambda=normalden(gw)/normal(gw) if z==1
replace lambda=-normalden(gw)/normal(-gw) if z==0
reg y z x1-xn lambda
这个与heckman有什么区别?
注意红色部分
*stata的命令(z为0-1变量):
heckman y x1-xn, two sel(z=w1-wm)
*等价于以下命令:
prob z w1-wm
predict gw, xb
g lambda=normalden(gw)/normal(gw) if z==1
reg y x1-xn lambda if z==1
*stata的命令(z为0-1变量):
heckman y x1-xn, two sel(z=w1-wm)
*等价于以下命令:
prob z w1-wm
predict gw, xb
g lambda=normalden(gw)/normal(gw) if z==1
reg y x1-xn lambda if z==1
也就是说 treatreg 的第二步是所以的样本,heckman第二步只是 z==1的样本。
treatreg的第二步,自变量中还要加入z。
treatreg y x1 z1 z2, tr(y2=z3 z4)
就可以了吧?
你的"y2*z1"想达到什么目的?
也就是结果方程是
y=x1+z1+z2+y2+y2*z1(这里省略各变量系数)
那此时treatreg y x1 y2*z1 z2, select(y2=z3 z4),可以控制选择偏差吗?
此外,按照sungmoo版主的意思,就是treat方程一般不能加入因变量。
如果理论上y2还受到y的影响,就不能用treatreg了?
y=x1+z1+z2+y2+y2*z1(这里省略各变量系数)
那此时treatreg y x1 y2*z1 z2, select(y2=z3 z4),可以控制选择偏差吗?
*如果你想实现红色部分,你的蓝色部分应该写作:
treatreg y x1 z1 z2 y2*z1,tr(y2=z3 z4)
个人以为,最好不这样用。这样可能在纠偏的同时带来了新偏。
[此贴子已经被作者于2009-5-24 18:28:29编辑过]
嗯,是treat,前面不小心写错了。
那再请教一下sungmoo版主,遇到这种情况在stata中如何控制内生性呢?
非常感谢!
这种内生性比较特殊:用于纠正关于Y的内生选择偏误的变量包含Y自身。这个讨论起来恐怕很复杂。
sungmoo 发表于 2009-5-24 10:15
*stata的命令(z为0-1变量):treatreg y x1-xn, tr(z=w1-wm) two*等价于以下命令:prob z w1-wmpredict gw, xbg lambda=normalden(gw)/normal(gw) if z==1replace lambda=-normalden(gw)/normal(-gw) if z==0reg y z x1-xn lambda
guolaiguoqu 发表于 2009-7-20 14:51treatreg y x1 y2*z1 z2, select(y2=z3 z4),可以控制选择偏差吗?也就是结果方程是y=x1+z1+z2+y2+y2*z1(这里省略各变量系数)
sungmoo 发表于 2009-7-20 17:46个人总觉得这种做法需要做一些强假设。guolaiguoqu 发表于 2009-7-20 14:51treatreg y x1 y2*z1 z2, select(y2=z3 z4),可以控制选择偏差吗?也就是结果方程是y=x1+z1+z2+y2+y2*z1(这里省略各变量系数)
y2*z1这个变量的取值显然应该受到选择行为的影响。上面的做法假设这个变量独立于选择行为。
另外,
treatreg y x1 y2*z1 z2, tr(y2=z3 z4),对应reg y x1 y2 y2*z1 z2 lambda
treatreg y x1 z1 z2 y2*z1, tr(y2=z3 z4),对应reg y x1 z1 z2 y2 y2*z1 lambda
sungmoo 发表于 2009-7-20 17:46个人总觉得这种做法需要做一些强假设。guolaiguoqu 发表于 2009-7-20 14:51treatreg y x1 y2*z1 z2, select(y2=z3 z4),可以控制选择偏差吗?也就是结果方程是y=x1+z1+z2+y2+y2*z1(这里省略各变量系数)
y2*z1这个变量的取值显然应该受到选择行为的影响。上面的做法假设这个变量独立于选择行为。
另外,
treatreg y x1 y2*z1 z2, tr(y2=z3 z4),对应reg y x1 y2 y2*z1 z2 lambda
treatreg y x1 z1 z2 y2*z1, tr(y2=z3 z4),对应reg y x1 z1 z2 y2 y2*z1 lambda
扫码加好友,拉您进群



收藏
