Tại sao một số ước tính hồi quy khác nhau bởi sự thay đổi dấu hiệu, nhưng một số khác thì không, khi tôi thay đổi mức tham chiếu?


8

Giả sử tôi có một kết quả liên tục yvà hai yếu tố dự đoán giai thừa, mỗi cấp độ có hai cấp độ. Một trong những dự đoán phân loại của tôi drug, có thể có hai cấp độ ("A" hoặc "B"), còn lại là smokeYes. Khi tôi chạy mô hình hồi quy, tôi có thể chọn mức cơ sở hoặc mức tham chiếu druglà "A", như tôi đã làm trong model1:

set.seed(123)
y<-rnorm(100, 100, 10)
drug.ab<-factor(sample(c("A", "B"), 100, T), levels=c("A", "B"))
drug.ba<-factor(drug.ab, levels=c("B", "A"))
smoke<-factor(sample(c("Yes", "No"), 100, T), levels=c("No", "Yes"))

#model1:
coef(summary(lm(y~drug.ab*smoke)))
                     Estimate Std. Error    t value     Pr(>|t|)
(Intercept)       100.7484158   2.065091 48.7864379 1.465848e-69
drug.abB            0.9030541   2.796146  0.3229639 7.474250e-01
smokeYes           -0.8693598   2.632484 -0.3302431 7.419359e-01
drug.abB:smokeYes   0.8709116   3.746684  0.2324487 8.166844e-01

Hoặc tôi có thể đặt đường cơ sở thành "B", như tôi đã làm trong model2:

#model2:
coef(summary(lm(y~drug.ba*smoke)))
                       Estimate Std. Error       t value     Pr(>|t|)
(Intercept)       101.651469922   1.885161 53.9218978856 1.377147e-73
drug.baA           -0.903054145   2.796146 -0.3229638818 7.474250e-01
smokeYes            0.001551843   2.666021  0.0005820821 9.995368e-01
drug.baA:smokeYes  -0.870911601   3.746684 -0.2324486531 8.166844e-01

Câu hỏi của tôi là tại sao ước tính cho smokeYeskhác nhau giữa model1model2? Tại sao nó không khác biệt bởi sự thay đổi dấu hiệu drug.baAvà thời hạn tương tác?


3
Hãy tìm một lời giải thích tốt về sự tương phản điều trị. Tóm lại, nếu bạn tính toán dự đoán cho thuốcB và khói thuốc: (mod1) 100,75 + 0,90 - 0,87 + 0,87 = 101,65 | (mod2) 101,65 + 0,00 = 101,65
Roland

Tôi nghĩ rằng đó là chủ đề được cho là của SO khi tôi thấy câu hỏi trùng lặp ở đó, vì có một dòng mã R rất đơn giản để tính toán tất cả các nhóm có nghĩa là : tapply( y, interaction( drug.ab, smoke) ,mean). Một lời giải thích mở rộng hơn có thể liên quan đến việc chứng minh sự khác biệt giữa tương phản điều trị và tương phản tổng.
DWin

@Dwin, ngay cả với hai câu trả lời đã được đăng, tôi nghĩ chắc chắn có chỗ cho câu trả lời khác giải quyết các vấn đề tương phản chính xác. Tôi hy vọng ai đó gửi một câu trả lời theo cách tiếp cận đó.
Cá bạc

Câu trả lời:


8

Hãy để tôi nêu ra một ví dụ đơn giản để bạn giải thích khái niệm này, sau đó chúng tôi có thể kiểm tra nó dựa trên các hệ số của bạn.

Lưu ý rằng bằng cách bao gồm cả biến giả "A / B" và thuật ngữ tương tác, bạn có thể tạo cho mô hình của mình sự linh hoạt để phù hợp với một phần chặn khác nhau (sử dụng hình nộm) và độ dốc (sử dụng tương tác) trên dữ liệu "A" và dữ liệu "B". Trong những gì tiếp theo, nó thực sự không quan trọng cho dù dự đoán là biến liên tục hay, như trong trường hợp của bạn, một biến giả khác. Nếu tôi nói theo nghĩa "chặn" và "độ dốc" của nó, thì điều này có thể được hiểu là "cấp độ khi hình nộm bằng 0" và "thay đổi cấp độ khi hình nộm thay đổi từ thành " nếu bạn thích.0 1x01

Giả sử mô hình được trang bị OLS trên dữ liệu "A" là và chỉ riêng trên dữ liệu "B" là . Dữ liệu có thể trông như thế này: y =11+7xy^= =12+5xy^= =11+7x

Phân tán âm mưu cho hai nhóm

Bây giờ, giả sử chúng ta lấy "A" làm mức tham chiếu của mình và sử dụng biến giả để sao cho cho các quan sát trong nhóm B nhưng trong nhóm A. Mô hình được trang bị trên toàn bộ dữ liệu làb = 1 b = 0bb= =1b= =0

