Python Statsmodels Mixedlm (Mixed Linear Model) random effects

眉间皱痕 提交于 2019-12-01 06:46:04

I'm currently trying to get my head around random effects in MixedLM aswell. Looking at the docs, it seems as though using just the groups parameter, without exog_re or re_formula will simply add a random intercept to each group. An example from the docs:

# 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()

As such, you would expect the random_effects method to return the city's intercepts in this case, not the coefficients/slopes.

To add a random slope with respect to one of your other features, you can do something similar to this example from statsmodels' Jupyter tutorial, either with a slope and an intercept:

model = sm.MixedLM.from_formula(
    "Y ~ X", data, re_formula="X", groups=data["C"])

or with only the slope:

model = sm.MixedLM.from_formula(
    "Y ~ X", data, re_formula="0 + X", groups=data["C"])

Looking at the docs for random_effects, it says that it returns the mean for each groups's random effects. However, as the random effects are only due to the intercept, this should just be equal to the intercept itself.

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.

Some useful resources to look further at include:

  • Docs for the formula version of MixedML
  • Docs for the results of MixedML
  • This Jupyter notebook with examples for using MixedML (Python)
  • Stanford tutorial on mixed models (R)
  • Tutorial on fixed and random effects (R)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!