Làm cách nào để xác định ma trận tương phản (tính bằng R) cho sự khác biệt giữa một cấp và trung bình của các cấp khác?


9

Tôi có mô hình hồi quy giống như sau:

Y= =β0+β1X1+β2X2+β3X3+β12X1X2+β13X1X3+β123X1X2X3

... 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:X1X2X3X1X1một,X1b,X1c

  • 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à .X1mộtX1bX1c
  • 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à .X2X1mộtX1bX1c
  • Độ 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à .X3X1mộtX1bX1c

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β1betmột1X1bX1cX3= =0X2X1một

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:

  1. 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.
  2. 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ì
  3. Đ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.
  4. Chuyển ma trận bằng t()hàm.
  5. Sử dụng ginv()từ MASSgói hoặc solve()để có được nghịch đảo của ma trận chuyển.
  6. 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.
  7. 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.
  8. 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
  9. 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ải glht, doByhoặc contrasts.

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.

Câu trả lời:


5

(0,1,-1)

Cái mà R gọi là mã hóa helmert, cái này gọi là 'Helmert ngược'. Chúng tương đương với một sự thay đổi của thứ tự biến.


Có nên "tương đương với thay đổi thứ tự biến" nên "được đảo ngược thứ tự các cấp" không? Vì vậy, để có được loại helmert của SAS / SPSS (so với mức trung bình của các mức còn lại), người ta sẽ phải đảo ngược thứ tự các cấp của yếu tố liên quan hoặc rev () mỗi cột sau đó rev () mỗi hàng của ma trận trở về bởi contra.helmert?
tim

@tim "thay đổi thứ tự biến" không có nghĩa là " bất kỳ thay đổi nào của thứ tự biến", nhưng hoàn toàn theo nghĩa đen một sự thay đổi của thứ tự biến (nghĩa là, một đặc biệt).
Glen_b -Reinstate Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.