SSブログ

【R】ロジスティック回帰をした後の混同行列の出し方 [データサイエンス、統計モデル]

統計の講師をしていて、なるほど!と思う質問を受けることがあります。
せっかくなので、その中からピックアップして紹介できればと思います。

【質問】
ロジスティック回帰をした後、確率(予測)は出せるのですが、混同行列の出し方がわかりません。

【回答】
# ロジスティック回帰モデルを作成
# model.1 <- glm(y ~ x1 + x2, data=dat)

# 予測確率
glm_predict <- predict(model.1, type = "response")

ここまでは、簡単に出せるかと思います。
type = "response"
のオプションは忘れがちなので注意が必要です。

z = b0 + b1*x1 + b2 *x2 + … + bn*xn + ε
y = 1/(1+exp(-z))
とした時に、
predict(model.1, type = "response")
は、y(確率)を計算します。

predict(model.1)
は、zの値となります。

# 予測確率を予測値に変換(確率を0,1に変換)
predict_result <- as.numeric(glm_predict >= 0.5)

# 混同行列
# y: 実際の値
# predict_result: 予測値
xtabs(~y+predict_result, data=dat)


こちらを使うことで、混同行列を計算することができます。
閾値として、0.5を設定しており、0.5以上だと1と予測し、0.5未満だと0と予測します。

nice!(3)  コメント(0) 
共通テーマ:学問

nice! 3

コメント 0