Meiner Meinung nach eignet sich das von Ihnen beschriebene Modell nicht wirklich zum Plotten, da Plots am besten funktionieren, wenn sie komplexe Informationen enthalten, die ansonsten schwer zu verstehen sind (z. B. komplexe Interaktionen). Wenn Sie jedoch eine grafische Darstellung der Beziehungen in Ihrem Modell anzeigen möchten, haben Sie zwei Hauptoptionen:
- Zeigen Sie eine Reihe von Diagrammen der bivariaten Beziehungen zwischen jedem Ihrer interessierenden Prädiktoren und Ihrem Ergebnis mit einem Streudiagramm der Rohdatenpunkte an. Zeichnen Sie Fehlerumschläge um Ihre Linien.
- Zeigen Sie den Plot von Option 1 an, aber anstatt die Rohdatenpunkte anzuzeigen, zeigen Sie die Datenpunkte mit Ihren anderen Prädiktoren an, die an den Rand gedrängt wurden (dh nachdem Sie die Beiträge der anderen Prädiktoren abgezogen haben).
Der Vorteil von Option 1 besteht darin, dass der Betrachter die Streuung in den Rohdaten beurteilen kann. Der Vorteil von Option 2 besteht darin, dass der Fehler auf Beobachtungsebene angezeigt wird, der tatsächlich zum Standardfehler des von Ihnen angezeigten Fokuskoeffizienten geführt hat.
Ich habe unten einen R-Code und eine Grafik für jede Option eingefügt, wobei Daten aus dem Prestige
Datensatz in dem car
Paket in R verwendet wurden.
## 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