Hãy để tôi đặt một số màu vào ý tưởng rằng OLS với các biến hồi quy phân loại ( mã hóa giả ) tương đương với các yếu tố trong ANOVA. Trong cả hai trường hợp đều có các mức (hoặc nhóm trong trường hợp ANOVA).
Trong hồi quy OLS, thông thường nhất cũng có các biến liên tục trong các hồi quy. Chúng thay đổi một cách hợp lý mối quan hệ trong mô hình phù hợp giữa các biến phân loại và biến phụ thuộc (DC). Nhưng không đến mức làm cho song song không thể nhận ra.
Dựa trên tập mtcars
dữ liệu, trước tiên chúng ta có thể hình dung mô hình lm(mpg ~ wt + as.factor(cyl), data = mtcars)
là độ dốc được xác định bởi biến liên tục wt
(trọng lượng) và các phần chặn khác nhau chiếu hiệu ứng của biến phân loại cylinder
(bốn, sáu hoặc tám hình trụ). Đây là phần cuối cùng tạo thành song song với ANOVA một chiều.
Chúng ta hãy xem nó bằng đồ họa trên ô phụ ở bên phải (ba ô phụ ở bên trái được đưa vào để so sánh giữa các bên với mô hình ANOVA được thảo luận ngay sau đó):
Mỗi động cơ xi lanh được mã hóa màu và khoảng cách giữa các đường được trang bị với các lần chặn khác nhau và đám mây dữ liệu tương đương với biến thể trong nhóm trong ANOVA. Lưu ý rằng các phần tử chặn trong mô hình OLS với biến liên tục ( weight
) không giống nhau về mặt toán học với giá trị của các phương tiện trong nhóm khác nhau trong ANOVA, do ảnh hưởng của weight
và các ma trận mô hình khác nhau (xem bên dưới): giá trị trung bình mpg
của Chẳng hạn, những chiếc xe 4 xi-lanh mean(mtcars$mpg[mtcars$cyl==4]) #[1] 26.66364
, trong khi đó, việc chặn "đường cơ sở" của OLS (phản ánh theo quy ước cyl==4
(thứ tự từ thấp nhất đến cao nhất trong R)) là khác nhau rõ rệt : summary(fit)$coef[1] #[1] 33.99079
. Độ dốc của các đường là hệ số cho biến liên tục weight
.
Nếu bạn cố gắng triệt tiêu hiệu ứng weight
bằng cách làm thẳng các đường thẳng này và đưa chúng trở lại đường ngang, bạn sẽ kết thúc với biểu đồ ANOVA của mô hình aov(mtcars$mpg ~ as.factor(mtcars$cyl))
trên ba ô phụ ở bên trái. Công cụ weight
hồi quy hiện đã hết, nhưng mối quan hệ từ các điểm đến các điểm chặn khác nhau được bảo toàn một cách thô sơ - chúng tôi chỉ đơn giản là quay ngược chiều kim đồng hồ và trải ra các ô chồng chéo trước đó cho mỗi cấp độ khác nhau (một lần nữa, chỉ như một thiết bị trực quan để "nhìn thấy" kết nối, không phải là một đẳng thức toán học, vì chúng ta đang so sánh hai mô hình khác nhau!).
Mỗi cấp độ trong hệ số cylinder
là riêng biệt và các đường thẳng đứng biểu thị các phần dư hoặc lỗi trong nhóm: khoảng cách từ mỗi điểm trong đám mây và giá trị trung bình của từng cấp độ (đường ngang được mã hóa màu). Độ dốc màu cho chúng ta một dấu hiệu cho thấy mức độ quan trọng trong việc xác nhận mô hình: các điểm dữ liệu được phân cụm xung quanh nhóm của chúng có nghĩa là gì, càng có nhiều khả năng mô hình ANOVA sẽ có ý nghĩa thống kê. Đường màu đen nằm ngang xung quanh trong tất cả các ô là giá trị trung bình của tất cả các yếu tố. Các số trong -axis chỉ đơn giản là số giữ chỗ / số nhận dạng cho từng điểm trong mỗi cấp và không có mục đích nào khác ngoài việc phân tách các điểm dọc theo đường ngang để cho phép hiển thị âm mưu khác với các ô vuông.20x
Và thông qua tổng của các phân đoạn dọc này, chúng ta có thể tự tính toán các phần dư:
mu_mpg <- mean(mtcars$mpg) # Mean mpg in dataset
TSS <- sum((mtcars$mpg - mu_mpg)^2) # Total sum of squares
SumSq=sum((mtcars[mtcars$cyl==4,"mpg"]-mean(mtcars[mtcars$cyl=="4","mpg"]))^2)+
sum((mtcars[mtcars$cyl==6,"mpg"] - mean(mtcars[mtcars$cyl=="6","mpg"]))^2)+
sum((mtcars[mtcars$cyl==8,"mpg"] - mean(mtcars[mtcars$cyl=="8","mpg"]))^2)
Kết quả: SumSq = 301.2626
và TSS - SumSq = 824.7846
. So với:
Call:
aov(formula = mtcars$mpg ~ as.factor(mtcars$cyl))
Terms:
as.factor(mtcars$cyl) Residuals
Sum of Squares 824.7846 301.2626
Deg. of Freedom 2 29
Chính xác kết quả tương tự như thử nghiệm với ANOVA mô hình tuyến tính chỉ với phân loại cylinder
là hồi quy:
fit <- lm(mpg ~ as.factor(cyl), data = mtcars)
summary(fit)
anova(fit)
Analysis of Variance Table
Response: mpg
Df Sum Sq Mean Sq F value Pr(>F)
as.factor(cyl) 2 824.78 412.39 39.697 4.979e-09 ***
Residuals 29 301.26 10.39
Sau đó, những gì chúng ta thấy là phần dư - một phần của tổng phương sai không được giải thích bởi mô hình - cũng như phương sai là như nhau cho dù bạn gọi một OLS loại lm(DV ~ factors)
hay ANOVA ( aov(DV ~ factors)
): khi chúng ta loại bỏ mô hình của các biến liên tục, chúng tôi kết thúc với một hệ thống giống hệt nhau. Tương tự như vậy, khi chúng ta đánh giá các mô hình trên toàn cầu hoặc dưới dạng ANOVA omnibus (không phải theo cấp độ), chúng ta tự nhiên nhận được cùng một giá trị p F-statistic: 39.7 on 2 and 29 DF, p-value: 4.979e-09
.
Điều này không có nghĩa là việc kiểm tra các cấp độ riêng lẻ sẽ mang lại giá trị p giống hệt nhau. Trong trường hợp OLS, chúng ta có thể gọi summary(fit)
và nhận:
lm(formula = mpg ~ as.factor(cyl), data = mtcars)
Estimate Std. Error t value Pr(>|t|)
(Intercept) 26.6636 0.9718 27.437 < 2e-16 ***
as.factor(cyl)6 -6.9208 1.5583 -4.441 0.000119 ***
as.factor(cyl)8 -11.5636 1.2986 -8.905 8.57e-10 ***
Điều này là không thể trong ANOVA, đây là một thử nghiệm omnibus. Để có được các loại đánh giá giá trị chúng tôi cần chạy thử nghiệm Sự khác biệt đáng kể của Tukey, việc này sẽ cố gắng giảm khả năng xảy ra lỗi loại I do thực hiện nhiều so sánh theo cặp (do đó, " "), dẫn đến một đầu ra hoàn toàn khác nhau:pp adjusted
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = mtcars$mpg ~ as.factor(mtcars$cyl))
$`as.factor(mtcars$cyl)`
diff lwr upr p adj
6-4 -6.920779 -10.769350 -3.0722086 0.0003424
8-4 -11.563636 -14.770779 -8.3564942 0.0000000
8-6 -4.642857 -8.327583 -0.9581313 0.0112287
Cuối cùng, không có gì yên tâm hơn là nhìn trộm động cơ dưới mui xe, không ai khác chính là ma trận mô hình và các hình chiếu trong không gian cột. Đây thực sự là khá đơn giản trong trường hợp ANOVA:
⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢y1y2y3⋮⋮⋮.yn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢11⋮00⋮.0000⋮11⋮.0000⋮00⋮.11⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢μ1μ2μ3⎤⎦⎥+⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ε1ε2ε3⋮⋮⋮.εn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥(1)
Đây sẽ là một chiều mô hình ANOVA ma trận với ba cấp độ (ví dụ cyl 4
, cyl 6
, cyl 8
), tóm tắt như , nơi là giá trị trung bình ở mỗi cấp hoặc nhóm: khi lỗi hoặc dư cho quan sát của nhóm hoặc cấp được thêm vào, chúng tôi có được quan sát DV thực tế .yij=μi+ϵijμijiyij
Mặt khác, ma trận mô hình cho hồi quy OLS là:
⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢y1y2y3y4⋮yn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢1111⋮1x12x22x32x42⋮xn2x13x23x33x43⋮xn3⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢β0β1β2⎤⎦⎥+⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ε1ε2ε3ε4⋮εn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
Đây là dạng với một lần chặn và hai dốc ( và ) mỗi lần cho một biến liên tục khác nhau, nói và .yi=β0+β1xi1+β2xi2+ϵiβ0β1β2weight
displacement
Bí quyết bây giờ là xem làm thế nào chúng ta có thể tạo ra các phần chặn khác nhau, như trong ví dụ ban đầu, lm(mpg ~ wt + as.factor(cyl), data = mtcars)
- vì vậy, hãy thoát khỏi độ dốc thứ hai và bám vào biến liên tục duy nhất ban đầu weight
(nói cách khác, một cột duy nhất bên cạnh cột của các cột trong ma trận mô hình, chặn và độ dốc cho , ). Theo mặc định, cột của sẽ tương ứng với phần chặn. Một lần nữa, giá trị của nó không giống với ANOVA trong nhóm có nghĩa là , một quan sát không nên ngạc nhiên khi so sánh cột 'trong ma trận mô hình OLS (bên dưới) với cột đầu tiên củaβ0weight
β11cyl 4
cyl 4
11Trong ma trận mô hình ANOVA chỉ chọn các ví dụ với 4 xi lanh. Việc chặn sẽ được chuyển qua mã hóa giả để giải thích hiệu quả của và như sau:(1),cyl 6
cyl 8
⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢y1y2y3y4y5⋮yn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢11111⋮1x1x2x3x4x5⋮xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥[β0β1]+⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢11100⋮000011⋮1⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥[μ~2μ~3]+⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ε1ε2ε3ε4ε5⋮εn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
Bây giờ khi cột thứ ba là chúng ta sẽ chuyển hệ thống chặn bằngCác chỉ ra rằng, như trong trường hợp của "cơ sở" đánh chặn trong mô hình OLS không được giống với giá trị trung bình nhóm xe 4 xi-lanh, nhưng phản ánh nó, sự khác biệt giữa các cấp trong mô hình OLS là không toán học sự khác biệt giữa các nhóm về phương tiện:1μ~2.⋅~
fit <- lm(mpg ~ wt + as.factor(cyl), data = mtcars)
summary(fit)$coef[3] #[1] -4.255582 (difference between intercepts cyl==4 and cyl==6 in OLS)
fit <- lm(mpg ~ as.factor(cyl), data = mtcars)
summary(fit)$coef[2] #[1] -6.920779 (difference between group mean cyl==4 and cyl==6)
Tương tự, khi cột thứ tư là , một giá trị cố định sẽ được thêm vào phần chặn. Do đó, phương trình ma trận sẽ là . Do đó, việc đưa mô hình này sang mô hình ANOVA chỉ là vấn đề loại bỏ các biến liên tục và hiểu rằng việc chặn mặc định trong OLS phản ánh mức độ đầu tiên trong ANOVA.1μ~3yi=β0+β1xi+μ~i+ϵi