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

7.2 重回帰分析結果の解釈

(1) 各種パラメーターの意味

重回帰式の信頼性の目安として重寄与率(multiple coefficient of determination)R2という値があります。 これは単回帰分析における寄与率を多変量に拡張したものであり、重回帰式によって計算した目的変数yの推定値の寄与率に相当します。 そのため重寄与率は目的変数の全変動(yの平方和)のうち、p個の説明変数全体によって説明される割合を表します。

重寄与率の平方根Rは重相関係数(multiple correlation coefficient)という値になり、重相関分析の指標として用います。 これは単相関分析における相関係数を多変量に拡張したものであり、とyの相関係数に相当します。 そのため重相関係数は目的変数とp個の説明変数全体の間に因果関係を想定せず、相互に影響を及ぼし合っているという相関関係を想定した時の相関性の指標になります。 そして重寄与率または重相関係数と区別するために、普通の寄与率を単寄与率、相関係数を単相関係数と呼ぶことがあります。 またとyは必ず同じ符号になるため、単相関係数と違って重相関係数は負の値にはなりません。

重回帰式における偏回帰係数は、他の説明変数が一定という条件で各説明変数が「1」変化した時に目的変数がいくつ変化するかを表す値です。 そのため符号が変化の方向を表し、絶対値が目的変数に与える影響の強さを表します。 ところが各説明変数の単位が異なっている時は、そのままの値で影響力の強さを比較するわけにはいきません。

例えば身長をメートル単位で測定した時とセンチメートル単位で測定した時を比較してみましょう。 メートル単位で測定した時の偏回帰係数は、身長が「1メートル」変化した時に目的変数がいくつ変化するかを表します。 それに対してセンチメートル単位で測定した時の偏回帰係数は、身長が「1センチメートル」変化した時に目的変数がいくつ変化するかを表します。 そのため前者の偏回帰係数は後者の偏回帰係数の100倍の大きさになり、見かけ上、非常に強い影響力を持つように思えてしまいます。

また説明変数の中に年齢のように年単位のものと、体重のようにkg単位のものとがあると、両者の偏回帰係数を比較することは「年齢が1年増加した時の影響力」と「体重が1kg増加した時の影響力」を比較することになります。 これは医学的に公平な比較とは言い難い時があります。

そこで次のように説明変数xと目的変数yの平均値を0、標準偏差を1に標準化し、各変数を単位と無関係な値にしてから重回帰式を計算してやります。 この場合、全ての変数の平均値が0になるため重回帰式の定数も0になります。

 (j=1,…,p)
  

この時の偏回帰係数を標準偏回帰係数(standard partial regression coefficient)といいます。 この値は「他の説明変数が一定」という条件で、ある説明変数が「1標準偏差」変化した時に目的変数が標準偏差単位でどれだけ変化するかを表す値です。 標準偏回帰係数は各変数の単位とは無関係な値のため、これによって各説明変数の相対的な影響力の強さを比較することができます。 そしてこの値は説明変数が1つの時は目的変数との単相関係数に一致します。 しかし説明変数が2つ以上になると単相関係数とは一致せず、時には1以上や-1以下の値になることもあります。 (→5.1 相関係数と回帰直線)

また他の説明変数の影響を取り除いた時の目的変数と各説明変数の相関係数を偏相関係数(partial correlation coefficient)といい、次のように表します。

yとxjの偏相関係数:ry・1,…,j-1,j+1,…,p=rj・[p]

この値は説明変数が1つの時には単相関係数と一致し、-1〜1の間でほぼ標準偏回帰係数と比例した値になります。 ただしこの値は説明変数と目的変数の間に因果関係を想定せず、相互に影響を及ぼし合っているという相関関係を想定した時の相関性の指標です。 そのため重相関係数と合わせて重相関分析の指標として用います。 (注1)

(2) 各説明変数の寄与率

重回帰分析はp個の説明変数がお互いに影響を及ぼし合いながら、全体として目的変数に影響を与えているという前提で理論を組み立てます。 そのためp個の説明変数が束になった時の寄与率つまり重寄与率は計算できるものの、個々の説明変数の寄与率は計算できません。 つまり説明変数全体としての影響力は評価できても、個々の説明変数が目的変数にどれ程の影響を与えているのかということは正確には評価できないのです。

