Những cách khác nhau để viết các điều khoản tương tác trong lm?


42

Tôi có một câu hỏi về cách nào là tốt nhất để xác định một tương tác trong mô hình hồi quy. Hãy xem xét các dữ liệu sau:

d <- structure(list(r = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
     1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("r1","r2"),
     class = "factor"), s = structure(c(1L, 1L, 1L, 1L, 1L, 
     2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L), 
    .Label = c("s1","s2"), class = "factor"), rs = structure(c(1L, 1L,
     1L,1L, 1L,2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L),
    .Label = c("r1s1","r1s2", "r2s1", "r2s2"), class = "factor"), 
     y = c(19.3788027518437, 23.832287726332, 26.2533235300492,
     15.962906892112, 24.2873740664331, 28.5181676764727, 25.2757801195961,
     25.3601044326474, 25.3066440027202, 24.3298865128677, 32.5684219007394,
     31.0048406654209, 31.671238316086, 34.1933764518288, 36.8784821769123,
     41.6691435168277, 40.4669714825801, 39.2664137501106, 39.4884849591932,
     49.247505535468)), .Names = c("r","s", "rs", "y"), 
     row.names = c(NA, -20L), class = "data.frame")

Hai cách tương đương để chỉ định mô hình có tương tác là:

lm0 <- lm(y ~ r*s, data=d)
lm1 <- lm(y ~ r + s + r:s, data=d)

Câu hỏi của tôi là nếu tôi có thể chỉ định tương tác xem xét một biến mới (rs) có cùng mức độ tương tác:

lm2 <- lm(y ~ r + s + rs, data=d)

Những lợi thế / bất lợi có cách tiếp cận này? Và tại sao kết quả từ hai phương pháp này lại khác nhau?

summary(lm1)

lm(formula = y ~ r + s + r:s, data = d, x = TRUE)
            coef.est coef.se
(Intercept) 21.94     1.46  
rr2         11.32     2.07  
ss2          3.82     2.07  
rr2:ss2      4.95     2.92  
---
n = 20, k = 4
residual sd = 3.27, R-Squared = 0.87


summary(lm2)

lm(formula = y ~ r + s + rs, data = d, x = TRUE)
            coef.est coef.se
(Intercept) 21.94     1.46  
rr2         11.32     2.07  
ss2          8.76     2.07   # ss2 coef is different from lm1
rsr1s2      -4.95     2.92  
---
n = 20, k = 4
residual sd = 3.27, R-Squared = 0.87

Bạn có nghĩa rslà được định nghĩa là interaction(r, s)?
chl

Có lẽ bạn có thể chỉ cho chúng tôi mã đã tạo rsr1s2?
jbowman

Hệ số rs được xác định thủ công (chỉ cần dán các yếu tố r và s). Xem tập dữ liệu.
Manuel Ramón

1
Tôi đoán có liên quan đến cách các biến được liên quan nhìn thấy attr(terms(lm1),"factors")attr(terms(lm2),"factors")
Galled

Câu trả lời:


8

Kết quả khác nhau vì cách lm thiết lập mô hình với sự tương tác khác với cách thiết lập mô hình khi bạn tự thiết lập mô hình. Nếu bạn nhìn vào sd dư, nó giống nhau, điều này cho biết (không dứt khoát) rằng các mô hình cơ bản là giống nhau, chỉ được thể hiện (với các phần tử lm) khác nhau.

Nếu bạn xác định tương tác của mình paste(d$s, d$r)thay vì paste(d$r, d$s)ước tính tham số của bạn sẽ thay đổi lại, theo những cách thú vị.

Lưu ý cách tóm tắt mô hình của bạn cho lm1, ước tính hệ số cho ss2 thấp hơn 4,94 so với tóm tắt cho lm2, với hệ số cho rr2: ss2 là 4,95 (nếu bạn in đến 3 chữ số thập phân, sự khác biệt sẽ biến mất). Đây là một dấu hiệu khác cho thấy sự sắp xếp lại nội bộ của các điều khoản đã xảy ra.

Tôi không thể nghĩ ra bất kỳ lợi thế nào khi tự mình thực hiện, nhưng có thể có một mô hình phức tạp hơn mà bạn không muốn có một thuật ngữ tương tác đầy đủ mà thay vào đó chỉ là một số thuật ngữ trong "giao thoa" giữa hai hoặc nhiều yếu tố.


