Tôi có mô hình hồi quy giống như sau:
... hoặc trong ký hiệu R: y ~ x1 + x2 + x3 + x1:x2 + x1:x3 + x1:x2:x3
Giả sử và là các biến phân loại và là số. Sự phức tạp là có ba cấp độ và thay vì độ tương phản tiêu chuẩn, tôi cần kiểm tra:
- Việc chặn cho cấp có khác biệt đáng kể so với mức chặn trung bình cho các cấp và .
- Liệu phản hồi của có khác biệt đáng kể giữa cấp và trung bình của các cấp và .
- Độ dốc của có khác biệt đáng kể giữa cấp và trung bình của các cấp và .
Dựa trên bài đăng này, có vẻ như ma trận tôi muốn là ...
2
-1
-1
Vì vậy, tôi làm contrasts(mydata$x1)<-t(ginv(cbind(2,-1,-1)))
. Ước tính thay đổi, nhưng những người khác cũng vậy. Tôi có thể sao chép ước tính mới về bằng cách trừ đi các giá trị dự đoán của nhóm và (khi và ở mức tham chiếu của nó) từ hai lần giá trị của ở các mức đó. Nhưng tôi không thể tin tưởng rằng tôi đã chỉ định chính xác ma trận tương phản của mình trừ khi tôi cũng có thể rút ra các hệ số khác tương tự. b e t a 1 X 1 b X 1 c X 3 = 0 X 2 X 1 a
Có ai có lời khuyên nào cho việc quấn đầu tôi xung quanh mối quan hệ giữa phương tiện tế bào và sự tương phản không? Cảm ơn. Có một tên tiêu chuẩn cho loại tương phản này?
Aha! Theo liên kết được đăng trong câu trả lời của Glen_b , điểm mấu chốt là, bạn có thể chuyển đổi bất kỳ so sánh nhóm nào có nghĩa là bạn muốn thành thuộc tính tương phản kiểu R như sau:
- Tạo ma trận vuông. Các hàng đại diện cho các cấp của yếu tố của bạn và các cột thể hiện sự tương phản. Ngoại trừ cái đầu tiên, cho biết mô hình những gì phần chặn nên thể hiện.
- Nếu bạn muốn đánh chặn của bạn là trung bình lớn, hãy điền vào cột đầu tiên với tất cả cùng một giá trị khác không, không thành vấn đề. Nếu bạn muốn đánh chặn là một trong những phương tiện cấp độ, hãy đặt một số trong hàng đó và điền vào phần còn lại bằng số không. Nếu bạn muốn đánh chặn là giá trị trung bình của một số cấp, hãy đặt các số trong các hàng và số không trong các phần còn lại. Nếu bạn muốn nó là một trung bình có trọng số, hãy sử dụng các số khác nhau, nếu không thì sử dụng cùng một số. Bạn thậm chí có thể đặt các giá trị âm trong cột chặn và điều đó cũng có nghĩa là một cái gì đó, nhưng nó hoàn toàn thay đổi các tương phản khác, vì vậy tôi không biết đó là vì cái gì
- Điền vào các cột còn lại với các giá trị dương và âm cho biết mức độ bạn muốn so với các mức khác. Tôi quên tại sao tổng bằng 0 là quan trọng, nhưng điều chỉnh các giá trị sao cho các cột tổng thành 0.
- Chuyển ma trận bằng
t()
hàm. - Sử dụng
ginv()
từMASS
gói hoặcsolve()
để có được nghịch đảo của ma trận chuyển. - Thả cột đầu tiên, ví dụ
mycontrast<-mycontrast[,-1]
. Bây giờ bạn có ma trận apx p-1, nhưng thông tin bạn đưa vào để đánh chặn đã được mã hóa trong toàn bộ ma trận trong bước 5. - Nếu bạn muốn nhãn trong đầu ra tóm tắt dễ đọc hơn
lm()
đầu ra mặc định của cộng sự, hãy đặt tên cho các cột ma trận của bạn tương ứng. Việc chặn sẽ luôn tự động được đặt tên(Intercept)
tuy nhiên. - Làm cho ma trận của bạn trở thành sự tương phản mới cho yếu tố trong câu hỏi, ví dụ
contrasts(mydata$myfactor)<-mymatrix
- Run
lm()
(và có lẽ nhiều chức năng khác sử dụng công thức) như bình thường trong tiêu chuẩn R mà không cần phải tảiglht
,doBy
hoặccontrasts
.
Glen_b, cảm ơn bạn, và cảm ơn Nhóm tư vấn thống kê UCLA. Số liệu thống kê được áp dụng của tôi đã dành vài ngày để viết về chủ đề này và tôi vẫn không biết làm thế nào để thực sự viết ma trận tương phản của riêng mình. Và bây giờ, một giờ đọc và chơi với R, và cuối cùng tôi nghĩ rằng tôi đã nhận được nó. Đoán tôi nên đã áp dụng cho UCLA thay thế. Hoặc Đại học StackExchange.
contra.helmert
?