Je voudrais utiliser geom_smooth
pour obtenir une ligne ajustée à partir d'un certain modèle de régression linéaire.
Il me semble que la formule ne peut que prendre x
y y
et non un paramètre supplémentaire.
Pour montrer plus clairement ce que je veux :
library(dplyr)
library(ggplot2)
set.seed(35413)
df <- data.frame(pred = runif(100,10,100),
factor = sample(c("A","B"), 100, replace = TRUE)) %>%
mutate(
outcome = 100 + 10*pred +
ifelse(factor=="B", 200, 0) +
ifelse(factor=="B", 4, 0)*pred +
rnorm(100,0,60))
Avec
ggplot(df, aes(x=pred, y=outcome, color=factor)) +
geom_point(aes(color=factor)) +
geom_smooth(method = "lm") +
theme_bw()
Je produis des lignes ajustées qui, en raison de la color=factor
sont essentiellement les résultats du modèle linéaire. lm(outcome ~ pred*factor, df)
Dans certains cas, cependant, je préfère que les lignes soient le résultat d'un ajustement de modèle différent, comme par exemple lm(outcome ~ pred + factor, df)
pour lequel je peux utiliser quelque chose comme :
fit <- lm(outcome ~ pred+factor, df)
predval <- expand.grid(
pred = seq(
min(df$pred), max(df$pred), length.out = 1000),
factor = unique(df$factor)) %>%
mutate(outcome = predict(fit, newdata = .))
ggplot(df, aes(x=pred, y=outcome, color=factor)) +
geom_point() +
geom_line(data = predval) +
theme_bw()
ce qui entraîne :
Ma question : existe-t-il un moyen de produire ce dernier graphique en exploitant le système de gestion de l'information de l'entreprise ? geom_smooth
à la place ? Je sais qu'il y a un formula =
- option dans geom_smooth
mais je ne peux pas faire quelque chose comme formula = y ~ x + factor
ou formula = y ~ x + color
(comme je l'ai défini color = factor
) travaillent.