Python によるポワソン回帰分析

statsmodels.formula.api.glm() コマンドでポワソン回帰分析を行う。一般化線形モデルとして行う。

Python を起動し、必要なライブラリを import する。

import pandas as pd
import statsmodels.formula.api as smf
import statsmodels.api as sm

通常は Excel 等で作成した CSV ファイルを pandas に読み込んで分析する。しかし、ここでは便宜的に以下の簡単なデータフレームを作成し、data という変数に格納しておく。

data = pd.DataFrame({"年":["X","X+1","X+2","X+3","X+4","X+5","X+6","X+7","X+8","X+9"], "重大インシデント数":[5,3,4,4,5,0,1,0,0,0], "残業80時間以上の医師数":[50,40,41,30,31,7,8,7,6,5], "タイムアウトの導入":["no","no","yes","yes","yes","yes","yes","yes","yes","yes"]})

data の内容を確認する。

data

statsmodels.formula.api.glm() コマンドでポワソン回帰分析を行う。リンク関数は対数関数が自動的に選択される。

result = smf.glm(formula = "重大インシデント数 ~ 残業80時間以上の医師数 + タイムアウトの導入", data = data, family = sm.families.Poisson()).fit()
result.summary() #結果の表示
result.aic #赤池情報量基準