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

第8章 共分散分析

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

8.1 共分散分析の原理

(1) 投与前値の影響

あるデータを群間で比較する時、そのデータに影響を与える他のデータが存在し、それが比較に影響を及ぼしてしまうことが時々あります。 例えば2種類の降圧剤AとBの降圧効果を比べるために、高血圧症患者20人を2群に分けてそれぞれの群にA剤とB剤を投与したとします。 そして投与前後における収縮期血圧とその変化量を測定したところ、表8.1.1のような結果になったとします。

表8.1.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

この時、血圧の変化量がその投与前値によって影響を受け、しかも2群の血圧の投与前値が異なっていたとすると、2つの薬剤の降圧効果を公平に比較できない恐れがあります。 つまり仮に2群の血圧変化量に違いがあったとしても、それは薬効の違いを表すものではなく、単に投与前値の違いを反映しているだけかもしれないからです。

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

図8.1.1 投与前値と投与後値の群別散布図 図8.1.2 投与前値と変化量の群別散布図

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

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

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

回帰直線を利用して個々のプロットを総平均値の位置までずらす場合、プロットの重心をずらす時と違って回帰直線からの誤差を考慮する必要があります。 例えば表8.1.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.2において各プロットのy座標が変化量であり、それはどちらの群でもほぼ0〜-30の範囲に入っています。 この範囲の幅は変化量のバラツキの幅を反映しています。 しかし変化量は投与前値の影響を受けるので、変化量のバラツキのある部分は投与前値のバラツキに起因しています。 そのため、もし全てのプロットの投与前値が同じ値なら変化量のバラツキはもっと小さいと推測できます。

したがって全てのプロットを回帰直線にそって総平均値の位置までずらすことによって、投与前値の違いを補正するだけでなく、投与前値のバラツキに起因する変化量のバラツキを取り除くことにもなります。 これによりデータの誤差を減らして精度の高い分析をすることが可能になります。

ただ、ここで問題になるのは2群の回帰直線の平行性ということです。 この例のように2群の回帰直線がほぼ平行の時は良いものの、回帰直線が平行ではなく、クロスしたりするとちょっと面倒なことになります。 なぜなら2群の回帰直線が平行ではない時は、投与前値を統一する際、統一する値によって2群の変化量の大小関係が変わってしまい、どちらの群がより低下したか判断できなくなってしまうからです。 このように群によって投与前値の影響が異なる時は「投与前値と群の間に交互作用(effect modification)がある」といいます。 (→1.9 科学的研究のデザイン (4)フィッシャーの3原則)

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

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

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

(3) 共変数と交絡因子

疫学分野では原因項目つまり曝露(exposure)と関連があり、結果項目つまり帰結(outcome)に影響を与える危険因子で、かつ原因無群と原因有群でその危険因子の大きさが異なっているものを交絡因子(confounding factor)と呼びます。 交絡因子は共分散分析における共変数にほぼ相当します。 交絡とは2つの要因が重なり合っている状態のことです。 そして完全に重なり合っていて分離できない状態のことを完全交絡、部分的に重なり合っていて部分的に分離できる状態のことを部分交絡といいます。

図8.1.5 完全交絡 図8.1.6 部分交絡

例えば図8.1.5ではA群の共変数は全て低値の同じ値であり、B群の共変数は全て高値の同じ値です。 この場合、群の差=共変数の差になり、群の効果と共変数の効果を区別することができません。 これが群という要因と共変数という要因が完全に重なり合っていて分離できない状態、つまり完全交絡状態です。

それに対して図8.1.6では2つの群の共変数の値は全体として異なっているものの、どちらの群も共変数の値がばらついています。 そして2本の破線で囲まれた部分は同じような共変数の値がどちらの群にも存在します。 そのため群ごとに共変数と目的変数の回帰直線を計算し、それを利用して群の効果と共変数の効果を分離することができます。 これが群という要因と共変数という要因が部分的に重なり合っている状態、つまり部分交絡状態です。

共分散分析は群ごとに回帰直線を計算し、それを利用して群の効果と共変数つまり交絡因子の効果を分離して検討する手法です。 そのため部分交絡状態の時は群と交絡因子の効果を分離して検討することができるものの、完全交絡状態の時は群と交絡因子の効果を分離して検討することはできません。 このように共分散分析は交絡因子の影響を取り除くための便利な手法ですが、どんな時でも交絡因子の影響を取り除くことができるわけではないので注意が必要です。

(4) 共分散分析と傾向スコア

