因此,如果我对多个治疗组和一个对照组进行实验,我会使用 Statsmodel ols 分析结果,看看是否有任何治疗组与对照组有统计学差异:
y ~ C(treatment_group, Treatment('控制')
然后我会运行 results.t_test_pairwise() 来确定每个治疗组的系数是否相等。即了解每个治疗组的结果是否在统计学上显着不同。
在当前情况下,我不只是运行标准 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's response here建议您可以使用 wald t 检验,但我需要使用限制矩阵而不是公式。因此,如果有人对如何做到这一点有任何想法,那将不胜感激。