玄関雑学の部屋雑学コーナー統計学入門

8.2 共分散分析結果の解釈

(1) 共分散分析表

表8.1.1のデータに共分散分析を適用すると次のような結果になります。 (注1)

目的変数y:収縮期血圧の投与前後の変化量   共変数x:収縮期血圧投与前値
A剤投与群:群別回帰式 y=63 - 0.535x  共通回帰式 yc=60 - 0.514x
B剤投与群:群別回帰式 y=67 - 0.503x  共通回帰式 yc=69 - 0.514x
全体(A剤投与群+B剤投与群):全体回帰式 y=18 - 0.219x  共通回帰式 yc=66 - 0.514x
表8.2.1 共分散分析表(ANCOVA table)
要因平方和自由度平均平方和(分散)F値
群差33.08133.082.865
共通回帰254.941254.9422.084
修正群差114.811114.819.945
全体回帰173.211173.2115.004
非平行性0.2310.230.020
残差184.701611.54
全体472.9519

各群の群別回帰式は、前節と同じように群ごとに計算した回帰直線です。 共通回帰式は2群の回帰直線が平行と仮定した時の回帰式です。 この共通回帰式は次のようにして計算します。 まず2群のデータを平行移動し、データの重心が全体の重心に重なるようにします。 この移動はxとyについて全体の平均値から各群の平均値を引いて移動距離ΔxとΔyを求め、その値を各群のデータに足すことに相当します。

例えば表8.1.1の患者No.1(A剤投与群)のデータと患者No.9(B剤投与群)のデータについて、移動後のデータを計算すると次のようになります。

○収縮期血圧投与前値の平均値xと投与前後の変化量の平均値y
A剤投与群:x=148、y=-16  B剤投与群:x=172、y=-19  全体:x=162、y=-18
○患者No.1
移動前のデータ:x=140、y=-14 移動距離:Δx=162 - 148=14、Δy=(-18) - (-16)=-2
移動後のデータ:x'=140 + 14=154、y'=(-14) + (-2)=-16
○患者No.9
移動前のデータ:x=160、y=-18 移動距離:Δx=162 - 172=-10、Δy=(-18) - (-19)=1
移動後のデータ:x'=160 - 10=150、y'=(-18) + 1=-17

このような計算を全てのデータについて行うと2群のデータの重心が重なり、離れていた2つの群が1つの群のようになります。 そしてこの状態で全体の回帰直線を計算します。 これが全体の共通回帰直線であり、その式が全体の共通回帰式になります。 こうすると、その共通回帰直線の傾きは群ごとに計算した回帰直線の傾きを平均した値になります。 ただし単純な平均ではなく2群の例数で重み付けした平均になり、例数の多い群の傾きにより近い値になります。

次にその共通回帰直線の重心を2群の重心まで平行移動します。 そうすると傾きは同じで切片だけ異なった2本の回帰直線ができます。 この2本の回帰直線が群ごとの共通回帰直線であり、その式が共通回帰式になります。 これらの回帰直線の関係を模式図で表したものが図8.2.1です。 計算の複雑さを反映して、この図はかなり複雑ですから何が何やらわからない方もいると思います。 そんな方は「とにかくめったやたらと複雑な方法で計算した平行な怪奇直線、いや回帰直線なんだな…」と思ってください。

全体回帰式は2群のデータを移動せず、そのままの状態で全体の回帰直線を計算した時の回帰式です。 これは2群の回帰直線の傾きと切片がほぼ同じ時だけxとyの関係を正しく反映し、それ以外の時はxとyの関係を正しく反映しません。 そのため共分散分析の計算に必要なので求めているだけであり、実質的な意味はあまりありません。

図8.2.1 各種の回帰直線

表8.2.1の共分散分析表における群差の行は、2群のyの平均値をそのまま比較した検定結果を表しています。 この行の平方和は群の違いによって説明できるyの変動分つまり情報量を表し、自由度=(群数−1)は情報の担い手の数を表し、平均平方和は平方和を自由度で割った分散つまり情報密度を表し、F値は群差の情報密度と残差の情報密度の比を表しています。 これは表8.1.1の変化量について、単純な一元配置分散分析つまり対応の無いt検定を行なったものとほぼ同じです。 ただし残差が減っているためF値が大きくなり、単純な一元配置分散分析よりも検定効率が良くなっています。

