β^0β^มีความแตกต่างระหว่างค่าเฉลี่ยของระดับของการที่ หมวดหมู่และค่าเฉลี่ยของการอ้างอิง
หากเราขยายตัวอย่างของคุณให้ครอบคลุมระดับที่สามในหมวดการแข่งขัน (พูดภาษาเอเชีย ) และเลือกสีขาวเป็นข้อมูลอ้างอิงคุณจะมี:
- β^0=x¯White
- β^Black=x¯Black−x¯White
- β^Asian=x¯Asian−x¯White
β^
- x¯Asian=β^Asian+β^0
น่าเสียดายที่ในกรณีของตัวแปรเด็ดขาดหลายประเภทการตีความที่ถูกต้องสำหรับการสกัดกั้นนั้นไม่ชัดเจนอีกต่อไป (ดูหมายเหตุท้าย) เมื่อมีหมวดหมู่nหมวดหมู่ที่มีหลายระดับและระดับการอ้างอิงหนึ่งระดับ (เช่นสีขาวและชายในตัวอย่างของคุณ) รูปแบบทั่วไปสำหรับการสกัดกั้นคือ:
β^0=∑ni=1x¯reference,i−(n−1)x¯,
where
x¯reference,i is the mean of the reference level of the i-th categorical variable,
x¯ is the mean of the whole data set
The other β^ are the same as with a single category: they are the difference between the mean of that level of the category and the mean of the reference level of the same category.
If we go back to your example, we would get:
- β^0=x¯White+x¯Male−x¯
- β^Black=x¯Black−x¯White
- β^Asian=x¯Asian−x¯White
- β^Female=x¯Female−x¯Male
You will notice that the mean of the cross categories (e.g. White males) are not present in any of the β^. As a matter of fact, you cannot calculate these means precisely from the results of this type of regression.
The reason for this is that, the number of predictor variables (i.e. the β^) มีขนาดเล็กกว่าดังนั้นจำนวนหมวดหมู่ไขว้ (ตราบใดที่คุณมีมากกว่า 1 หมวดหมู่) ดังนั้นจึงเป็นไปไม่ได้ หากเรากลับไปที่ตัวอย่างของคุณจำนวนผู้ทำนายคือ 4 (เช่นβ^0, β ^B l a c k, β ^s ฉันn และ β^Fe m a l e) ในขณะที่จำนวนหมวดหมู่ข้ามคือ 6
ตัวอย่างตัวเลข
ให้ฉันยืมจาก @Gung เพื่อเป็นตัวอย่างตัวเลข:
d = data.frame(Sex=factor(rep(c("Male","Female"),times=3), levels=c("Male","Female")),
Race =factor(rep(c("White","Black","Asian"),each=2),levels=c("White","Black","Asian")),
y =c(0, 3, 7, 8, 9, 10))
d
# Sex Race y
# 1 Male White 0
# 2 Female White 3
# 3 Male Black 7
# 4 Female Black 8
# 5 Male Asian 9
# 6 Female Asian 10
ในกรณีนี้ค่าเฉลี่ยต่างๆที่จะไปในการคำนวณของ β^ คือ:
aggregate(y~1, d, mean)
# y
# 1 6.166667
aggregate(y~Sex, d, mean)
# Sex y
# 1 Male 5.333333
# 2 Female 7.000000
aggregate(y~Race, d, mean)
# Race y
# 1 White 1.5
# 2 Black 7.5
# 3 Asian 9.5
เราสามารถเปรียบเทียบตัวเลขเหล่านี้กับผลลัพธ์ของการถดถอยได้:
summary(lm(y~Sex+Race, d))
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 0.6667 0.6667 1.000 0.4226
# SexFemale 1.6667 0.6667 2.500 0.1296
# RaceBlack 6.0000 0.8165 7.348 0.0180
# RaceAsian 8.0000 0.8165 9.798 0.0103
อย่างที่คุณเห็นต่าง ๆ β^ประมาณจากการถดถอยทั้งหมดสอดคล้องกับสูตรที่ระบุด้านบน ตัวอย่างเช่น,β^0 มอบให้โดย:
β^0= x¯White+x¯Male−x¯
Which gives:
1.5 + 5.333333 - 6.166667
# 0.66666
Note on the choice of contrast
A final note on this topic, all the results discussed above relate to categorical regressions using contrast treatment (the default type of contrast in R). There are different types of contrast which could be used (notably Helmert and sum) and and it would change the interpretation of the various β^. However, It would not change the final predictions from the regressions (e.g. the prediction for White males is always the same no matter which type of contrast you use).
My personal favourite is contrast sum as I feel that the interpretation of the β^contr.sum generalises better when there are multiple categories. For this type of contrast, there is no reference level, or rather the reference is the mean of the whole sample, and you have the following β^contr.sum:
- β^contr.sum0=x¯
- β^contr.sumi=x¯i−x¯
If we go back to the previous example, you would have:
- β^contr.sum0=x¯
- β^c o n t r .sumWชั่วโมงite=x¯Wชั่วโมงฉันte-x¯
- β^c o n t r . s U เมตรB l a c k= x¯B l a c k- x¯
- β^c o n t r . s U เมตรs ฉันn= x¯s ฉันn- x¯
- β^c o n t r . s U เมตรMลิตรอี= x¯Mลิตรอี- x¯
- β^c o n t r . s U เมตรFe m a l e= x¯Fe m a l e- x¯
คุณจะสังเกตเห็นว่าเนื่องจากWhiteและMaleไม่ใช่ระดับการอ้างอิงอีกต่อไปβ^c o n t r . s U เมตร ไม่มี 0 อีกต่อไปความจริงที่ว่าสิ่งเหล่านี้เป็น 0 เฉพาะการรักษาความคมชัด