À mon avis, le modèle que vous avez décrit ne se prête pas vraiment au tracé, car les tracés fonctionnent mieux lorsqu'ils affichent des informations complexes qui sont difficiles à comprendre autrement (par exemple, des interactions complexes). Cependant, si vous souhaitez afficher un tracé des relations dans votre modèle, vous avez deux options principales:
- Affichez une série de graphiques des relations bivariées entre chacun de vos prédicteurs d'intérêt et votre résultat, avec un nuage de points des points de données bruts. Tracez des enveloppes d'erreur autour de vos lignes.
- Affichez le tracé de l'option 1, mais au lieu d'afficher les points de données bruts, affichez les points de données avec vos autres prédicteurs marginalisés (c'est-à-dire après avoir soustrait les contributions des autres prédicteurs)
L'avantage de l'option 1 est qu'elle permet au spectateur d'évaluer la dispersion des données brutes. L'avantage de l'option 2 est qu'elle montre l'erreur au niveau de l'observation qui a en fait entraîné l'erreur standard du coefficient focal que vous affichez.
J'ai inclus le code R et un graphique de chaque option ci-dessous, en utilisant les données de l' Prestige
ensemble de données dans le car
package en R.
## Raw data ##
mod <- lm(income ~ education + women, data = Prestige)
summary(mod)
# Create a scatterplot of education against income
plot(Prestige$education, Prestige$income, xlab = "Years of education",
ylab = "Occupational income", bty = "n", pch = 16, col = "grey")
# Create a dataframe representing the values on the predictors for which we
# want predictions
pX <- expand.grid(education = seq(min(Prestige$education), max(Prestige$education), by = .1),
women = mean(Prestige$women))
# Get predicted values
pY <- predict(mod, pX, se.fit = T)
lines(pX$education, pY$fit, lwd = 2) # Prediction line
lines(pX$education, pY$fit - pY$se.fit) # -1 SE
lines(pX$education, pY$fit + pY$se.fit) # +1 SE
## Adjusted (marginalized) data ##
mod <- lm(income ~ education + women, data = Prestige)
summary(mod)
# Calculate the values of income, marginalizing out the effect of percentage women
margin_income <- coef(mod)["(Intercept)"] + coef(mod)["education"] * Prestige$education +
coef(mod)["women"] * mean(Prestige$women) + residuals(mod)
# Create a scatterplot of education against income
plot(Prestige$education, margin_income, xlab = "Years of education",
ylab = "Adjusted income", bty = "n", pch = 16, col = "grey")
# Create a dataframe representing the values on the predictors for which we
# want predictions
pX <- expand.grid(education = seq(min(Prestige$education), max(Prestige$education), by = .1),
women = mean(Prestige$women))
# Get predicted values
pY <- predict(mod, pX, se.fit = T)
lines(pX$education, pY$fit, lwd = 2) # Prediction line
lines(pX$education, pY$fit - pY$se.fit) # -1 SE
lines(pX$education, pY$fit + pY$se.fit) # +1 SE