我正在尝试使用statsmodels库在python中进行两阶段最小二乘回归。
from statsmodels.sandbox.regression.gmm import IV2SLS
resultIV = IV2SLS(dietdummy['Log Income'], dietdummy.drop(['Log Income', 'Diabetes']),
dietdummy.drop(['Log Income', 'Reads Nutri')
Reads Nutri
是我的内生变量,我的工具是Diabetes
,我的因变量是Log Income
。
我做得对吗?这与我在stata上做的方式有很大的不同。
此外,当我执行resultIV.summary()时,我得到了一个类型错误,这与F统计量不是类型有关,我如何重新处理它?
任何帮助都是非常感谢的。
发布于 2017-03-24 13:42:53
当我想自己做IV2SLS回归时,我发现了这个问题,并遇到了同样的问题。所以,只为所有其他登陆这里的人。
documentation of statsmodels显示了如何使用此命令。您的参数依次为endog
、exog
和instrument
,其中exog
包括插入指令的变量,instrument
包括仪器和其他控制变量。从这个意义上说,你的模型是好的。
您找到的TypeError
当前是0.6.0和0.8.1版本的open bug。并将根据里程碑在0.9.0中修复。
更新(28.06.2018):版本9.0.0已于5月15日发布,应包含上述错误的修复。
发布于 2021-03-28 21:19:59
就我个人而言,我发现the IV2SLS function in linearmodels 4.5比statsmodels版本更直观,因为它对因变量和内生变量有单独的参数,而statsmodels版本没有。我从线性模型函数中获得的结果与我在学校获得的Excel插件的结果一致。
如果您选择使用线性模型功能,this guide也会有所帮助。例如,它向我展示了我需要为我的函数添加一个常量来产生正确的输出。
https://stackoverflow.com/questions/37012110
复制