また、ユースケースに最も適したスケールを検討してください。ロジスティック回帰でモデリングする目的で目視検査を行っており、連続予測子を視覚化して、モデルにスプライン項または多項式項を追加する必要があるかどうかを判断するとします。この場合、確率/比率ではなく対数オッズのスケールが必要な場合があります。
以下の要点の関数は、いくつかの限定されたヒューリスティックを使用して、連続予測子をビンに分割し、平均比率を計算し、対数オッズに変換してから、geom_smooth
これらの集約ポイントをプロットします。
共変量がバイナリターゲットの対数オッズと二次関係(+ノイズ)を持っている場合のこのチャートの例:
devtools::source_gist("https://gist.github.com/brshallo/3ccb8e12a3519b05ec41ca93500aa4b3")
# simulated dataset with quadratic relationship between x and y
set.seed(12)
samp_size <- 1000
simulated_df <- tibble(x = rlogis(samp_size),
y_odds = 0.2*x^2,
y_probs = exp(y_odds)/(1 + exp(y_odds))) %>%
mutate(y = rbinom(samp_size, 1, prob = y_probs))
# looking at on balanced dataset
simulated_df_balanced <- simulated_df %>%
group_by(y) %>%
sample_n(table(simulated_df$y) %>% min())
ggplot_continuous_binary(df = simulated_df,
covariate = x,
response = y,
snip_scales = TRUE)
#> [1] "bin size: 18"
#> `geom_smooth()` using method = 'loess' and formula 'y ~ x'
reprexパッケージ(v0.2.1)によって2019-02-06に作成されました
比較のために、1と0をプロットしてaを追加した場合の2次関係は次のようになりますgeom_smooth
。
simulated_df %>%
ggplot(aes(x, y))+
geom_smooth()+
geom_jitter(height = 0.01, width = 0)+
coord_cartesian(ylim = c(0, 1), xlim = c(-3.76, 3.59))
# set xlim to be generally consistent with prior chart
#> `geom_smooth()` using method = 'gam' and formula 'y ~ s(x, bs = "cs")'
reprexパッケージ(v0.2.1)によって2019-02-25に作成されました
ロジットとの関係は明確ではなく、使用にgeom_smooth
はいくつかの問題があります。