En mi opinión, el modelo que ha descrito realmente no se presta para trazar, ya que las tramas funcionan mejor cuando muestran información compleja que de otra manera es difícil de entender (por ejemplo, interacciones complejas). Sin embargo, si desea mostrar una gráfica de las relaciones en su modelo, tiene dos opciones principales:
- Muestre una serie de gráficos de las relaciones bivariadas entre cada uno de sus predictores de interés y su resultado, con un diagrama de dispersión de los puntos de datos sin procesar. Trazar sobres de error alrededor de sus líneas.
- Muestre el gráfico de la opción 1, pero en lugar de mostrar los puntos de datos sin procesar, muestre los puntos de datos con sus otros predictores marginados (es decir, después de restar las contribuciones de los otros predictores)
El beneficio de la opción 1 es que permite al espectador evaluar la dispersión en los datos sin procesar. El beneficio de la opción 2 es que muestra el error en el nivel de observación que en realidad resultó en el error estándar del coeficiente focal que está mostrando.
He incluido el código R y un gráfico de cada opción a continuación, usando datos del Prestige
conjunto de datos en el car
paquete 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