2017-02-21 4 views
0

В следующем примере я следую следующему link, в котором мы изучаем основы создания модели регрессии журнала.Модели с несколькими журнальными регрессиями ggplot2

data(mtcars) 
dat <- subset(mtcars, select=c(mpg, am, vs)) 
logr_vm <- glm(vs ~ mpg, data=dat, family=binomial) 
library(ggplot2) 
ggplot(dat, aes(x=mpg, y=vs)) + geom_point() + 
    stat_smooth(method="glm", method.args=list(family="binomial"), se=T) + 
    theme_bw() 

Теперь я хочу, чтобы создать вторую модель журнала, где мы предсказываем новый исход vs2. Как я могу использовать ggplot2, чтобы показать две модели разных цветов?

dat$vs2 <- with(dat, ifelse(mpg > 20, 1, vs)) 

так, что вторичная модель журнала ....

logr_vm2 <- glm(vs2 ~ mpg, data=dat, family=binomial) 

ответ

3

При установке моделей с самой ggplot, и у вас есть только несколько моделей, вы можете легко добавить легенду вручную отображения название модели для цветов внутри aes. Затем остальное позаботится.

Addionally, я использую geom_count вместо geom_point, чтобы показать, что у нас есть пересекающиеся значения здесь, а также добавить некоторые цвета, чтобы показать свои различные категории:

ggplot(dat, aes(x = mpg)) + 
    geom_count(aes(y = vs, col = mpg > 20), alpha = 0.3) + 
    stat_smooth(aes(y = vs, fill = 'm1'), col = 'black', 
       method = "glm", method.args = list(family = "binomial")) + 
    stat_smooth(aes(y = vs2, fill = 'm2'), col = 'black', 
       method = "glm", method.args = list(family = "binomial")) + 
    scale_size_area() + 
    scale_color_discrete(h.start = 90) + 
    theme_bw() 

enter image description here

+1

Отличная работа, спасибо за решение! – lukeg