Dans R, j'ajuste un GLM (logit) sur des données de niveau individuel avec une variable dépendante binominal. Cependant, je voudrais tracer l'ajustement sur un niveau agrégé (c'est-à-dire avec le% de succès sur l'axe des ordonnées). Quel serait le moyen le plus simple de tracer à la fois la dispersion des données réalisées (agrégat) et la droite de régression? J'ai déjà essayé ggplot avec stat_smooth() mais si je fais la dispersion au niveau agrégé, le glm sera également ajusté à ce niveau agrégé.Tracer le glm-fit de niveau individuel au niveau agrégé dans R
library(datasets)
data(mtcars)
fit <- glm(vs ~ mpg + cyl + mpg:cyl + disp + drat, family=binomial(link='logit'), data=mtcars)
mtcars_agg <- mtcars %>%
group_by(carb) %>%
summarise_each(funs(mean))
form <- formula("mtcars$vs ~ mtcars$mpg + mtcars$cyl + mtcars$mpg:mtcars$cyl + mtcars$disp + mtcars$drat")
ggplot(mtcars_agg, aes(x=mpg, y=vs)) + geom_point() +
stat_smooth(data=mtcars, method="glm", formula = form, method.args=list(family="binomial"), se=FALSE)
Est-ce que quelqu'un sait comment faire face à cela? Si je ne spécifie pas la formule dans l'appel stat_smooth, il y a deux choses qui ne sont pas comme je voudrais le voir:
- Il faut juste
y ~ x
comme formule. Cependant, j'aimerais aussi inclure des variables d'interaction. - J'aimerais intégrer des données de niveau individuel, pas des données agrégées.
Sans préciser la formule, l'intrigue ressemble à ceci:
Tout d'abord, pouvez-vous fournir tout exemple de la parcelle dont vous avez besoin? Deuxièmement, pourquoi dans votre 'ggplot' _carb_ est la variable indépendante tandis que dans votre' glm() '_carb_ n'est pas inclus en tant que variable? – MikolajM
dans le 'ggplot' le x aurait dû être _mpg_, l'ai édité maintenant. En outre, j'ai inséré le graphique dont j'ai besoin, bien que ce graphique soit basé sur y ~ x, alors que je voudrais spécifier plus de riskdrivers que juste x. – Z117
Je pense que dans 'stat_summary()' vous ne pouvez spécifier qu'un prédicteur/un seul x. De plus, si vous voulez visualiser l'équation de votre glm, où vous avez 5 prédicteurs différents, alors vous devez avoir une intrigue en 5 dimensions, ce qui est impossible. Ma solution serait d'utiliser 'predict()' pour prédire les valeurs _vs_ pour différents _mpg_, alors que les autres variables sont constantes – MikolajM