Description Usage Arguments Examples
This function allows you to calculate boundary/crossover point in logistic regression models.
1 | cross_over(mod, cont_pred, grouping_var = FALSE, int_adj, slope_adj)
|
mod |
A glm object |
cont_pred |
The continuous (x) predictor |
grouping_var |
(logical) Set to TRUE to include grouping var |
int_adj |
With grouping variable, include intercept adjustment |
slope_adj |
With grouping variable, include interaction (slope adjustment) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | # Generate data
set.seed(1)
vot = rnorm(20, 15, 5)
vot = sort(vot)
phon1 = c(0,1,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,1,1)
group1 = rep('g1', 20)
df1 = data.frame(vot = vot, phon = phon1, group = group1)
phon2 = c(1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1)
group2 = rep('g2', 20)
df2 = data.frame(vot = vot, phon = phon2, group = group2)
df <- rbind(df1, df2)
# Fit model
glm1 <- glm(phon ~ vot, data = df, family = "binomial")
glm2 <- glm(phon ~ vot * group, data = df, family = "binomial")
# Get crossover point
cross_over(mod = glm1, cont_pred = 'vot')
# Get crossover point of grouping variables
cross_over(mod = glm2, cont_pred = 'vot')
cross_over(mod = glm2, cont_pred = 'vot', grouping_var = TRUE,
int_adj = 'groupg2', slope_adj = 'vot:groupg2')
# Plot regression with crossover point
library(ggplot2)
ggplot(df, aes(x = vot, y = phon)) +
geom_smooth(method = 'glm', method.args = list(family = 'binomial')) +
geom_vline(xintercept = cross_over(mod = glm1, cont_pred = 'vot'))
ggplot(df, aes(x = vot, y = phon, color = group)) +
geom_smooth(method = 'glm', method.args = list(family = 'binomial'),
se = FALSE) +
geom_vline(xintercept = cross_over(mod = glm2, cont_pred = 'vot')) +
geom_vline(xintercept = cross_over(mod = glm2, cont_pred = 'vot',
grouping_var = TRUE,
int_adj = 'groupg2',
slope_adj = 'vot:groupg2'))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.