분산 분석이 선형 회귀 분석과 동일한 이유는 무엇입니까?


50

분산 분석과 선형 회귀 분석이 동일하다는 것을 읽었습니다. ANOVA의 출력이 일부 값이고 일부 다른 p- 값 이라는 점을 고려할 때 어떻게 할 수 있습니까? 다른 샘플에서 샘플 평균이 동일하거나 다른지 여부를 결론으로 ​​결정합니다.Fp

그러나 평균이 같지 않다고 가정하면 (널 가설 제거) ANOVA는 선형 모형의 계수에 대해 아무 것도 알려주지 않습니다. 선형 회귀 분석은 어떻게 분산 분석과 동일합니까?

답변:


44

두 모델이 동일한 가설에 대해 검정하고 동일한 인코딩을 사용하는 경우 분산 분석 및 선형 회귀 분석은 동일합니다. 모형의 기본 목표는 다릅니다. 분산 분석은 데이터의 범주 평균 간의 차이를 나타내는 데 주로 관심이있는 반면 선형 회귀 분석은 표본 평균 반응 및 관련 를 추정하는 데 주로 관심이 있습니다.σ2

다소 독단적으로 ANOVA를 더미 변수가있는 회귀로 설명 할 수 있습니다. 범주 형 변수를 사용한 단순 회귀 분석에서이 경우를 쉽게 알 수 있습니다. 범주 형 변수는 지표 매트릭스 ( 0/1피험자가 주어진 그룹의 일부인지 여부 에 따라 달라지는 매트릭스)로 인코딩 된 다음 선형 회귀로 설명 된 선형 시스템의 솔루션에 직접 사용됩니다. 5 개의 그룹이있는 예를 봅시다. 인수를 위해 평균 group1은 1, 평균 group2은 2, ...은 평균 group55와 같다고 가정합니다 (MATLAB을 사용하지만 R에서도 똑같은 것이 동일합니다).

rng(123);               % Fix the seed
X = randi(5,100,1);     % Generate 100 random integer U[1,5]
Y = X + randn(100,1);   % Generate my response sample
Xcat = categorical(X);  % Treat the integers are categories

% One-way ANOVA
[anovaPval,anovatab,stats] = anova1(Y,Xcat);
% Linear regression
fitObj = fitlm(Xcat,Y);

% Get the group means from the ANOVA
ANOVAgroupMeans = stats.means
% ANOVAgroupMeans =
% 1.0953    1.8421    2.7350    4.2321    5.0517

