我對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或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教程中執(zhí)行與此示例類似的操作,可以使用斜率和截距:
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)