Theo tôi, mô hình mà bạn mô tả không thực sự cho vay để vẽ đồ thị, vì các ô hoạt động tốt nhất khi chúng hiển thị thông tin phức tạp khó hiểu khác (ví dụ: tương tác phức tạp). Tuy nhiên, nếu bạn muốn hiển thị một chuỗi các mối quan hệ trong mô hình của mình, bạn có hai tùy chọn chính:
- Hiển thị một loạt các mối quan hệ bivariate giữa mỗi dự đoán về mối quan tâm của bạn và kết quả của bạn, với một biểu đồ phân tán các biểu dữ liệu thô. Vẽ phong bì lỗi xung quanh dòng của bạn.
- Hiển thị biểu đồ từ tùy chọn 1, nhưng thay vì hiển thị các biểu dữ liệu thô, hãy hiển thị các biểu dữ liệu với các dự đoán khác của bạn bị gạt ra ngoài (nghĩa là, sau khi trừ đi các đóng góp của các dự đoán khác)
Lợi ích của tùy chọn 1 là cho phép người xem đánh giá sự phân tán trong dữ liệu thô. Lợi ích của tùy chọn 2 là nó hiển thị lỗi cấp độ quan sát thực sự dẫn đến lỗi tiêu chuẩn của hệ số tiêu cự mà bạn đang hiển thị.
Tôi đã bao gồm mã R và biểu đồ của từng tùy chọn bên dưới, sử dụng dữ liệu từ Prestige
bộ dữ liệu trong car
gói trong 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