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

第8章 共分散分析

この章では共分散分析の原理と結果の解釈、そして他の手法との関係について解説します。

8.1 共分散分析の原理

(1) 投与前値の影響

あるデータを群間で比較したい時に、そのデータに影響を与える他のデータが存在し、それが比較に影響を及ぼしてしまうことが時々あります。 例えば2種類の降圧剤AとBの降圧効果を比べるために、高血圧症患者20人を2群に分けてそれぞれA剤とB剤を投与したとします。 そして、投与前後における最高血圧とその変化量を測定したところ、表8.1のような結果になったとします。 この時、血圧の変化量がその投与前値によって影響を受け、しかも2群の血圧の投与前値が異なっていたとしますと、2つの薬剤の降圧効果を公平に比較できない恐れがあります。 つまり、仮に2群の血圧変化量に違いがあったとしても、それは薬効の違いを表すものではなく、単に投与前値の違いを反映しているだけかもしれないからです。

表8.1 薬剤投与前後の最高血圧
患者No.薬剤投与前投与後変化量
1A140126-14
2A140132-8
3A145127-18
4A145132-13
5A150130-20
6A150135-15
7A155132-23
8A160140-20
9B160142-18
10B165152-13
11B165155-10
12B165150-15
13B170155-15
14B170150-20
15B170148-22
16B175155-20
17B175150-25
18B180157-23
19B180160-20
20B185158-27
平均値A148132-16
B172153-19
標準偏差A745
B755
標準誤差A2.51.61.7
B2.21.41.5

表8.1の結果ではB剤投与群の方がよく低下していて、一見するとB剤の方が降圧効果が大きいように見えます。 しかし2群の投与前値が異なっているため、いきなり速断を下すのは危険です。 そこで、例によってデータをグラフ表示してみることにしましょう。 説明のために投与前後の散点図と、投与前と変化量の散点図を並べて描いてみます。

図8.1 最高血圧の群別散点図

図8.1(b)のグラフを見ると、B剤投与群のプロットの方が下にあり、よく低下しているように見えます。 しかし両群の投与前値がかなり違っており、しかもそれが変化量に影響を与えているようです。 この場合、因果関係の方向がはっきりしていて、しかも両者の関係が直線的のようですから、投与前値を説明変数にし、変化量を目的変数にした回帰直線によって両者の関係を要約することができます。 そこで群ごとに回帰直線を計算すると次のようになります。 (→第5章 相関と回帰)

説明変数x:最高血圧の投与前値  目的変数y:最高血圧の変化量  y~:変化量推定値
A剤投与群:y~=63-0.535x  寄与率 r2=0.614(61.4%)
B剤投与群:y~=67-0.503x  寄与率 r2=0.561(56.1%)

この回帰直線を描いたのが、図8.1(b)の赤と黒で描かれた直線です。 どちらの回帰直線でも寄与率が50%を越えているので、投与前値が変化量に与える影響はかなり大きいようです。 また2群の回帰直線はよく似ており、どちらの群でも投与前値が1大きくなると変化量は0.5程度低下する、つまり投与前値が高いほどよく低下することがわかります。 この結果から、投与前値の高いB剤投与群は得をしており、投与前値の低いA剤投与群は損をしていると考えられます。

(2) 回帰直線による補正

そこで、もし2群の投与前値が同じだったとしたら変化量はどのような値になるのか、この回帰直線を利用して計算してみることにしましょう。 統一する投与前値としては、2群を合わせて計算した投与前値の平均値つまり投与前値の総平均が適当でしょう。 その値を計算すると162になります。 そこで2群の回帰直線式のxに投与前値の総平均162を代入し、それぞれの式で変化量推定値y~を求めると次のようになります。

A剤投与群:y~=63-0.535×162≒-24
B剤投与群:y~=67-0.503×162≒-14