交絡因子の影響を取り除く手っ取り早い方法として、部分交絡している範囲のプロットだけを対象にして――つまり図8.1.6の破線で囲まれた部分のプロットだけを対象にして――群間比較を行うという乱暴な方法が考えられます。 この方法は2群の共変数の値がほぼ同じになるので、共変数を無視して、結果項目について単純な群間比較をすることができます。 そのため共分散分析を知らない人にとっては、結果の精度は落ちるものの、単純でわかりやすい結果が得られます。

ただしこの方法は共変数が1つの時しか利用できません。 共変数が2つ以上あると共変数ごとに部分交絡している範囲外のプロットを除外することになり、解析対象になるプロットが非常に少なくなってしまうからです。 そこで第10章で説明するロジスティック回帰分析を利用して、複数の共変数の値に基づいてプロットが特定の群に属する確率を求め、この値を共変数代わりにして部分交絡している範囲を限定する方法が考案されています。

例えば図8.1.6では共変数の値が小さいプロットはA群に属す確率が高く、値が大きいプロットはB群に属す確率が高くなります。 そのため特定のプロットがA群に属す確率は、共変数の値が大きくなるのに反比例して小さくなります。 そしてA群に属す確率がほぼ同じプロットは共変数の値もほぼ同じになります。

ロジスティック回帰分析を利用すると、共変数が2つ以上あっても、共変数同士の関連性を考慮した上でA群に属す確率をひとつだけ求めることができます。 そしてA群に属す確率がほぼ同じプロットは、共変数同士の関連性を考慮した共変数グループの値――つまり症例の背景因子――がほぼ同じになります。 そこでその確率を傾向スコア(プロペンシティスコア、propensity score)と呼び、それを利用して部分交絡している範囲を限定して結果項目について単純な群間比較を行うことができます。

しかし図8.1.6からわかるように、この方法は解析対象になるデータが少なくなり、しかも共分散分析と違って共変数によるデータのバラツキを取り除いて誤差を減らすことはできません。 そのため共分散分析――第3節で説明するように、共分散分析は共変数が複数でも適用できます――に比べて効率が悪いラフな方法です。

図8.1.7 共変数の影響が非平行の時-1 図8.1.8 共変数の影響が非平行の時-2

また図8.1.7と図8.1.8のように共変数が結果項目に及ぼす影響が群によって異なる時つまり共変数と群の間に交互作用がある時は、部分交絡している部分が異なると2群の比較結果が反対になってしまうことがあります。 傾向スコアを利用した単純な群間比較は、特定の背景因子を持つ被験者だけを対象にした層別解析(Statified analysis)またはサブグループ解析(subgroup analysis)です。 そのため図8.1.7と図8.1.8のような場合は、特定の背景因子を持つ被験者の比較結果から、その被験者とは異なる背景因子を持つ被験者の比較結果を推測することは不可能です。 これは共変数の影響を考慮して結果項目について群間比較したい時には致命的な欠点です。 (→8.3 共分散分析と層別解析)

それに対して共分散分析は共変数が結果項目に及ぼす影響を分析し、それに基づいて特定の背景因子を持つ被験者の比較結果を推測する手法であり、共変数の影響を考慮して結果項目について群間比較するための手法です。 そのため共分散分析を用いれば、図8.1.7と図8.1.8のような場合でも「群によって共変数の影響が異なっていて、共変数の値が高い時は結果項目の値はB群の方が高く、共変数の値が低い時は結果項目の値はA群の方が高い」という正しい結論を導くことができます。

傾向スコアを利用した単純な群間比較の欠点を補うために、傾向スコアを共変数扱いして共分散分析を行うことがあります。 しかし共変数を傾向スコアに変換すると共変数が結果項目にどのような影響を与えているのか医学的に解釈するのが難しくなってしまいます。 また傾向スコアはロジスティック回帰式から求めた確率値であり、共変数との間にロジスティック関数で表される曲線関係があります。 そのため共変数と結果項目の間に直線関係があるのなら、傾向スコアと結果項目との関係は曲線関係になり直線関係にはなりません。 したがって傾向スコアを変数扱いして共分散分析や重回帰分析等の線形回帰分析を適用すると結果の精度が低くなってしまいます。

以上のことから、共変数をわざわざ傾向スコアに変換して共分散分析を行うのは非合理だということがわかると思います。 したがって共変数が複数の場合でも非合理で精度が低い傾向スコアを利用した群間比較ではなく、合理的で精度の高い共分散分析を用いることをお薦めします。