ANOVAが線形回帰と同等なのはなぜですか?


50

ANOVAと線形回帰は同じものだと読みました。ANOVAの出力が値と値であり、これに基づいてサンプルが異なるサンプル全体で同じか異なるかを判断すると、どのようになりますか。pFp

しかし、平均が等しくないと仮定すると(帰無仮説を棄却)、ANOVAは線形モデルの係数については何も伝えません。では、線形回帰はどのように分散分析と同じですか?

回答:


44

ANOVAと線形回帰は、2つのモデルが同じ仮説に対してテストし、同じエンコードを使用する場合、同等です。モデルの基本的な目的は異なります。ANOVAは、データのカテゴリの平均値の違いを主に懸念していますが、線形回帰は、サンプルの平均応答と関連する推定を主に懸念しています。σ2

ANOVAをダミー変数を使用した回帰として説明することができます。これは、カテゴリー変数を使用した単純な回帰の場合であることが簡単にわかります。カテゴリ変数は、指標行列(0/1被験者が特定のグループの一部であるかどうかに依存する行列)としてエンコードされ、線形回帰によって記述される線形システムの解に直接使用されます。5つのグループの例を見てみましょう。引数のために、平均group1が1、平均group2が2、...、平均group5が5であると仮定します(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

このシナリオで見られるように、結果はまったく同じです。わずかな数値の違いは、設計が完全にバランスが取れていないことと、下にある推定手順によるものです。ANOVAは数値エラーをもう少し積極的に蓄積します。その点で、切片を当てはめLRbetas(1)ます。インターセプトのないモデルを適合させることはできますが、それは「標準」線形回帰ではありません。(その場合、結果はANOVAにさらに近くなります。)

ANOVAの場合と線形回帰の場合の統計量(平均の比)は、上記の例でも同じです。F

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

手順は同じ仮説をテストするが、異なる文言でいるためです:「場合ANOVAは、定性的チェックする比率は一切グループ化は信じがたいされていないことを示唆するのに十分な高さ」 "場合は、線形回帰は質的にチェックする一方比だけインターセプトを示唆する十分高いですモデルはおそらく不十分です」。
(これは、「帰無仮説の下で観測された値以上の値を見る可能性」のやや自由な解釈であり、教科書の定義であることを意図していません。)

ANOVAが線形モデルの係数について何も伝えない(平均が等しくないと仮定して)」という質問の最後の部分に戻って、あなたのデザインの場合、ANOVAシンプルで十分なバランスが取れており、線形モデルのすべてを示します。グループ平均の信頼区間は、の信頼区間と同じになりますβ等。明らかに、彼の回帰モデルに複数の共変量を追加し始めたとき、単純な一元配置分散分析は直接等価ではありません。その場合、線形回帰の平均応答の計算に使用される情報を、一元配置分散分析で直接利用できない情報で補強します。もう一度ANOVA用語で物事を再表現できると思いますが、それはほとんど学術的な課題です。

この問題に関する興味深い論文は、Gelmanの2005年の論文「分散の分析-なぜこれまで以上に重要なのか」です。提起されたいくつかの重要なポイント。私はこの論文を完全に支持しているわけではありません(個人的にはMcCullachの見解ともっと一致していると思います)が、建設的な読み物になる可能性があります。

最後に、混合効果モデルがある場合、プロットは太くなります。そこでは、データのグループ化に関する迷惑な情報や実際の情報について、さまざまな概念があります。これらの問題はこの質問の範囲外ですが、うなずくに値すると思います。


6
この相互検証ページで受け入れられた回答は、この回答の実用的なアプローチをうまく補完する数学的アプローチにより、ANOVAと回帰の関係もかなりうまく示しています。
-EdM

+1。そうそう、@ MichaelHardyの答えはそのスレッドでかなり良い。言及してくれてありがとう!
usεr11852は回復モニック言う

+1は、加えて、私が感じるこの図では、この答えは ANOVAと線形回帰の間のギャップを埋めるために本当に便利です
ハイタオ・ドゥ

ANOVAはカテゴリカル予測子を持つガウスGLMであることに同意しますか?
DIGIO

@Digio:いいえ、それはそれらの使用の適切性を単純化しすぎます。私はGLMを画像から除外します。
usεr11852は回復モニック言う

55

カテゴリ(ダミーコーディング)回帰子を使用したOLS はANOVA の因子と同等であるという考えに色を付けてみましょう。どちらの場合にもレベル(または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回帰アウト今であるが、異なる切片の点から関係が概ね維持される-私たちは単にのみを「見る」に視覚装置として、反時計回りに回転させ、再びそれぞれの異なるレベル(のために以前に重複プロットを分散さ接続; 2つの異なるモデルを比較しているため、数学的な平等としてではありません!)。

因子の各レベルcylinderは独立しており、垂直線は残差またはグループ内誤差を表します。クラウド内の各ポイントからの距離と各レベルの平均(色分けされた水平線)。色の勾配は、モデルの検証におけるレベルの重要性を示します。データポイントがグループ平均の周りにクラスター化されるほど、ANOVAモデルは統計的に有意になる可能性が高くなります。すべてのプロットの周りの黒い水平線は、すべての因子の平均です。軸の数字は、各レベル内の各ポイントの単なるプレースホルダー番号/識別子であり、ボックスプロットとは異なるプロット表示を可能にするために、水平線に沿ってポイントを分離する以外の目的はありません。20x

そして、これらの垂直セグメントの合計により、残差を手動で計算できます。

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.2626およびTSS - 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 ***

これは、オムニバステストに近いANOVAでは不可能です。これらのタイプの値評価を取得するには、Tukey Honest Significant Difference Testを実行する必要があります。これは、複数のペアワイズ比較を実行した結果(タイプ"完全に異なる出力: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

究極的には、ボンネットの下のエンジンを覗いてみると、モデルマトリックスと列スペースの投影に他ならないので、安心するものはありません。ANOVAの場合、これらは実際には非常に単純です。

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

これは、3つのレベル(例えばと共に一方向ANOVAモデル行列となりcyl 4cyl 6cyl 8として要約)、とき:各レベルまたはグループでの平均でありますグループまたはレベルの観測値の誤差または残差が追加されると、実際のDV観測値が得られます。yij=μi+ϵijμijiyij

一方、OLS回帰のモデル行列は次のとおりです。

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

これは、あり、それぞれ1つの切片と2つの勾配(および)別の連続変数、たとえばと。yi=β0+β1xi1+β2xi2+ϵiβ0β1β2weightdisplacement

ここでのトリックは、最初の例のように、異なる切片を作成する方法を確認することlm(mpg ~ wt + as.factor(cyl), data = mtcars)です-2番目の勾配を取り除き、元の単一の連続変数weight(言い換えると、モデル行列、切片およびの勾配、)。の列はデフォルトで切片に対応します。繰り返しますが、その値はANOVAグループ内平均と同じではありません。これは、OLSモデル行列(下)のの列を最初の列と比較しても驚くべきことではありませんβ0weightβ11cyl 4cyl 411は、ANOVAモデルマトリックスあり、4シリンダーの例を選択するだけです。切片はの効果を説明するためにコーディングダミーを経由してシフトされると、次のように:(1),cyl 6cyl 8

[y1y2y3y4y5yn]=[1x11x21x31x41x51xn][β0β1]+[101010010101][μ~2μ~3]+[ε1ε2ε3ε4ε5εn]

これで、3番目の列がとき、切片を体系的にシフトします OLSモデルが4気筒車のグループ平均値と同一であるが、それを反映しないで「ベースライン」切片の場合のように、そのことを示す、OLSモデルにおけるレベル間の差はない数学的にグループ間の違いの平均: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)

同様に、4番目の列が場合、固定値がに追加されます。したがって、行列方程式はます。したがって、このモデルからANOVAモデルに移行するのは、連続変数を取り除くだけで、OLSのデフォルトインターセプトがANOVAの最初のレベルを反映していることを理解するだけです。1μ~3yi=β0+β1xi+μ~i+ϵi


6
+1、グラフィカルなイラストが大好き!! 出版品質!
ハイタオデュ

@ hxd1011これはあなたの非常にいいです。それは有り難いです。
アントニ・パレラダ

6

Antoni Parelladaとusεr11852の回答は非常に良かったです。コーディングの観点からのあなたの質問に対応しますR

ANOVAは、線形モデルの係数については何も伝えません。では、線形回帰はどのように分散分析と同じですか?

実際、aov機能する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へのラッパーが提供されます。lmとの主な違いは、印刷、要約などがフィットを処理する方法にあります。これは、線形モデルの分析ではなく、分散分析の従来の言語で表現されます。


1

すべてのデータエントリを取得し、それらを単一の列Yに配置し、残りの列を指標変数1 {i番目のデータは元のanova配置のj番目の列の要素}で、Yの単純な線形回帰を取る他の列(列Bなど)については、ANOVA問題と同じDF、SS、MS、およびF検定統計量を取得する必要があります。

したがって、ANOVAは、バイナリ変数でデータを書き込むことにより、線形回帰として「扱う」ことができます。また、B上のYの回帰の回帰係数は、平均と同じである必要があることに注意してください。元のデータで計算された列Bの。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.