共通回帰の行は共通回帰式に関する検定結果を表しています。 修正群差の行は共通回帰直線にそって2群のデータを総平均の位置までずらした時のyの平均値、つまり2群の修正平均値を比較した検定結果を表しています。 全体回帰の行は全体回帰式に関する検定結果を表しています。 しかしこの行は共分散分析の計算に必要なので求めているだけであり、実質的な意味はあまりありません。 非平行性の行は2群の群別回帰直線の傾き、つまり2群の群別回帰式の回帰係数を比較した検定結果を表しています。 残差の行は群差から非平行性までの要因で説明し切れないデータの変動を表しています。 共分散分析ではこれが誤差になります。

表8.2.1の共分散分析表において共通回帰と修正群差の間に隙間があり、全体回帰と非平行性の間にも隙間があるのは、群差と共通回帰を合わせた平方和と、修正群差と全体回帰を合わせた平方和が等しくなるからです。 このことはデータの変動のうちのある部分については、2群の平均値の違いによる変動と平行な共通回帰直線による変動を合わせたものと解釈できると同時に、修正平均値の違いによる変動と全体の回帰直線による変動を合わせたものとも解釈できることを意味しています。

その結果、共分散分析表では全要因の平方和の合計が全体の平方和と一致せず、全要因の自由度の合計も全体の自由度と一致しません。 これは同じ変動について2通りの解釈をしているからであり、群差+共通回帰+非平行性+残差の合計または修正群差+全体回帰+非平行性+残差の合計が全体に一致します。 このことは少々複雑なことであり、やさしく説明するのはやっかいなのでここではあえて詳しく説明しません。 興味のある方は(注1)をじっくりお読みください。

(2) 共分散分析結果の解釈

共分散分析の結果を見る時は、まず最初に共分散分析表の共通回帰と非平行性の行に注目します。 共通回帰のF値が大きければ共通回帰の情報密度が誤差の情報密度よりも濃いことになり、共通回帰直線が意味を持つ、つまり共変数の影響が無視できないことになります。 非平行性のF値が大きければ非平行性の情報密度が誤差の情報密度よりも濃いことになり、2群の群別回帰直線が非平行である、つまり共変数の与える影響が2群で異なっていることになります。

したがって共変数の影響を取り除いて2群の平均値を純粋に比べることができるのは、共通回帰のF値が大きく、かつ非平行性のF値が小さい場合に限ります。 この場合は共変数の与える影響が無視できず、しかも2群の回帰直線はほぼ平行と考えられます。 その結果、図8.1.3のように共変数をどのような値に統一しても2群の修正平均値の差は同じになり、それは2群の共通回帰式における切片の差と等しくなります。

図8.1.3 回帰直線が平行性の時 図8.1.4 回帰直線が非平行性の時

非平行性のF値が大きい時は2群の回帰直線は平行ではなく、共変数の与える影響が群によって異なると考えられます。 その場合は2群の群別回帰直線が意味を持ちます。 そして図8.1.4のようにそれらの回帰直線は非平行であり、必ずどこかで交わります。 したがって共変数の影響を取り除いて2群の平均値を純粋に比べることはできません。

その代わり、このことから群の性質が異なることが推測できます。 例えばこの例のように群によって種類の異なる薬剤を使用していたのなら、薬剤の性質が異なるということが推測できます。 薬剤の性質が異なるということはその作用機序が異なる、つまり薬剤のプロフィールが異なるという可能性を示唆し、これはこれで重要な情報になります。

共通回帰のF値も非平行性のF値もどちらも小さい時は共変数の与える影響が小さく、わざわざ共分散分析を行なう必要はないと考えられます。 この場合は共変数を無視して、単なる一元配置分散分析を行なえば良いことになります。 そしてその結果は、共分散分析表において群差の行を要因Aとし、共通回帰の行と非平行性の行を残差にプールしたものと一致します。

それではF値がどれくらいなら「大きい」と考えられるのかというと、要因の情報密度が誤差の情報密度よりも2倍以上濃いこと、つまりF値が2以上あること、または(要因の情報量+誤差情報量)に対する要因の情報量の割合つまり寄与率が20%以上あることを目安にすると良いといわれています。

またF値は検定統計量ですから、この値を利用して分散分析と同じように各要因の検定をすることができます。 これはデータの変動におよぼす各要因の影響が数学的な意味で0であるかどうかを検定するだけの有意性検定であり、実質的にほとんど無意味なシロモノです。 しかし有意症患者を満足させるためには役立つので、実質的な意味はなくても普通は検定を行います。