そのことを理解するために図7.2.1の概念図をご覧ください。 この図の円はそれぞれの変数が持つ情報を表し、円が重なった部分は共有情報を表し、その割合が寄与率を表します。

図7.2.1 重回帰分析の概念図

重回帰式は目的変数yと説明変数x1、x2の共有部分の情報内容を反映し、yの全情報量に対するx1とx2共有情報量の割合が重寄与率に相当します。 そして各説明変数が単独でyと共有している情報、つまり他の説明変数との共有部分を差し引いた時のyと共有している情報内容——図7.2.1のSb1とSb2——を反映するものが偏回帰係数です。 それに対して他の説明変数を無視した時、つまり他の説明変数との共有部分も含めた時のyと共有している情報内容を反映するものが単回帰係数であり、その割合が単寄与率です。

各説明変数の寄与率については、他の説明変数との共有部分も含めた時のものつまり単寄与率と、共有部分を差し引いた時のものは求められます。 しかしどちらもその合計が重寄与率に一致せず、正しい意味での寄与率とはいえません。 各説明変数の正しい寄与率を求めるためには、説明変数間の共有情報を各説明変数に分割する必要があります。 ところがその合理的な分割法がないのです。

ただおおよその目安として、説明変数間の共有情報を各々が単独で目的変数と共有している割合で比例配分し、それと単独共有情報との和を説明変数の寄与率にしてしまう方法が考えられます。 説明変数と目的変数との単独共有情報量は、数学的には説明変数の偏回帰平方和Sbjになります。 そこで次のように重寄与率をSbjに比例して分配したものを各説明変数の寄与率と考えしまうわけです。


変数xjの寄与率:

これは図7.2.1でいえば、3つの円が重なった部分をSb1とSb2の割合に応じて各説明変数に比例配分することに相当します。 もちろんこれは数学的には正しい方法でありませんが、おおよその目安として用いるのならかまわないでしょう。 (→7.3 変数の選択)

(3) 重回帰分析結果の解釈

表6.1.1のデータに重回帰分析を適用すると、次のような結果になります。

目的変数y(重症度):my=2  SDy=1
説明変数x1(TC):mx1=251  SDx1=19
説明変数x2(TG):mx2=209  SDx2=65
単相関係数:rx1y=0.827  rx2y=0.386   rx1x2=0.753
単回帰式:=-13.2524+0.0612x1   =0.4113+0.0081x2
重回帰式:=-18.5014+0.0916x1-0.0115x2
重寄与率:R2=0.814(81.4%)  重相関係数:R=0.902
標準偏回帰係数:b*1=1.239   b*2=-0.549
偏相関係数:r1y・2=0.883  r2y・1=-0.642
偏回帰平方和:Sb1=11.239  Sb2=2.191

まず重寄与率から見ていきましょう。 重寄与率が81.4%ですから重症度の変動のうち約80%がTCとTGの変動によって説明される、つまり重症度のほぼ80%はTCとTGの値に基づいて判定されていると言えます。 残りの20%については判定者の判定誤差によるものか、もしくは判定規準が直線的ではなく、何らかの非直線的な要素——数学的には非線形といいます——によるものと考えられます。 非直線的な要素とは、例えばTCやTGの値がある値以下なら全て正常と判定し、ある値以上なら値とほぼ比例して重症度を判定する、といったことです。

またこの例題ではTCとTGの2項目だけで重症度を判定したことになっています。 しかし実際のデータではどの項目が評価項目かはっきりせず、意味のある評価項目が説明変数に入っていなかったり、数字としては評価しにくい感覚的な情報が判定の参考になっていたりすることがあります。 するとそのような要素も残りの20%に含まれることになります。

重寄与率が低い時は重要な評価項目が説明変数からもれていないかどうか、各評価項目と目的変数の関係が直線的かどうか、もう一度チェックし直す必要があります。 これは各評価項目と目的変数との散布図をじっくり眺め、その単相関係数または単回帰係数を丹念に調べることによって行います。 そして重要な評価項目がもれていた時は、それを含めて計算し直します。 また非直線的な関係の項目があった時は、変数変換(ただし科学的に妥当な変換)などをして直線関係に近づけてから計算し直します。 もしそういった原因が見つからない時は個々の症例の概括評価を吟味し直す必要があるでしょう。

