Trong nỗ lực giúp điền thẻ R vào đây, tôi đăng một số câu hỏi mà tôi thường nhận được từ sinh viên. Tôi đã phát triển câu trả lời của riêng mình cho những năm qua, nhưng có lẽ có những cách tốt hơn trôi nổi xung quanh mà tôi không biết.Cách tốt nhất để vẽ các hiệu ứng tương tác từ một mô hình tuyến tính
Câu hỏi đặt ra: Tôi chỉ cần chạy một hồi quy với liên tục y
và x
nhưng yếu tố f
(nơi levels(f)
sản xuất c("level1","level2")
)
thelm <- lm(y~x*f,data=thedata)
Bây giờ tôi muốn vẽ các giá trị dự đoán của y
bởi x
bị phá vỡ bởi các nhóm được xác định bởi f
. Tất cả các ô tôi nhận được đều xấu xí và hiển thị quá nhiều dòng.
Câu trả lời của tôi: Thử chức năng predict()
.
##restrict prediction to the valid data
##from the model by using thelm$model rather than thedata
thedata$yhat <- predict(thelm,
newdata=expand.grid(x=range(thelm$model$x),
f=levels(thelm$model$f)))
plot(yhat~x,data=thethedata,subset=f=="level1")
lines(yhat~x,data=thedata,subset=f=="level2")
Có những ý tưởng nào khác ngoài đó (1) dễ hiểu hơn đối với người mới và/hoặc (2) tốt hơn từ một viễn cảnh khác không?
Lưu ý rằng 'ggplot2' có hàm' fortify.lm' bổ sung dữ liệu với một số thống kê mô hình tuyến tính phù hợp – mnel