Menurut pendapat saya, model yang telah Anda gambarkan tidak benar-benar cocok untuk plot, karena plot berfungsi paling baik ketika mereka menampilkan informasi kompleks yang sulit untuk dipahami sebaliknya (misalnya, interaksi kompleks). Namun, jika Anda ingin menampilkan plot hubungan dalam model Anda, Anda punya dua opsi utama:
- Perlihatkan serangkaian plot hubungan bivariat antara masing-masing prediktor minat Anda dan hasil Anda, dengan sebar sebaran titik data mentah. Alur kesalahan amplop di sekitar garis Anda.
- Tampilkan plot dari opsi 1, tetapi alih-alih menunjukkan datapoints mentah, perlihatkan datapoints dengan prediktor Anda yang lain yang dimarginalkan (yaitu, setelah mengurangi kontribusi dari prediktor lain)
Manfaat opsi 1 adalah memungkinkan pemirsa untuk menilai sebaran dalam data mentah. Manfaat dari opsi 2 adalah bahwa ia menunjukkan kesalahan tingkat observasi yang sebenarnya menghasilkan kesalahan standar dari koefisien fokus yang Anda tampilkan.
Saya telah memasukkan kode R dan grafik dari setiap opsi di bawah ini, menggunakan data dari Prestige
dataset dalam car
paket di 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