この例では重寄与率が80%もあるので、誤差のかなり少ない、重回帰モデルを当てはめやすい判定を行っていることがわかります。 ただし重回帰分析では説明変数が多いほど目的変数を説明する要因が多く、必然的に重寄与率は高くなります。 そのため重寄与率だけで重回帰式の信頼性を評価するのは危険です。

重回帰式は例数が変数の数以上なければ計算することができず、例数と変数の数が等しい時はどんなデータでも重寄与率が100%になります。 これは単回帰分析において、例数つまりプロット数が2つ以上なければ回帰直線を引くことができず、プロット数が2つだけの時はどちらのプロットも必ず直線上に乗り、寄与率が100%になるのと全く同じ事情です。 そして例数が少ない時は1つのデータが結果に与える影響が大きく、データがちょっと変化しただけで結果がコロコロ変わってしまいます。 そのためいくら重寄与率が高くても、安定した信頼のおける結果ではなくなってしまうのです。

一般に医学・薬学分野におけるデータはバラツキが大きいため、信頼性の高い結果を得るには変数1つについて10個以上のデータが必要と考えるべきでしょう。 つまり1つのデータが結果に与える影響を10%以下にし、データが少しくらい変化しても結果が大きく変化しないようにするわけです。 この基準に照らすと、表6.1のデータは変数が3つあるので本当は30例以上の例数が必要です。

この基準は多変量解析に限ったことではなく、単変量解析でも全く同じように当てはまります。 ただし単変量解析の場合は変数が1つか2つであり、せいぜい10例か20例以上あれば信頼のおける結果が得られます。 そのため例数の少なさが問題になることは多変量解析ほど多くありません。 (注2)

次に重回帰式を見てみましょう。 この式の意味するところは、まず-18.5014と無条件に定数のゲタを履き(負の値ですから、「ゲタを履く」というより「穴を掘る」というべきでしょうか?)、次にTCの値に偏回帰係数0.0916をかけ、TGの値に偏回帰係数-0.0115をかけ、それらの合計を重症度推定値にするということです。 例えば表6.1の5番目の症例はTCが250、TGが200のため、次のように重症度推定値は2.1になります。 5番目の症例の実際の重症度は3ですから、まあ当たらずとも遠からずといったところでしょう。

=-18.5014 + 0.0916×250 - 0.0115×200≒2.1

こうして計算した重症度推定値と実際の重症度を散布図にプロットすることによって、平均的な判定規準から大きく外れる症例をチェックすることができます。 これは臨床試験における問題症例のチェックに利用することができます。 (注3)

図7.2.2 重症度推定値と実際の重症度

(4) 多重共線性

ところで少々問題になるのは、TGと重症度の単相関係数は正の値であるにもかかわらず偏回帰係数は負の値であるということです。 これは一体どういうことなのでしょうか? 次の図を見ながら偏回帰係数の持つ意味をもう一度じっくりと考えてみましょう。

図7.2.3 重回帰式と偏回帰係数

図7.2.3の左に示した3次元プロット——これは第1節の図7.1.1の見取り図と同じものです——において、重回帰式が表すものは座標軸と斜めに交わる平面(半透明な灰色で描かれた平面)になります。 重回帰分析は単回帰分析を多次元に拡張した手法ですから、単回帰分析における回帰直線が重回帰平面——4次元以上の時は超平面といいます——に拡張されるわけです。 この重回帰平面は、各プロットから平面までの垂直距離(重症度軸に平行な方向の距離)の合計が最小になるような平面です。

一方、TC−重症度平面はTGの値を0に固定した時のTCと重症度の関係を表す平面であり、TG−重症度平面はTCの値を0に固定した時のTGと重症度の関係を表す平面です。 そのため重回帰平面がTC-重症度平面と交わる直線は、TGの値を0に固定した時のTCと重症度の関係を表す回帰直線に相当します。 また重回帰平面がTG-重症度平面と交わる直線は、TCの値を0に固定した時のTGと重症度の関係を表す回帰直線に相当します。 そしてそれぞれの回帰直線の傾きはTCの偏回帰係数とTGの偏回帰係数に相当します。

