J'ai inclus un exemple de jeu de données juste pour montrer ce que j'essaie de faire.Ajout de la ligne de prévision de glm à ggplot2, plus grande que l'ensemble de données d'origine
Speed <- c(400,220,490,210,500,270,200,470,480,310,240,490,420,330,280,210,300,470,230,430,460,220,250,200,390)
Hit <- c(0,1,0,1,0,0,1,0,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1,0)
obs <- c(1:25)
msl2.data <- as.data.frame(cbind(obs,Hit,Speed))
msl2.glm <- glm(Hit ~ Speed, data = msl2.data, family = binomial)
Faire ce que je veux dans le paquet de base.
plot(Hit~ Speed, data = msl2.data, xlim = c(0,700), xlab = "Speed", ylab = "Hit", main = "Plot of hit vs Speed")
pi.hat<-(predict(msl2.glm, data.frame(Speed=c(0:700)), type="response"))
lines(0:700, pi.hat, col="blue")
J'essaie de recréer l'intrigue ci-dessus, mais dans ggplot
. L'erreur que j'ai été incapable de contourner est la aes(x,y)
ont des longueurs différentes, ce qui est vrai, mais je veux qu'ils aient des longueurs différentes.
Des idées pour cela dans gg?
Vous devez utiliser deux instructions 'data =' différentes: créer une base de données pour les prédictions, et passer à 'geom_line', et utiliser' data = msl2.data' dans 'geom_point': changer le' x' et "y" dans le 'aes 'selon les besoins. Ou fais tout ce que je ggplot 'ggplot (dat = msl2.data, aes (vitesse, Hit)) + geom_point() + geom_smooth (méthode =" glm ", méthode.args = liste (family =" binomial "), fullrange = T, se = F) + xlim (0, 700) 'Notez que vous avez besoin de' fulrange' et 'xlim' pour étendre le tracé – user20650
Parfait! Merci beaucoup, ça me rendait fou! –