% Get the beta coefficients from the linear regression
LRbetas = [fitObj.Coefficients.Estimate'] 
% LRbetas =
% 1.0953    0.7468    1.6398    3.1368    3.9565

% Rescale the betas according the intercept
scaledLRbetas = [LRbetas(1) LRbetas(1)+LRbetas(2:5)]
% scaledLRbetas =
% 1.0953    1.8421    2.7350    4.2321    5.0517

% Check if the two results are numerically equivalent
abs(max( scaledLRbetas - ANOVAgroupMeans)) 
% ans =
% 2.6645e-15

이 시나리오에서 볼 수 있듯이 결과는 정확히 동일합니다. 미세한 수치 차이는 설계가 완벽하게 균형을 이루지 못하고 기초 추정 절차로 인해 발생합니다. 분산 분석은 수치 적 오류를 조금 더 적극적으로 축적합니다. 그런 점에서 우리는 절편에 맞습니다 LRbetas(1). 우리는 절편이없는 모델에 적합 할 수 있지만 "표준"선형 회귀는 아닙니다. (이 경우 결과는 분산 분석에 더 가깝습니다.)

F

abs( fitObj.anova.F(1) - anovatab{2,5} )
% ans =
% 2.9132e-13 

절차는하지만 서로 다른 원문과 같은 가설을 테스트하기 때문이다 : "경우 ANOVA는 질적으로 확인합니다 비율이 더 그룹이 믿기 어려운 없다는 것을 제안하기에 충분히 높다 "경우 선형 회귀가 질적으로 확인합니다 동안 " 비율이 절편을 제안 할만큼 높은 만 모델이 적절하지 않을 수 있습니다 ".
(이것은 " 무 가설 하에서 관찰 된 값과 같거나 큰 값을 볼 수있는 가능성 "에 대한 다소 자유로운 해석이며 이는 교과서 정의가 아닙니다.)

" 분산 분석 (ANOVA) 에 대한 질문의 마지막 부분으로 되돌아 가면 (평균이 같지 않다고 가정 할 때) 선형 모형의 계수에 대해 아무 것도 알려주지 않습니다. 이제는 설계가 간단하고 균형 잡히고 선형 모델이 할 수있는 모든 것을 알려줍니다. 그룹 평균의 신뢰 구간은 와 동일합니다.β회귀 모델에서 다중 공변량을 추가하기 시작할 때, 단순 일원 분산 분석에는 직접적인 동등성이 없습니다. 이 경우, 일원 분산 분석에 직접 사용할 수없는 정보로 선형 회귀의 평균 반응을 계산하는 데 사용되는 정보를 보강합니다. 나는 한 번 더 ANOVA 용어로 표현할 수 있다고 믿지만 그것은 대부분 학업 운동입니다.

이 문제에 대한 흥미로운 논문은 Gelman의 2005 년 논문 : 분산 분석-그 어느 때보 다 중요한지입니다 . 몇 가지 중요한 사항이 제기되었습니다. 나는이 논문을 전적으로지지하지는 않는다 (나는 개인적으로 McCullach의 견해와 훨씬 더 부합한다고 생각한다).

마지막으로 : 혼합 효과 모델 이있는 경우 플롯이 두껍게 표시됩니다 . 여기에는 데이터 그룹화와 관련하여 성가신 정보 나 실제 정보로 간주 할 수있는 개념이 다릅니다. 이러한 문제는이 질문의 범위를 벗어 났지만, 나는 그것이 고개를 끄덕일만한 가치가 있다고 생각합니다.


6
이 Cross Validated 페이지 에서 허용 된 답변은 답변 의 실제 접근 방식을 보완하는 수학적 접근 방식을 통해 분산 분석과 회귀 분석 간의 관계를 매우 훌륭하게 보여줍니다.
EdM

+1. 예, @MichaelHardy의 대답은 그 스레드에서 꽤 좋습니다. 언급 해 주셔서 감사합니다!
usεr11852는

+1, 또한, 이 답변 에서이 수치 는 분산 분석과 선형 회귀 간의 격차를 해소하는 데 실제로 도움이된다고 생각합니다.
Haitao Du

ANOVA가 범주 형 예측 변수가있는 가우시안 GLM이라는 데 동의하십니까?
Digio

@Digio : 아니요. 사용의 적절성을 지나치게 단순화합니다. GLM을 그림에서 제외시킵니다.
usεr11852는

55

범주 형 ( 더미 코딩 된 ) 회귀자를 사용 하는 OLS가 ANOVA 의 요인 과 동일 하다는 생각에 색을 입 힙니다 . 두 경우 모두 수준 (또는 분산 분석의 경우 그룹 )이 있습니다.

OLS 회귀 분석에서는 회귀 변수에 연속 변수가있는 것이 가장 일반적입니다. 이들은 범주 형 변수와 종속 변수 (DC) 사이의 적합 모형의 관계를 논리적으로 수정합니다. 그러나 병렬을 인식 할 수없는 시점까지는 아닙니다.

mtcars데이터 세트를 기반으로 먼저 lm(mpg ~ wt + as.factor(cyl), data = mtcars)연속 변수 wt(가중치)에 의해 결정된 기울기 와 범주 형 변수 cylinder(4 개, 6 개 또는 8 개 실린더) 의 영향을 예상하는 다른 절편 으로 모델 을 시각화 할 수 있습니다 . 일원 분산 분석과 평행을 이루는 것이이 마지막 부분입니다.

오른쪽의 서브 플롯에서 그래픽으로 보자 (왼쪽의 3 개의 서브 플롯은 곧바로 논의되는 ANOVA 모델과의 측면 비교를 위해 포함됨).

여기에 이미지 설명을 입력하십시오

각 실린더 엔진은 색상으로 구분되며, 다른 인터셉트가있는 적합 선과 데이터 클라우드 간의 거리는 ANOVA의 그룹 내 변동과 같습니다. 연속 변수 (와 OLS 모델에서 인터셉트가 주목 weight)으로 인해 효과를 수학적으로 서로 다른 집단 내 ANOVA 수단의 값과 동일하지 않은 weight평균 : 및 다른 모델 행렬 (아래 참조) mpg에 대한 예를 들어, 4 실린더 자동차 mean(mtcars$mpg[mtcars$cyl==4]) #[1] 26.66364는 OLS "기준선"절편 (일반적으로 cyl==4(R에서 가장 낮은 숫자에서 가장 높은 숫자 순서로 반영 ))은 크게 다릅니다 summary(fit)$coef[1] #[1] 33.99079. 선의 기울기는 연속 변수의 계수입니다 weight.

weight이러한 선을 정신적으로 직선화하여 수평선으로 되돌려 서 효과를 억제하려고 aov(mtcars$mpg ~ as.factor(mtcars$cyl))하면 왼쪽에있는 3 개의 하위 플로트에있는 모형의 ANOVA 플롯으로 끝납니다 . weight회귀 밖으로 지금이지만, 다른 인터셉트하는 점에서 관계는 크게 보존 - 우리는 단순히 전용 "볼"수있는 영상 장치로서, 반 시계 방향으로 회전하고 다시 각각의 상이한 레벨 (위한 이전 중첩 플롯 밖으로 확산되고 우리는 두 개의 서로 다른 모델을 비교하기 때문에 수학적 평등이 아닙니다!).

cylinder20x

그리고 이러한 수직 세그먼트의 합계를 통해 잔차를 수동으로 계산할 수 있습니다.

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)