このことから偏回帰係数は、他の説明変数を全て一定の値にした時つまり他の説明変数の影響を取り除いた時の、ある説明変数と目的変数の回帰係数に相当することがわかると思います。

もう少し具体的に見てみましょう。 図7.2.3の右に示したTGと重症度の散布図において、プロットは全体としては右上りなっています。 これはTGと重症度の間に正の相関関係(実際には因果関係)があることを表しています。 ところがTCが同じ値であるプロットを破線で結んでみると、意外なことにそれらは右下がりの傾向を持っています。 これはTCが同じ値の時はTGが高いほど重症度を低く判定していることを表しています。

これが偏回帰係数を負の値にした原因であり、説明変数間の相関が高い時はたまにこのような現象が起きます。 このように説明変数間の相関が高い時、偏回帰係数の値が一見すると非合理な値になり、解析結果の信頼性が低くなってしまう現象のことを多重共線性(multicollinearity、マルチコ)または共線性(collinearity)といいます。 重回帰分析だけでなく、多変量解析ではしばしばこれが問題になります。 (注4)

では実際にはTGは重症度に対してどのような影響を与えているのか、つまり重症度を判定する時にTGの値をどのように考慮しているのでしょうか? これはなかなか難しい問題であり、例えば次のような解釈が考えられます。

  1. TCとTGをそれぞれ単独で用いる時は、値が大きいほど重症度を大きく判定している。 しかし両者を総合して判定する時は、両者の差(TC-TG)が大きいほど重症度を大きく判定している。
  2. TCの値が大きいほど重症度を大きく判定し、TGの値が大きいほど重症度を小さく判定している。 しかしTCとTGの間に強い正の相関があるため、それに引きずられてTGと重症度の間に見かけ上の正の相関が生じてしまう。
  3. 重症度を判定する時、普通はTCの値だけを考慮し、TGの値は考慮しない。 しかしTCが一定の値になった時はTGの値が大きいほど重症度を小さく判定している。
  4. 重症度はTCの値だけを考慮して判定している。 しかしデータの誤差によって、たまたまTGの偏回帰係数が負になってしまった。

1番目の解釈については、重回帰式を次のように変形するとよくわかると思います。

=-18.5014 + 0.0916x1 - 0.0115x2=-18.5014 + (0.0801+0.0115)x1 - 0.0115x2=-18.5014 + 0.0801×TC + 0.0115×(TC-TG)

この重回帰式は「TCと(TC-TG)が目的変数に正の影響を与えていて、その影響の強さはTCの方が強い」と解釈できます。 (TC-TG)は脂質異常症のタイプが高コレステロール血症型か、高トリグリセリド型かを表す指標と解釈することができます。 そしてTCの値がほぼ同じなら、脂質異常症のタイプが高コレステロール血症型になるほど重症度を高く判定していた——あるいは判定者が意識していなかったとしても、結果としてそのように判定していた——としたら、TCと(TC-TG)の偏回帰係数がどちらも正になっても不思議ではありません。

これは医学的に合理的な解釈であり、矛盾はありません。 そしてこのことから、TGの代わりに(TC-TG)または脂質異常症のタイプを説明変数に入れて再解析すれば多重共線性は発生せず、医学的に妥当な結果が得られることがわかります。

これと似たことは血圧でもよく起こります。 収縮期血圧と拡張期血圧を同時に説明変数に入れると、目的変数との単相関係数はどちらも正であるにもかかわらず、拡張期血圧の偏回帰係数が負になることがあります。 これは実は(収縮期血圧−拡張期血圧)つまり脈圧が目的変数に影響を与えているのであり、拡張期血圧の偏回帰係数の符号が負になったのは脈圧を表していると解釈することができます。 このような時は拡張期血圧の代わりに脈圧を入れて解析すれば多重共線性は発生せず、医学的に妥当な結果が得られる時があります。