y^Tôi= =β^0+β^1xTôi+β^2bTôi+β^3xTôibTôi

Để quan sát trong nhóm A, chúng tôi có và chúng tôi có thể giảm thiểu tổng số dư bình phương của họ bằng cách đặt và . Đối với dữ liệu nhóm B, và chúng tôi có thể giảm thiểu tổng số dư bình phương của họ bằng cách lấy và . Rõ ràng là chúng ta có thể giảm thiểu tổng số dư bình phương trong hồi quy tổng thể bằng cách giảm thiểu các khoản tiền cho cả hai nhóm và điều này có thể đạt được bằng cách đặt và (từ Nhóm A) vày^Tôi= =β^0+β^1xTôiβ^0= =12β^1= =5y^Tôi= =(β^0+β^2)+(β^1+β^3)xTôiβ^0+β^2= =11β^1+β^3= =7β^0= =12β^1= =5β^2= =-1 và (vì dữ liệu "B" nên có một phần chặn thấp hơn và độ dốc cao hơn hai). Quan sát làm thế nào sự hiện diện của một thuật ngữ tương tác là cần thiết để chúng tôi có đủ sự linh hoạt để giảm thiểu tổng số dư bình phương cho cả hai nhóm cùng một lúc . Mô hình được trang bị của tôi sẽ là:β^3= =2

y^Tôi= =12+5xTôi-1bTôi+2xTôibTôi

Chuyển đổi tất cả xung quanh để "B" là mức tham chiếu và là biến giả mã hóa cho Nhóm A. Bạn có thể thấy rằng bây giờ tôi phải phù hợp với mô hìnhmột

y^Tôi= =11+7xTôi+1mộtTôi-2xTôimộtTôi

Đó là, tôi lấy phần chặn ( ) và độ dốc ( ) từ nhóm "B" cơ bản của mình và sử dụng thuật ngữ giả và tương tác để điều chỉnh chúng cho nhóm "A" của tôi. Những điều chỉnh lần này là theo hướng ngược lại (tôi cần một mức chặn cao hơn và độ dốc hai thấp hơn ) do đó các dấu hiệu được đảo ngược so với khi tôi lấy "A" làm nhóm tham chiếu, nhưng rõ ràng tại sao các hệ số khác có không chỉ đơn giản là chuyển đổi dấu hiệu.117


Hãy so sánh với đầu ra của bạn. Trong một ký hiệu tương tự như trên, mô hình được trang bị đầu tiên của bạn với đường cơ sở "A" là:

y^Tôi= =100.7484158+0.9030541bTôi-0.8693598xTôi+0.8709116xTôibTôi

Mô hình được trang bị thứ hai của bạn với đường cơ sở "B" là:

y^Tôi= =101.651469922-0.903054145mộtTôi+0,001551843xTôi-0.870911601xTôimộtTôi

Đầu tiên, hãy xác minh rằng hai mô hình này sẽ cho kết quả giống nhau. Hãy đặt vào phương trình đầu tiên và chúng ta thu được:bTôi= =1-mộtTôi

y^Tôi= =100.7484158+0.9030541(1-mộtTôi)-0.8693598xTôi+0.8709116xTôi(1-mộtTôi)

Điều này đơn giản hóa để:

y^Tôi= =(100.7484158+0.9030541)-0.9030541mộtTôi+(-0.8693598+0.8709116)xTôi-0.8709116xTôimộtTôi

Một chút nhanh chóng của số học xác nhận rằng đây là giống như mô hình được trang bị thứ hai; hơn nữa, bây giờ cần phải rõ ràng các hệ số đã hoán đổi trong các dấu hiệu và hệ số nào đơn giản đã được điều chỉnh theo đường cơ sở khác!

Thứ hai, chúng ta hãy xem các mô hình được trang bị khác nhau là gì trên các nhóm "A" và "B". Mô hình đầu tiên của bạn ngay lập tức cung cấp cho nhóm "A" và mô hình thứ hai của bạn ngay lập tức cung cấp cho nhóm "B". Bạn có thể xác minh mô hình đầu tiên đưa ra kết quả chính xác cho nhóm "B" bằng cách thay thế vào phương trình của nó; đại số, tất nhiên, làm việc theo cách tương tự như ví dụ tổng quát hơn ở trên. Tương tự, bạn có thể xác minh rằng mô hình thứ hai cho kết quả chính xác cho nhóm "A" bằng cách đặt . y i=101,651469922+0,001551843xibi=1mộti=1y^Tôi= =100.7484158-0.8693598xTôiy^Tôi= =101.651469922+0,001551843xTôibTôi= =1mộtTôi= =1

