Loại bỏ đánh chặn là một mô hình khác nhau, nhưng có rất nhiều ví dụ mà nó là hợp pháp. Các câu trả lời cho đến nay đã thảo luận chi tiết về ví dụ trong đó mức chặn thực sự là 0. Tôi sẽ tập trung vào một vài ví dụ mà chúng ta có thể quan tâm đến một tham số mô hình không điển hình.
Ví dụ 1: Mô hình kiểu ANOVA. Đối với các biến phân loại, chúng tôi thường tạo thành viên nhóm mã hóa nhị phân. Mô hình hồi quy tiêu chuẩn được tham số hóa dưới dạng các vectơ chặn + k - 1. Mã chặn đánh giá trị dự kiến cho nhóm "tham chiếu" hoặc vectơ bị bỏ qua và các vectơ còn lại kiểm tra sự khác biệt giữa mỗi nhóm và tham chiếu. Nhưng trong một số trường hợp, có thể hữu ích khi có giá trị mong đợi của mỗi nhóm.
dat <- mtcars
dat$vs <- factor(dat$vs)
## intercept model: vs coefficient becomes difference
lm(mpg ~ vs + hp, data = dat)
Coefficients:
(Intercept) vs1 hp
26.96300 2.57622 -0.05453
## no intercept: two vs coefficients, conditional expectations for both groups
lm(mpg ~ 0 + vs + hp, data = dat)
Coefficients:
vs0 vs1 hp
26.96300 29.53922 -0.05453
Ví dụ 2: Trường hợp dữ liệu được tiêu chuẩn hóa. Trong một số trường hợp, một người có thể làm việc với dữ liệu được tiêu chuẩn hóa. Trong trường hợp này, phần chặn là 0 theo thiết kế. Tôi nghĩ một ví dụ kinh điển về điều này là các mô hình hoặc yếu tố phương trình cấu trúc kiểu cũ, hoạt động chỉ dựa trên ma trận hiệp phương sai của dữ liệu. Trong trường hợp dưới đây, có lẽ là một ý tưởng tốt để ước tính đánh chặn bằng mọi cách, nếu chỉ để giảm mức độ tự do bổ sung (mà bạn thực sự nên mất dù sao vì giá trị trung bình đã được ước tính), nhưng có một số tình huống trong đó xây dựng, phương tiện có thể là 0 (ví dụ: một số thử nghiệm nhất định trong đó người tham gia chỉ định xếp hạng, nhưng bị hạn chế đưa ra các mặt tích cực và tiêu cực như nhau).
dat <- as.data.frame(scale(mtcars))
## intercept is 0 by design
lm(mpg ~ hp + wt, data = dat)
Coefficients:
(Intercept) hp wt
3.813e-17 -3.615e-01 -6.296e-01
## leaving the intercept out
lm(mpg ~ 0 + hp + wt, data = dat)
Coefficients:
hp wt
-0.3615 -0.6296
Ví dụ 3: Mô hình đa biến và các hàm ẩn. Ví dụ này tương tự như lần đầu tiên theo nhiều cách. Trong trường hợp này, dữ liệu đã được xếp chồng lên nhau sao cho hai biến khác nhau nằm trong một vectơ dài. Một biến thứ hai mã hóa thông tin về việc vectơ đáp ứng y
, thuộc mpg
hay disp
. Trong trường hợp này, để có được các lần chặn riêng cho từng kết quả, bạn triệt tiêu chặn chặn tổng thể và bao gồm cả các vectơ giả để đo. Đây là một loại phân tích đa biến. Nó thường không được thực hiện bằng cách sử dụnglm()
bởi vì bạn đã lặp đi lặp lại các biện pháp và có lẽ nên cho phép sự không quan tâm. Tuy nhiên, có một số trường hợp thú vị mà điều này là cần thiết. Ví dụ, khi cố gắng thực hiện phân tích hòa giải với các hiệu ứng ngẫu nhiên, để có được ma trận hiệp phương sai đầy đủ, bạn cần cả hai mô hình ước tính đồng thời, có thể được thực hiện bằng cách xếp chồng dữ liệu và sử dụng thông minh các vectơ giả.
## stack data for multivariate analysis
dat <- reshape(mtcars, varying = c(1, 3), v.names = "y",
timevar = "measure", times = c("mpg", "disp"), direction = "long")
dat$measure <- factor(dat$measure)
## two regressions with intercepts only
lm(cbind(mpg, disp) ~ 1, data = mtcars)
Coefficients:
mpg disp
(Intercept) 20.09 230.72
## using the stacked data, measure is difference between outcome means
lm(y ~ measure, data = dat)
Coefficients:
(Intercept) measurempg
230.7 -210.6
## separate 'intercept' for each outcome
lm(y ~ 0 + measure, data = dat)
Coefficients:
measuredisp measurempg
230.72 20.09
Tôi không tranh luận rằng nói chung nên loại bỏ các can thiệp, nhưng nó là tốt để linh hoạt.