多重共線性は、お互いに相関の高い説明変数があると起きやすい現象です。 お互いに相関の高い説明変数は同じ因子に関して異なった面を表す指標であることが多いので、それらの差が合理的に解釈できる可能性は高いと思います。

このように上記の4種類の解釈の中のどれが最も適切かということは、本来は数学ではなく科学的な知識に基づいて考察すべきです。 ただしその際、標準偏回帰係数や寄与率が大きなヒントになります。

表7.2.1 説明変数の各種パラメーター
項目偏回帰係数標準偏回帰係数偏回帰平方和寄与率の目安単寄与率
TC0.09161.23911.2390.6810.684
TG-0.0115-0.5492.1910.1330.149

上の表を見ると、TCの標準偏回帰係数はTGの標準偏回帰係数の2倍ほどあり、そのおおよその寄与率(寄与率の目安)は5倍ほどあります。 そしてTGの寄与率は約13%とあまり大きくないので、1番または3番または4番の解釈が正しい可能性が高くなります。 そして1番と3番が医学的にあまり考えられないことだとしたら、4番の可能性が高くなります。

実は、このデータは1番の判定規準に基づいて作為的に作ったものです。 実際のデータでは強い相関を持つ説明変数同士が単独で変化することはあまりなく、それらがひとまとまりになって変化しながら重症度に影響を与えていることが多いでしょう。 そして脈圧のように説明変数の差に科学的な意義があり、それが目的変数に影響を与えている時も大いにあると思います。

したがってこんな重回帰分析結果になった時は、説明変数の差に科学的な意義があるかどうか、そしてそれが目的変数に影響を与えている可能性があるかどうか検討してみましょう。 そしてその可能性が十分に考えられるようなら、説明変数の差を用いて重回帰分析をやり直すのが賢明です。 「説明変数の組み合わせが悪かったので多重共線性が起きしまった!」と思考停止し、例えば拡張期血圧やTGを説明変数から除外して再解析したりすると、「脂質異常症のタイプが目的変数に影響している」とか「脈圧が目的変数に影響している」という事実は発見できません。

説明変数の差に科学的意義が見い出せない時は、それらの説明変数が1つのグループとして全体的に重症度に正の影響を与えており、詳細に数学的な形式で表せば重回帰式のようになる、と大雑把にとらえておくのが良いでしょう。 そして偏回帰係数の符号が逆転することが科学的に解釈困難な現象なら、それはデータの誤差による可能性が高いとしておくのが良いでしょう。

またそのような時は相関が高い項目を同時に説明変数に組み込まず、寄与率が最も大きい項目だけに絞って再計算するという方法もあります。 相関の高い項目は同じような情報を持っているので、どれか1つだけを説明変数に入れれば十分です。 沢山の説明変数を組み込んで結果の解釈が難しい複雑なモデルにするよりも、結果が解釈しやすい単純なモデルにした方が何かと便利です。 ただしこれは解析結果をどうしても合理的に解釈できない時の最後の手段です。

(5) 重回帰分析の注意点

ここで重回帰分析結果を評価する時の注意点をまとめておきましょう。

  1. 誤差の少ない、信頼のおける多数のデータ——目安として変数の数の10倍以上のデータ数——に適用したものか?
  2. 重回帰モデルに組み込んだ項目は適当か?
  3. 重寄与率がある程度大きな値か?
  4. 重回帰式は科学的に納得がいくか?

以上の他にもう1つ気をつけなければならない点は、多変量解析では全ての項目が揃っている例だけが解析の対象になり、1項目でも欠測値のあるものは解析から除外されるということです。

医学・薬学分野で行われる試験は、他の分野以上に欠測値が発生しやすいものです。 特に臨床試験では副作用や改善・悪化による脱落例があるので、いわば宿命的に欠測値が発生します。 そのため非常に沢山の症例を集めたつもりでも、実際に多変量解析に利用できるものはその一部になってしまうということが往々にして起こります。

また臨床試験では実施の容易性を考慮して、観察項目が多い時はそれらを必須観察項目と選択観察項目に分けることがあります。 その場合、選択項目は当然のことながら欠測値が多くなります。 そしてその結果、選択項目に関しては不確実な解析しかできない上に、多変量解析の対象にすることができず、結局、観察しただけ無駄になってしまうということがよくあります。 行きがけの駄賃にあれも見てやろう、これも調べてやろうということはやめて、試験の目的を明確にし、必要最少限の項目だけを確実に観察するようにしましょう。