これは図8.1(b)において、A剤投与群のプロットの重心(投与前平均値=148,変化量平均値=-16)と、B剤投与群のプロットの重心(投与前平均値=172,変化量平均値=-19)を、それぞれの回帰直線にそって総平均の位置までずらしたことに相当します。 この結果から、もし投与前値が2群とも162だったとしたらA剤投与群の方がよく低下していることがわかります。 これと同様なことを個々のデータについて行えば、全てのプロットを回帰直線にそって総平均の位置までずらすことができます。 そうすると、それは全例の投与前値が全て162だった時の結果になるはずです。

回帰直線を利用して個々のプロットを総平均の位置までずらす場合、プロットの重心をずらす時と違って、回帰直線からの誤差を考慮する必要があります。 例えば、表8.1の患者No.1のデータを総平均162の位置までずらすのは、次のような手順で行います。

  1. 回帰直線のxに実際の投与前値140を代入して、理論上の変化量推定値y0~を求める。
    y0~=63-0.535×140=-11.9
  2. 実際の変化量-14と理論上の変化量推定値y0~との誤差eを求める。
    e=-14-(-11.9)=-2.1
  3. 回帰直線のxに総平均162を代入して、平均変化量推定値ym~を求める。
    ym~=63-0.535×162=-23.67
  4. 平均変化量推定値ym~に誤差eを足して、補正変化量推定値y1~を求める。
    y1~=-23.67+(-2.1)=-25.77
    この値が、患者No.1のプロットを総平均の位置までずらした時の変化量の値になる。

図8.1(b)において各プロットのy座標が変化量であり、それはどちらの群でもほぼ0〜-30の範囲に入っています。 この範囲の大きさは、変化量のバラツキの大きさを反映しています。 しかし変化量は投与前値の影響を受けるため、変化量のバラツキのある部分は投与前値のバラツキに起因していて、もし全てのプロットの投与前値が同じ値ならば変化量のバラツキはもっと小さいと推測できます。 したがって、全てのプロットを回帰直線にそって総平均の位置までずらすことによって、投与前値の違いを補正するだけでなく、投与前値のバラツキに起因する変化量のバラツキを取り除くことにもなります。 これによってデータの誤差を減らし、精度の高い分析をすることが可能になります。

ただ、ここで問題になるのは2群の回帰直線の平行性ということです。 この例のように、2群の回帰直線がほぼ平行の時は良いのですが、回帰直線が平行ではなくクロスしたりすると、ちょっと面倒なことになります。 と言うのは、2群の回帰直線が平行ではない時には、投与前値を何らかの値に統一する時、その統一する値によって2群の変化量の大小関係が変わってしまい、どちらの群がより低下したのか判断できなくなってしまうからです。

図8.2 回帰直線の平行性

例えば図8.2(b)のように、2群の回帰直線がクロスしたとしましょう。 この場合、投与前値が低い時にはB剤の方が低下作用が強く、投与前値が高い時にはA剤の方が低下作用が強いことになります。 このような場合は、どちらか一方の薬剤だけを使用するのではなく、投与前値によって2剤を適宜使い分けるという使用法が考えられます。 つまり、どちらの薬剤がより効果があるかといった単純な薬効比較の問題ではなく、それぞれの薬剤にはどのような特徴があり、どのように使い分けるべきかという薬剤のプロフィールの問題になります。 こういった情報は、単純な薬効比較よりも有益な時があります。

このように、他のデータの影響を考慮して目的のデータを総合的に比較する手法を「共分散分析(ANOCOVA、analysis of covariance、アノコバ)」といい、影響を考慮する変数のことを「共変数(covariable)」といいます。 この手法は、比較したいデータを目的変数にして影響を考慮するデータを説明変数にした回帰分析と、群を要因にした一元配置分散分析を組み合わせた手法に相当します。 共分散とは回帰分析で重要な役目をする値であり、この手法が共分散分析と呼ばれるのは共分散を利用した分散分析だからです。 (→4.1 多標本の計量値第5章 相関と回帰)