回帰直線が意味を持ち、それが平行かどうかは、これまでくどくしつこく述べてきたように、本来は回帰直線の傾きについて医学的・薬学的な面から考察を加えて科学的に判断すべきことです。 F値や寄与率はそのための参考資料にすぎません。 いくら検定結果が有意になろうと、寄与率が大きかろうと、科学的に見て意味のある影響を与えていなければ回帰直線は意味を持たないと考えるべきです。

ここで例題の結果について検討を加えてみましょう。 まず共通回帰と非平行性のF値と寄与率は次のようになります。

○共通回帰
傾き=-0.514
Fβ=22.084(p=0.0002)>F(1,16,0.05)=4.494 … 有意水準5%で有意

○非平行性
群別回帰直線の傾き:A剤投与群=-0.535  B剤投与群=-0.503
FD=0.020(p=0.8887)<F(1,16,0.05)=4.494 … 有意水準5%で有意ではない

※全体回帰(参考)
傾き=-0.219
Fβ0=15.004(p=0.0013)>F(1,16,0.05)=4.494 … 有意水準5%で有意

上記の結果から、共通回帰のF値が非常に大きくて寄与率が50%を越えており、傾きもかなり大きいことがわかります。 それに対して非平行性のF値と寄与率は非常に小さく、2群の傾きの違いも微々たるものであることもわかります。 したがって平行な回帰直線が意味を持ち、それによって投与前値の影響を取り除いて2群の平均値を純粋に比較することができると判断して良いでしょう。 例えば2群の投与前値を総平均162に統一すると次のようになります。

○修正平均値
A剤投与群=59.817 - 0.514×162.25≒-23.579  B剤投与群=69.302 - 0.514×162.25≒-14.095
○修正群差(投与前値がどんな値でも一定)
修正平均値の差(B剤投与群-A剤投与群)=(-14.095) - (-23.579)=9.484 … 2群の共通回帰式の切片の差
FAA=9.945(p=0.0061)>F(1,16,0.05)=4.494 … 有意水準5%で有意

A剤投与群の修正平均値は第1節で群別回帰直線を利用して求めた値-24とは若干違います。 しかしやはり単純な平均値とは大小関係が逆転していて、A剤投与群の低下量の方が9mmHgだけ多くなっています。 この変化量の差は医学的にまあまあ意味のある値ですし、寄与率もまあまあの値です。 したがって次のように結論して良さそうです。

医学的結論:血圧の投与前値が変化値に与える影響は両薬剤とも同じである。 そして投与前値がどんな値でも血圧低下作用はB剤よりもA剤の方が強い

ちなみに投与前後の変化量について、投与前値の影響を無視して単純な一元配置分散分析を適用すると次のようになります。

○群
A剤投与群平均値=-16.375  B剤投与群平均値=-19  平均値の差(B剤投与群 - A剤投与群)=-2.625
FA=1.353(p=0.2599)<F(1,18,0.05)=4.414 … 有意水準5%で有意
表8.2.2 分散分析表(ANOVA table)
要因平方和自由度平均平方和(分散)F値
33.08133.081.353
残差439.871824.44 
全体472.9519 

この結果から共分散分析を用いると平均値の大小関係が逆転するだけでなく、誤差の平方和と分散がどちらも半分以下になり、結果についての数学的な信頼性が高くなることがわかります。

(3) 共分散分析と変化量と変化率

投与前値をx、投与後値をyとして、その間に次のような直線関係があるとします。

y=α + βx

すると投与前後の変化量dは次のように表されます。 この式の推定式が共分散分析における回帰式に相当します。

d=y - x=(α + βx) - x=α + (β - 1)x

この式でβ=1の時つまり回帰係数が0の時は次のようになります。 この場合、共分散分析は投与前後の変化量をそのまま比較することになります。

d=α + (β - 1)x=α

また投与前後の変化量を投与前値で割ってパーセントに変換した変化率d(%)は次のようになります。

この式でα=0の時つまり回帰式の切片が0の時は次のようになります。 この場合、変化率の比較は投与前値xを100に統一した時の共分散分析と一致します。


d=α + (β - 1)x=(β - 1)x

これらのことから投与前後の変化量を計算したり変化率を計算したりするのは共分散分析の特別な場合に相当することと、回帰係数が0の時は変化量が正当性を持ち、切片が0の時は変化率が正当性を持つことがわかります。 しかしそれ以外の時は——実はほとんどの場合が「それ以外の時」なのですが——変化量も変化率も投与前値の影響を取り除くことができません。 したがって、そのような時は共分散分析を適用しなければなりません。 (→2.4 差と比とパーセントの使い分け)

