还要考虑哪些比例最适合您的用例。假设您出于逻辑回归建模的目的进行目视检查,并且想要可视化连续预测变量以确定您是否需要向模型添加样条或多项式项。在这种情况下,您可能需要对数赔率而不是概率/比例。
以下要点处的函数使用一些有限的启发式方法将连续预测器拆分为箱,计算平均比例,转换为对数赔率,然后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 年 2 月 6 日创建
为了比较,如果您只是绘制 1/0 并添加一个 ,那么二次关系会是什么样子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 年 2 月 25 日创建
与 logit 的关系不太清楚,使用geom_smooth
有一些问题。