(注1) 標準偏回帰係数は偏回帰係数と各変数の平方和から、次のようにして求めることができます。

変数xjの標準偏回帰係数:
bj:変数xjの偏回帰係数   Sjj:変数xjの平方和  Syy:yの平方和

偏相関係数は少々ややこしいので第3節の(注1)で説明することにします。

(注2) 計算結果の信頼性は統計量の標準偏差つまり標準誤差が小さいほど高いと考えられます。 そして標準誤差は一般に例数の平方根に反比例するので、計算結果の信頼性は例数の平方根に比例することになります。 つまり結果の信頼性を2倍にするためには、例数を4倍にする必要があるわけです。 このことから多変量解析の必要例数として次のような基準が考えられます。

例数≧変数の数2

しかしこの基準では、例えば変数の数が2つの時は4例以上あれば良いことになり、変数の数が少ない時はかなり甘い基準になってしまいます。 そこで「例数は変数の数の10倍以上必要」という基準と組み合わせて、次のような基準が現実的なものとして考えられます。 第1章第8節の(注1)で説明した多変量解析における必要例数の条件はこの基準に基づいたものです。

例数≧max(変数の数2, 変数の数×10)
max(x, y):xとyの大きい方の値を取る最大値関数

(注3) 単回帰分析と同様に、重回帰分析でも信頼限界許容限界予測限界(棄却限界)を求めることができます。 あるを指定した時の個々のデータyとその推定値について、次のような関係が成り立ちます。

  '=[1 x1 … xj … xp]   


:残差平方和   φR=n-p-1:残差自由度   :残差分散   [']:単純積和行列
○100(1-α)%信頼限界:母集団のy推定値の100(1-α)%が含まれる範囲

t(n-p-1,α):自由度(n-p-1)のt分布における100α%点
○100(1-α)%許容限界:回帰直線に誤差がない時に母集団のyの100(1-α)%が含まれる範囲

○100(1-α)%予測限界(棄却限界):回帰直線に誤差がある時に母集団のyの100(1-α)%が含まれる範囲

説明変数が1つの場合について計算すると次のようになります。 これらの式は第5章で紹介した単回帰分析の信頼限界、許容限界、予測限界と同じ式です。 (→5.5 各種手法の相互関係 (注3))

'=[1 x1]=[1 x]   
  

○100(1-α)%信頼限界

○100(1-α)%許容限界

○100(1-α)%予測限界(棄却限界)

(注4) 重回帰分析の正規方程式は、行列[']からベクトルに関係する1行1列目を除いたp次正方行列が正則ではない時、つまりその行列の行列式が0の時は解を持ちません。 この時、の成分ベクトルである1、…、pは線形独立ではなくなります。 このような時、「説明変数の間に正確多重共線性(exact multicollinearity)または正確共線性(exact collinearity)がある」といいます。 そして説明変数の間の相関が非常に高いと線形独立性が低くなり、行列式≒0になります。 すると正規方程式は一応解を持ちますが、その精度は低くなります。 このような時、「説明変数の間に多重共線性または共線性がある」といいます。

多重共線性が起きているかどうか判断するための指標として次のようなものがあります。

rjj分散拡大係数(VIF:Variance Inflation Factor) ← p次正方行列部分を相関係数行列に変換し、それを逆行列にした時のj番目の対角要素
許容度(tolerance)   :説明変数xjと他の説明変数の重相関係数
条件指数(condition index)   λmax:p次正方行列の最大固有値   λj:p次正方行列のj番目の固有値
※VIFが大きい(10より大) or 許容度が小さい(0.1未満) or Rが1に近い or 条件指数が大きい(30より大) → 多重共線性が高い

表6.1.1の例題について実際に計算すると次のようになります。

     
r11=r22=2.30806      

多重共線性があると解の精度が低くなるため数学者は嫌います。 しかしその解を実質科学的に合理的に解釈できるようなら、むやみに嫌う必要はありません。