以上のように、結果に影響をおよぼす項目が存在する時は、その平均値が群によって違っている時はもちろん、たとえ違いがなくても共分散分析を用いて純粋で精度の高い分析をすることが望まれます。 特に前後の変化量を群間で比較する時は、原則として初期値を共変数にした共分散分析が必要です。 知名度が低くてあまり利用されていない共分散分析ですが、便利で応用範囲が広いのでぜひお薦めしたい手法です。

(注1) 共変数をx、目的変数をy、群数すなわち要因群の水準数をa、各群の例数をriとして、表8.1.1を一般化すると次のようになります。

表8.2.3 共分散分析の
一般的データ
群内No.xy
A1 1x11y11
:::
jx1jy1j
:::
r1x1r1y1r1
Tx1Ty1
平均値mx1my1
:::
Ai 1xi1yi1
:::
jxijyij
:::
rixiriyiri
TxiTyi
平均値mximyi
:::
Aa 1xa1ya1
:::
jxajyaj
:::
raxarayara
TxaTya
平均値mxamya
全体 TxTy
平均値mxmy

共分散分析ではデータyijを次のように2通りに分解して考えます。

全体回帰:
共通回帰:
全体回帰式による推定値:   共通回帰式による推定値:
群別回帰式による推定値:
全体回帰式の回帰係数:b0  共通回帰式の回帰係数:b   Ai群における群別回帰式の回帰係数:bi
i=1,…,a  j=1,…,ri

この基本式に対応する平方和、自由度、分散は次のようになります。

○全体
例数:   平方和:
自由度:φT=n - 1   分散:
○全体回帰
平方和:
積和:
回帰係数:   回帰平方和:
自由度:φβ0=1   分散:
○共通回帰
平方和:
積和:
回帰係数:   回帰平方和:
自由度:φβ=1   分散:
○群差
平方和:
自由度:φA=a - 1   分散:
○修正群差
平方和:SAA=SA + Sβ - Sβ0   自由度:φAA=a - 1   分散:
○群別回帰
回帰係数:   回帰平方和:   自由度:φβi=1   分散:
○非平行性
平方和:   自由度:φD=a - 1   分散:
○残差
平方和:   自由度:φR=n - 2a   分散:

各回帰式の切片は次のようにして求めます。

my=a + bmx より a=my - bmx

また共通回帰式から求めた各群の修正平均値の分散を利用して、xの値が全体の平均値の時の2群の修正平均値の差の検定と推定を行うことができます。 この修正平均値の差は2群の共通回帰式の切片の差と一致します。 そして群数が2の時の検定は修正群差の検定と一致します。

i群の修正平均値:   
p群とq群の修正平均値の差:   
検定:>F(1,φR,α)の時、有意水準100α%で有意
100(1-α)%信頼区間:
 → 下限:  上限:
※ただしF(1,φR,α)を用いるのはフィッシャー型多重比較の場合。 多重比較の種類に応じてこの値を適当に変える。 (→4.1 多標本の計量値 (注4))
図8.2.2 共分散分析のグラフ的解釈
図8.2.3 平方和間の関係

表8.1.1のデータについて実際に計算すると次のようになります。 これらの統計量を用いて本文中の表8.2.1の共分散分析表を作成することができます。

  φT=20 - 1=19   
  
  
φβ0=1  Vβ0=173.21
  
  
  
  
  
φβ=1  Vβ=254.94
  φA=2 - 1=1  VA=33.08
SAA=33.08 + 254.94 - 173.21=114.81   φAA=2 - 1=1  VAA=114.81
SD=99.33 + 155.84 - 254.94=0.23   φD=2 - 1=1  VD=0.23
SR=472.95 - 33.08 - (99.33 + 155.84)=184.70   φR=20-2×2=16   

ちなみに平方和と同様に積和にも相加性(additivity)があり、共分散分析はこの性質を利用しています。 群間積和は各群の全てのデータxijとyijが群平均値mxiとmyiに等しい時の全体積和に相当します。 (→4.1 多標本の計量値 (注1))

全体積和:
群間積和:

また群数が2の時、非平行性の検定は次のように2群の回帰係数の差の検定に相当します。



※V(b1 - b2):b1とb2の差の分散

なお1つの回帰係数の検定は1つの相関係数の検定と一致します。 しかし2つの相関係数の差の検定は2つの回帰係数の差の検定とは異なり、フィッシャーのz変換(z-transformation)を利用して次のようになります。 (→5.1 相関係数と回帰直線 (注1))

フィッシャーのz変換:
逆変換:
   として
>t(∞,α)の時、有意水準100α%で有意