3.5 モデルの当てはめ

ロジスティック回帰モデルの当てはめは,glm関数を利用することで実行できる. 利用方法はlm関数とほぼ同じである. モデルを当てはめる前に前処理としてそれぞれの変数を標準化しておこう.

library(tidyverse)を実行済みであれば,Diagnosis以外の全ての変数を標準化する処理は以下のように書ける.

scaled_df <- df %>% 
  mutate(across(.cols=-Diagnosis, scale))

標準化済みのデータを利用して,ロジスティック回帰モデルを学習しよう.

fit <- glm(Diagnosis ~ Radius_mean + Smoothness_mean, data=scaled_df, family=binomial)

以上のコードを実行してエラーが発生しなければ実行完了である. 推定された結果を確認しよう.

summary(fit)
## 
## Call:
## glm(formula = Diagnosis ~ Radius_mean + Smoothness_mean, family = binomial, 
##     data = scaled_df)
## 
## Coefficients:
##                 Estimate Std. Error z value Pr(>|z|)    
## (Intercept)      -0.7925     0.1679  -4.720 2.35e-06 ***
## Radius_mean       4.2771     0.4113  10.398  < 2e-16 ***
## Smoothness_mean   1.4395     0.1905   7.558 4.09e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 751.44  on 568  degrees of freedom
## Residual deviance: 250.90  on 566  degrees of freedom
## AIC: 256.9
## 
## Number of Fisher Scoring iterations: 7
x <- df$Radius_mean
y <- df$Diagnosis
plot(x=x, y=y, xlab="Radius_mean", ylab="Diagnosis")
points(x[order(x)], fitted(fit)[order(x)], type="l")