결과 : SumSq = 301.2626TSS - SumSq = 824.7846. 다음과 비교하십시오 :

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

cylinder회귀 분석으로 범주 만있는 선형 모형을 ANOVA로 테스트하는 것과 정확히 동일한 결과 :

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 

따라서 우리가 보는 것은 모형에 의해 설명되지 않은 총 분산의 일부인 잔차와 분산은 유형의 OLS lm(DV ~ factors)또는 ANOVA ( aov(DV ~ factors)) 를 호출하든 상관없이 동일하다는 것입니다. 연속 변수 모델은 동일한 시스템으로 끝납니다. 마찬가지로, 모델을 전체적으로 또는 옴니버스 ANOVA (레벨 별이 아님)로 평가할 때 자연스럽게 동일한 p- 값을 얻습니다 F-statistic: 39.7 on 2 and 29 DF, p-value: 4.979e-09.

이것은 개별 수준의 테스트가 동일한 p- 값을 산출한다는 것을 의미하지는 않습니다. OLS의 경우 다음을 호출 summary(fit)하여 얻을 수 있습니다.

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 ***

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

결국, 후드 아래의 엔진을 들여다 보는 것보다 더 안심할 수있는 것은 없습니다. 이는 모델 행렬과 기둥 공간의 돌출부 외에는 없습니다. 이것은 분산 분석의 경우 실제로 매우 간단합니다.

(1)[y1y2y3.yn]=[100100010010...001001][μ1μ2μ3]+[ε1ε2ε3.εn]

cyl 4cyl 6cyl 8yij=μi+ϵijμijiyij

반면에 OLS 회귀에 대한 모형 행렬은 다음과 같습니다.

[y1y2y3y4yn]=[1x12x131x22x231x32x331x42x431xn2xn3][β0β1β2]+[ε1ε2ε3ε4εn]

yi=β0+β1xi1+β2xi2+ϵiβ0β1β2weightdisplacement

lm(mpg ~ wt + as.factor(cyl), data = mtcars)weightβ0weightβ11cyl 4cyl 411(1),cyl 6cyl 8

[y1y2y3y4y5yn]=[1x11x21x31x41x51xn][β0β1]+[101010010101][μ~2μ~3]+[ε1ε2ε3ε4ε5ε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)

1μ~3yi=β0+β1xi+μ~i+ϵi


6
+1, 나는 당신의 그래픽 일러스트를 사랑합니다 !! 출판 품질!
Haitao Du

@ hxd1011 이것은 당신에게 아주 좋은 것입니다. 감사합니다.
Antoni Parellada

6

Antoni Parellada와 usεr11852는 매우 좋은 대답을했습니다. 와 코딩 관점에 대한 귀하의 질문을 해결할 것입니다 R.

분산 분석은 선형 모형의 계수에 대해 아무 것도 알려주지 않습니다. 선형 회귀 분석은 어떻게 분산 분석과 동일합니까?

실제로 우리는 aovin R과 같은 기능을 수행 할 수 있습니다 lm. 여기 몇 가지 예가 있어요.

> lm_fit=lm(mpg~as.factor(cyl),mtcars)

> aov_fit=aov(mpg~as.factor(cyl),mtcars)

> coef(lm_fit)
    (Intercept) as.factor(cyl)6 as.factor(cyl)8 
      26.663636       -6.920779      -11.563636 

> coef(aov_fit)
    (Intercept) as.factor(cyl)6 as.factor(cyl)8 
      26.663636       -6.920779      -11.563636 

> all(predict(lm_fit,mtcars)==predict(aov_fit,mtcars))
[1] TRUE

보시다시피, ANOVA 모델에서 계수를 얻을 수있을뿐만 아니라 선형 모델과 마찬가지로 예측에 사용할 수도 있습니다.

도움말 파일에서 aov기능을 확인하면

이는 선형 모델을 균형 또는 불균형 실험 설계에 맞추기위한 래퍼를 제공합니다 . lm과의 주요 차이점은 인쇄, 요약 등이 적합을 처리하는 방식에 있습니다. 이는 선형 모델이 아닌 분산 분석의 전통적인 언어로 표현됩니다.


1

모든 데이터 항목을 가져 와서 하나의 단일 열 Y로 정렬하고 나머지 열이 표시 변수 1 인 경우 (데이터는 원래 anova 배열의 j 번째 열 요소 임) Y의 간단한 선형 회귀 다른 열 (예 : 열 B)의 경우 분산 분석 문제와 동일한 DF, SS, MS 및 F 검정 통계량을 얻어야합니다.

따라서 이항 변수를 사용하여 데이터를 작성하여 분산 분석을 선형 회귀로 처리 할 수 ​​있습니다. 또한 B에서 Y의 회귀에 대한 회귀 계수는 평균과 같아야합니다. 원래 데이터로 계산 된 열 B의

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.