Ưu điểm duy nhất tôi thấy để xác định các tương tác như trong lm2 là dễ dàng thực hiện nhiều so sánh cho thuật ngữ tương tác. Điều tôi không hiểu lắm là tại sao lại thu được các kết quả khác nhau nếu về nguyên tắc, có vẻ như 2 cách tiếp cận giống nhau.
Manuel Ramón

5
Các cách tiếp cận là như nhau, nhưng các tham số chính xác của mô hình được ước tính là khác nhau, do đó kết quả xuất hiện khác nhau. Hãy xem xét một mô hình có hai biến hồi quy nhị phân và tương tác. Bạn có bốn loại, nhưng bạn có thể viết mô hình theo nhiều cách khác nhau, ví dụ: đặt 1 là một số hạng không đổi, với các biến hoặc hoặc các loại khác. Các biến chỉ là kết hợp tuyến tính của nhau. Các ước tính hệ số sẽ khác nhau, nhưng mô hình thực sự giống nhau.x1,x2(1,x1,x2,x1x2)(x1,x2,x1x2,(1x1)(1x2)
jbowman

Do đó, mặc dù khác nhau, cả hai cách tiếp cận đều đúng, phải không?
Manuel Ramón

Đúng. Về mặt toán học, ma trận của các biến độc lập trong các công thức khác nhau chỉ là các biến đổi tuyến tính của nhau, do đó, ước tính tham số của một mô hình có thể được tính từ các ước tính tham số của mô hình khác nếu người ta biết cách hai mô hình thực sự được thiết lập.
jbowman

9

Bạn có thể hiểu hành vi này tốt hơn nếu bạn nhìn vào ma trận mô hình.

 model.matrix(lm1 <- lm(y ~ r*s, data=d))
 model.matrix(lm2 <- lm(y ~ r + s + rs, data=d))

Khi bạn nhìn vào các ma trận này, bạn có thể so sánh các chòm sao s2=1với các biến khác (nghĩa là khi nào s2=1, giá trị nào mà các biến khác thực hiện?). Bạn sẽ thấy rằng các chòm sao này hơi khác nhau, điều đó chỉ có nghĩa là danh mục cơ sở là khác nhau. Tất cả mọi thứ khác về bản chất là như nhau. Cụ thể, lưu ý rằng trong của bạn lm1, hệ số trên ss2bằng các hệ số ss2+rsr1s2của lm2, tức là 3,82 = 8,76-4,95, thiếu các lỗi làm tròn.

Chẳng hạn, việc thực thi đoạn mã sau cung cấp cho bạn chính xác đầu ra giống như sử dụng cài đặt tự động của R:

  d$rs <- relevel(d$rs, "r1s1")
  summary(lm1 <- lm(y~ factor(r) + factor(s) + factor(rs), data=d))

Điều này cũng cung cấp một câu trả lời nhanh cho câu hỏi của bạn: lý do thực sự duy nhất để thay đổi cách các yếu tố được thiết lập là để cung cấp sự rõ ràng về tiếp xúc. Xem xét ví dụ sau: Giả sử bạn hồi quy tiền lương cho một hình nộm khi hoàn thành trung học tương tác với một yếu tố cho biết bạn có thuộc thiểu số hay không.

Đó là:wage=α+β edu+γ eduminority+ϵ

Nếu nói yếu tố thiểu số lấy giá trị 1 nếu bạn thuộc về thiểu số, hệ số có thể được hiểu là chênh lệch lương đối với các cá nhân không thiểu số đã hoàn thành trung học. Nếu đây là hệ số quan tâm của bạn, thì bạn nên mã hóa nó như vậy. Mặt khác, giả sử yếu tố thiểu số lấy giá trị là 1 nếu bạn không thuộc về thiểu số. Sau đó, để xem các cá nhân không thiểu số kiếm được bao nhiêu khi họ hoàn thành trung học, bạn sẽ phải "tính toán" thủ công . Mặc dù vậy, lưu ý rằng tất cả thông tin được chứa trong các ước tính và kết quả đáng kể không thay đổi bằng cách thiết lập các yếu tố khác nhau!beta + γββ+γ

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.