12

Statsmodels Mixedlm の出力について少し混乱しており、誰かが説明してくれることを願っています。

各物件の過去 2 つの販売価格/販売日を含む、一戸建て住宅の大規模なデータセットがあります。このデータセット全体をジオコーディングし、各プロパティの標高を取得しました。標高と不動産価格の上昇の関係が都市によって異なる方法を理解しようとしています。

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 と入力すると、係数のリストが返されます。このリストは、本質的に、個々の都市の傾き (つまり、標高と販売価格の上昇を関連付ける個々の回帰係数) と解釈できますか? それとも、これらの結果は各都市の切片ですか?

4

2 に答える 2

18

私は現在、MixedLM のランダム効果についても頭を悩ませようとしています。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そのため、この場合、メソッドは係数/勾配ではなく、都市の切片を返すことが期待されます。

他の機能の 1 つに対してランダムな勾配を追加するには、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.

さらに調べると役立つリソースには、次のものがあります。

于 2017-12-01T13:36:14.000 に答える