Python Statsmodels Mixedlm(混合线性模型)随机效应

2023-11-26

我对 Statsmodels Mixedlm 的输出有点困惑,希望有人能解释一下。

我有一个大的单户住宅数据集,包括每个房产的前两次销售价格/销售日期。我已经对整个数据集进行了地理编码,并获取了每个属性的海拔。我试图了解不同城市之间海拔与房价升值之间的关系有何不同。

我使用 statsmodels 混合线性模型来回归海拔上的价格升值,保持许多其他因素不变,并将城市作为我的组类别。

md = smf.mixedlm('price_relative_ind~Elevation+YearBuilt+Sale_Amount_1+LivingSqFt',data=Miami_SF,groups=Miami_SF['City'])

mdf = md.fit()

mdf.random_effects

输入 mdf.random_effects 返回系数列表。我是否可以将此列表本质上解释为每个单独城市的斜率(即,与海拔与销售价格升值相关的单独回归系数)?或者这些结果是每个城市的截距?


我目前正在尝试了解 MixedLM 中的随机效果。看着the docs,似乎只使用groups参数,无exog_re or 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对于 MixedLM 的公式版本
  • Docs对于 MixedLM 的结果
  • ThisJupyter 笔记本,包含使用 MixedLM (Python) 的示例
  • 斯坦福教程混合模型 (R)
  • Tutorial关于固定效应和随机效应 (R)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Statsmodels Mixedlm(混合线性模型)随机效应 的相关文章

随机推荐