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 + 5 xy^= 11 + 7 x
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 + 5 xTôi- 1 bTôi+ 2 xTô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 + 7 xTôi+ 1 aTôi- 2 xTô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.9030541 bTôi- 0.8693598 xTôi+ 0.8709116 xTô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.903054145 mộtTôi+ 0,001551843 xTôi- 0.870911601 xTô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.8693598 xTôi+ 0.8709116 xTôi( 1 - mộtTôi)
Điều này đơn giản hóa để:
y^Tôi= ( 100.7484158 + 0.9030541 ) - 0.9030541 mộtTôi+ ( - 0.8693598 + 0.8709116 ) xTôi- 0.8709116 xTô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.8693598 xTôiy^Tôi= 101.651469922 + 0,001551843 xTô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")