我正在尝试使用 statsmodels 库在 python 中进行 2 阶段最小二乘回归:
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() 时,我得到一个 TypeError(与 F 统计量为非类型有关)。我该如何解决这个问题?
请您参考如下方法:
当我想自己做一个 IV2SLS 回归并且遇到同样的问题时,我发现了这个问题。所以,只为来到这里的其他人。
documentation of statsmodels显示如何使用此命令。您的参数是 endog、exog 和 instrument,其中 exog 包含已检测的变量和 instrument 仪器和其他控制变量。从这个意义上说,您的模型很好。
您发现的 TypeError 目前是一个 open bug在版本 0.6.0 和 0.8.1 中。并将根据里程碑在 0.9.0 中修复。
更新 (28.06.2018):版本 9.0.0 于 5 月 15 日发布,应该包含对上述错误的修复。