Thứ ba, vì trong trường hợp của bạn, biến hồi quy khác cũng là một biến giả, tôi khuyên bạn nên tính toán các phương tiện có điều kiện phù hợp cho cả bốn loại ("A" với , "A" với , "B" với , "B" với ) trong cả hai mô hình và kiểm tra bạn hiểu lý do tại sao họ đồng ý. Nói đúng ra điều này là không cần thiết, vì chúng tôi đã thực hiện đại số tổng quát hơn ở trên để hiển thị kết quả sẽ nhất quán ngay cả khi liên tục , nhưng tôi nghĩ nó vẫn là một bài tập có giá trị. Tôi sẽ không điền chi tiết vì số học rất đơn giản và nó phù hợp hơn với tinh thần của câu trả lời rất hay của JonB.x = 1 x = 0 x = 1 x x yx= =0x= =1x= =0x= =1xMột điểm quan trọng để hiểu là, cho dù bạn sử dụng nhóm tham chiếu nào, mô hình của bạn có đủ tính linh hoạt để phù hợp với từng ý nghĩa điều kiện riêng biệt. (Đây là điểm tạo ra sự khác biệt rằng của bạn là giả cho yếu tố nhị phân chứ không phải là biến liên tục - với các yếu tố dự đoán liên tục, chúng tôi thường không mong đợi trung bình có điều kiện ước tính khớp với trung bình mẫu cho mọi kết hợp quan sát được của dự đoán.) Tính giá trị trung bình mẫu của từng loại trong bốn kết hợp danh mục đó và bạn sẽ thấy chúng phù hợp với phương tiện có điều kiện được trang bị của bạn.xy^

Mã R để vẽ sơ đồ và khám phá các mô hình được trang bị, dự đoán và nhóm có nghĩa lày^

#Make data set with desired conditional means
data.df <- data.frame(
  x = c(0,0,0,        1,1,1,        0,0,0,        1,1,1),
  b = c(0,0,0,        0,0,0,        1,1,1,        1,1,1),
  y = c(11.8,12,12.2, 16.8,17,17.2, 10.8,11,11.2, 17.8,18,18.2)
)
data.df$a <- 1 - data.df$b

baselineA.lm <- lm(y ~ x * b, data.df)
summary(baselineA.lm) #check this matches y = 12 + 5x - 1b + 2xb

baselineB.lm <- lm(y ~ x * a, data.df)
summary(baselineB.lm) #check this matches y = 11 + 7x + 1a - 2xa

fitted(baselineA.lm)
fitted(baselineB.lm) #check the two models give the same fitted values for y...
with(data.df, tapply(y, interaction(x, b), mean)) #...which are the group sample means

colorSet <- c("red", "blue")
symbolSet <- c(19,17)
with(data.df, plot(x, y, yaxt="n", col=colorSet[b+1], pch=symbolSet[b+1],
                   main="Response y against other predictor x",
                   panel.first = {
                     axis(2, at=10:20)
                     abline(h = 10:20, col="gray70")
                     abline(v = 0:1,  col="gray70")
                   }))
abline(lm(y ~ x, data.df[data.df$b==0,]), col=colorSet[1])
abline(lm(y ~ x, data.df[data.df$b==1,]), col=colorSet[2])
legend(0.1, 17, c("Group A", "Group B"), col = colorSet,
       pch = symbolSet, bg = "gray95")

Vâng, giải thích tuyệt vời vì vậy tôi sẽ bỏ phiếu cho điều này!
JonB

@DavidZ Cảm ơn! Tôi khuyên bạn không nên chọn hộp "chấp nhận" quá sớm, vì có thể có câu trả lời khác sẽ đến. Lời giải thích của tôi khá gọn gàng nhưng tôi đã tập trung vào một khía cạnh khá chung chung cũng có thể đã làm việc cho liên tục . Bạn có thể tiếp cận câu hỏi của mình theo cách chú ý nhiều hơn đến bản chất phân loại của những người dự đoán của bạn, vì vậy tôi khuyên bạn nên bỏ qua để khuyến khích sự tham gia nhiều hơn từ người khác. (@JobB Cảm ơn! Tôi cũng thích câu trả lời của bạn, +1)x
Cá bạc

3

Điều đó có liên quan đến cách xác định đánh chặn. Trong ví dụ đầu tiên, đánh chặn được định nghĩa là những người không hút thuốc và những người có ma túy A. Những người hút thuốc, cũng có ma túy A, sẽ có giá trị 100,75 - 0,87 = 99,9 trong khi những người hút thuốc có ma túy B sẽ có giá trị 100,75 + 0,90 - 0,87 + 0,87 = 101,65.

Trong ví dụ thứ hai, việc chặn được định nghĩa là những người không hút thuốc và có ma túy B. Những người hút thuốc với thuốc B sau đó sẽ có giá trị 101,65 + 0,001 = 101,65 và những người hút thuốc với thuốc A sẽ có giá trị 100,65 - 0,90 + 0,001-0,87 = 99,9.

Vì vậy, tất cả đều bổ sung, đó chỉ là vấn đề làm thế nào để đánh chặn được xác định, nghĩa là mức độ khi tất cả các yếu tố được đặt thành danh mục tham chiếu.

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.