あれもPython,これもPython

Pythonメモ※本サイトはアフィリエイトを利用しています

Pythonでフォーミュラを用いてGLMしたい(statsmodels.formulaを使う)

Rでモデルを作る時に使うフォーミュラのstatsmodels版です。 しょっちゅう、書き方を忘れるので、、、

基本

importします。
まず何をimportするのかを忘れます、、、

#たいてい.apiをつけ忘れる
import statsmodels.formula.api as smf

#こっちも使うんだけど忘れる
import statsmodels.api as sm

モデルの作成

mdl = smf.glm(
    フォーミュラ式,
    data,
    familiy = sm...#ここでsmが必要になる
).fit()

mdl.summary()
#予測の仕方に時々自信をもてない
mdl.predict(data2)

familyの整理

名称 family
ポアソン sm.families.Poisson()
ロジスティック(二項) sm.families.Binomial()
ガンマ sm.families.Gamma()
ガウス sm.families.Gaussian()

リンク関数の指定

デフォルト以外のものを使いたい時
sm.families.Binomial()などにパラメータとしてわたす。

例えばsm.families.Binomial(link=sm.families.links.logit)sm.families.Gaussian(sm.families.links.log)のように

おまけ

sm.add_constant(data)するのも忘れがち