A mio avviso, il modello che hai descritto non si presta davvero alla stampa, poiché le trame funzionano meglio quando visualizzano informazioni complesse che sono difficili da capire altrimenti (ad esempio, interazioni complesse). Tuttavia, se desideri visualizzare un grafico delle relazioni nel tuo modello, hai due opzioni principali:
- Mostra una serie di grafici delle relazioni bivariate tra ciascuno dei tuoi predittori di interesse e il tuo risultato, con un diagramma a dispersione dei punti di dati grezzi. Traccia buste di errore attorno alle linee.
- Visualizza il grafico dall'opzione 1, ma invece di mostrare i punti dati grezzi, mostra i punti dati con gli altri predittori emarginati (ovvero, dopo aver sottratto i contributi degli altri predittori)
Il vantaggio dell'opzione 1 è che consente allo spettatore di valutare la dispersione nei dati grezzi. Il vantaggio dell'opzione 2 è che mostra l'errore a livello di osservazione che ha effettivamente provocato l'errore standard del coefficiente focale che si sta visualizzando.
Ho incluso il codice R e un grafico di ciascuna opzione di seguito, utilizzando i dati del Prestige
set di dati nel car
pacchetto in 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