【问题标题】:How to do test of equality of coefficient for 2SLS in Statsmodels or Linearmodels?如何在 Statsmodels 或 Linearmodels 中测试 2SLS 的系数相等性?
【发布时间】:2021-12-04 07:37:57
【问题描述】:

因此,如果我对多个治疗组和一个对照组进行实验,我会使用 Statsmodel ols 分析结果,看看是否有任何治疗组与对照组有统计学差异:

y ~ C(treatment_group, Treatment('Control')

然后我会运行 results.t_test_pairwise() 来确定每个治疗组的系数是否相等。 IE。了解每个治疗组的结果是否在统计学上显着不同。

在当前情况下,我不只是运行标准 ols,而是使用 Statsmodel/Linearmodel 的 2SLS 来分析工具变量。我可以完美地运行分析,并得到结果。但是现在我需要看看不同仪器(三个不同治疗组)的系数是否相同,所以我知道不同治疗组的效果是否不同。

statsmodel 代码:

from statsmodels.sandbox.regression.gmm import IV2SLS as SM2SLS
model = SM2SLS(tdf[endog],tdf['elect_lpd'],tdf[inst]).fit()

或者对于线性模型:

model = LM2SLS(tdf.elect_lpd, tdf[controls], tdf[endog], tdf[inst]).fit(cov_type='clustered')

Josef 的response here,建议您可以使用 wald t 检验,但我需要使用限制矩阵而不是公式。因此,如果有人对如何做到这一点有任何想法,将不胜感激。

【问题讨论】:

    标签: python statsmodels linearmodels


    【解决方案1】:

    如果其他人对此感到困惑......我在使用线性模型时找到了解决方案。

    所以在运行模型之后:

    model = LM2SLS(tdf.elect_lpd, tdf[controls], tdf[endog], tdf[inst]).fit(cov_type='clustered')
    

    然后您可以运行 wald 测试来比较每个治疗组之间的差异。就我而言,我有两个治疗组(sbs 和wing):

    test.wald_test(formula = ['endog_sbs = endog_wing'])
    

    【讨论】:

      猜你喜欢
      • 2016-10-02
      • 2018-08-02
      • 1970-01-01
      • 2020-10-30
      • 2011-12-24
      • 2010-11-28
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多