我目前正试图在MixedLM中了解随机效应.看看the docs,似乎只使用groups参数,没有exog_re或re_formula只会为每个组添加一个随机拦截.来自文档的一个例子:
# A basic mixed model with fixed effects for the columns of exog and a random intercept for each distinct value of group:
model = sm.MixedLM(endog, exog, groups)
result = model.fit()
因此,在这种情况下,您会期望random_effects方法返回城市的截距,而不是系数/斜率.
要为您的其他功能添加随机斜率,您可以从statsmodels的Jupyter教程中执行与此示例类似的操作,可以使用斜率和截距:
model = sm.MixedLM.from_formula(
"Y ~ X", data, re_formula="X", groups=data["C"])
或只有斜坡:
model = sm.MixedLM.from_formula(
"Y ~ X", data, re_formula="0 + X", groups=data["C"])
查看random_effects的文档,它表示它返回每个组的随机效果的均值.然而,由于随机效应仅仅是由于截距,这应该等于截距本身.
MixedLMResults.random_effects()[source]
The conditional means of random effects given the data.
Returns:
random_effects : dict
A dictionary mapping the distinct group values to the means of the random effects for the group.
一些有用的资源,包括:
> Docs为MixedML的公式版本
> Docs为MixedML的结果
> This Jupyter笔记本以及使用MixedML(Python)的示例
> Stanford tutorial混合型号(R)
> Tutorial关于固定和随机效应(R)