推測統計の基礎2

最小二乗法の基礎2:重回帰式を用いたデータの分析
講師:木村 朗

1. 重回帰分析とは

概念説明

重回帰分析は、複数の説明変数(独立変数)と1つの目的変数(従属変数)の関係を分析する統計手法です。単回帰分析が1つの説明変数のみを扱うのに対し、重回帰分析では複数の説明変数を同時に考慮することができます。

これにより、目的変数に影響を与える様々な要因の効果を同時に評価することが可能になります。

多重共線性の例

例えば、患者の健康状態に関するデータで以下の変数を考えてみましょう:

  • 身長(cm)
  • 体重(kg)
  • BMI(kg/m²)

ここで、BMIは体重÷(身長×身長)で計算されるため、身長と体重との間に強い関連があります。この3つの変数を同時に説明変数として投入すると、多重共線性の問題が生じる可能性が高いです。

このような場合、BMIのみを使用するか、身長と体重のみを使用するなど、多重共線性を避ける変数の選択が必要になります。

5. JASPを使った重回帰分析の実践

JASPの基本操作

1 JASPを起動する

デスクトップのJASPアイコンをダブルクリックするか、スタートメニューからJASPを選択します。

2 データを準備する

画面左上の「+」ボタンをクリックし、新しいデータセットを作成します。または「File」→「New」メニューを使用します。

「年齢」、「BMI」、「収縮期血圧」の3つの変数を作成し、データを入力します。

3 変数の型を設定する

各変数名の下のセルをクリックして、変数の測定レベルを設定します。すべて「Scale(連続変数)」に設定します。

重回帰分析の実行

4 分析メニューを選択する

上部メニューから「Regression」→「Linear Regression」を選択します。

5 変数を指定する

  • Dependent Variable(従属変数):「収縮期血圧」を選択
  • Covariates(説明変数):「年齢」と「BMI」を選択

6 オプションを設定する

「Statistics」タブで以下の項目にチェックを入れます:

  • Estimates:回帰係数を表示
  • Model fit:モデルの適合度(R²など)を表示
  • Collinearity diagnostics:多重共線性の診断結果を表示
  • Descriptives:記述統計を表示

「Plots」タブで以下の項目にチェックを入れます:

  • Residuals vs. fitted:残差プロット
  • Q-Q plot of residuals:正規Q-Qプロット
  • Partial plots:偏回帰プロット

結果の解釈

7 回帰結果を確認する

JASPは右側のパネルに以下の結果を表示します:

  • Model Summary:決定係数(R²)、調整済み決定係数、F値、p値
  • Coefficients:切片と回帰係数の推定値、標準誤差、t値、p値
  • Collinearity Statistics:多重共線性の診断結果(Toleranceとその逆数のVIF)
  • 各種プロット

JASPの分析結果の例

以下は、JASPで分析した場合の結果のイメージです:

Model Summary Model R Adjusted R² F df1 df2 p 1 0.975 0.950 0.900 28.5 2 2 0.034 Coefficients Predictor Estimate SE t p Intercept 33.50 14.24 2.35 0.143 年齢 1.20 0.15 8.00 0.015 BMI 2.50 0.45 5.56 0.031 Collinearity Statistics Predictor Tolerance VIF 年齢 0.821 1.218 BMI 0.821 1.218 Partial Regression Plot 偏回帰プロット:収縮期血圧 vs 年齢(BMIの影響を除外)

上記の結果から、次のことが分かります:

  • 決定係数(R²)は0.950で、モデルの当てはまりが非常に良好であることを示しています。
  • 年齢とBMIの両方が収縮期血圧に統計的に有意な影響を与えています(p < 0.05)。
  • BMIの回帰係数(2.50)は年齢の回帰係数(1.20)よりも大きく、BMIの方が収縮期血圧に強い影響を与えていることが示唆されます。
  • VIFの値はどちらも1.218と低く、多重共線性の問題はないと判断できます。

結論として、年齢が1歳上がると血圧は平均して1.2 mmHg上昇し、BMIが1 kg/m²上がると血圧は平均して2.5 mmHg上昇することがわかりました。このモデルは収縮期血圧の変動の95%を説明しています。

6. 医療分野における重回帰分析の応用

医療データの分析における重回帰分析の重要性

医療分野では、患者の状態や治療効果に複数の要因が影響していることが一般的です。重回帰分析を用いることで、これらの複合的な関係を定量的に評価することができます。

例えば:

  • 患者の予後に影響する複数のリスク因子の評価
  • 薬剤の効果に影響する患者の特性の分析
  • 疾患の発症リスクに関わる複数の生活習慣要因の分析
  • 医療費に影響する様々な要因の分析

演習問題:糖尿病患者の血糖コントロールに影響する要因

以下のデータは、2型糖尿病患者5名の年齢、運動時間(分/日)、食事管理スコア(0-10点)、そしてHbA1c値(%)を示しています。

患者 年齢(歳) 運動時間(分/日) 食事管理スコア HbA1c(%)
患者1 55 10 4 8.2
患者2 60 20 6 7.5
患者3 65 30 8 6.8
患者4 50 15 5 7.9
患者5 70 25 7 7.0

問題:

  1. JASPを使用して、年齢、運動時間、食事管理スコアを説明変数、HbA1c値を目的変数とする重回帰分析を行いなさい。
  2. 得られた回帰式を示し、各変数がHbA1c値にどのような影響を与えているか説明しなさい。
  3. 決定係数と調整済み決定係数を求め、モデルの当てはまりの良さを評価しなさい。
  4. 多重共線性の問題がないか確認しなさい。
  5. この結果に基づいて、糖尿病患者の血糖コントロール改善のためにどのようなアドバイスができるか考察しなさい。

JASPでの解答手順:

1 新しいデータファイルを作成し、以下の変数を入力します:

  • 「年齢」:55, 60, 65, 50, 70
  • 「運動時間」:10, 20, 30, 15, 25
  • 「食事管理スコア」:4, 6, 8, 5, 7
  • 「HbA1c」:8.2, 7.5, 6.8, 7.9, 7.0

2 「Regression」→「Linear Regression」を選択します。

3 変数を指定します:

  • Dependent Variable:「HbA1c」
  • Covariates:「年齢」「運動時間」「食事管理スコア」

4 「Statistics」タブと「Plots」タブで必要なオプションを選択します。

5 結果を解釈し、レポートにまとめます。

ヒント: 回帰係数の符号(正か負か)に注目し、各変数がHbA1c値にプラスの影響を与えるのかマイナスの影響を与えるのかを考えましょう。HbA1c値が低いほど血糖コントロールが良好であることを踏まえて解釈してください。

8. JASPを使った重回帰分析の演習

演習の目的

この演習では、JASPを使って実際に重回帰分析を行い、結果の解釈方法を学びます。特に、変数の選択、モデルの評価、そして多重共線性の診断に焦点を当てます。

演習データ:高血圧患者のデータ

以下のデータは、高血圧患者10名の年齢、BMI、1日の塩分摂取量(g)、そして収縮期血圧(mmHg)を示しています。

患者ID 年齢(歳) BMI(kg/m²) 塩分摂取量(g/日) 収縮期血圧(mmHg)
1 45 24.5 8.5 135
2 52 26.3 10.2 142
3 65 28.7 12.0 155
4 48 25.1 9.0 138
5 70 29.5 11.5 160
6 58 27.8 10.8 148
7 50 26.0 8.8 140
8 62 27.2 11.0 150
9 55 25.8 9.5 145
10 68 28.5 12.5 158

JASPでの重回帰分析の詳細手順

1 JASPの起動とデータの準備

デスクトップからJASPを起動し、新しいデータシートを作成します。

JASPの起動画面

以下の手順でデータを入力します:

  1. JASPの左上にある「+」または「File」→「New」をクリックして新しいデータシートを作成します。
  2. 列名をそれぞれ「年齢」「BMI」「塩分摂取量」「収縮期血圧」に変更します。
  3. 各列のデータタイプを「Continuous」(連続変数)に設定します。
  4. 上記の表のデータを入力します。

2 重回帰分析の実行

データを入力したら、重回帰分析を実行します。

  1. 上部メニューから「Regression」→「Linear Regression」をクリックします。
Linear Regressionメニューの選択
  1. Dependent Variable(従属変数)として「収縮期血圧」を選択します。
  2. Covariates(説明変数)として「年齢」「BMI」「塩分摂取量」を選択します。
変数の選択画面

3 詳細オプションの設定

より詳細な分析を行うために、オプションを設定します。

  1. 「Statistics」タブをクリックし、以下のオプションを選択します:
  • Estimates:回帰係数の推定値を表示
  • Confidence intervals:95%信頼区間を表示
  • Model fit:R²や調整済みR²などのモデル適合度を表示
  • Collinearity diagnostics:多重共線性の診断結果を表示
  • Descriptives:記述統計量を表示
Statisticsタブの設定
  1. 「Method」タブをクリックし、Method(手法)を選択します:
  • 今回は「Enter」(強制投入法)を選択します。
  • 後で比較のために「Stepwise」(ステップワイズ法)も試してみます。
Methodタブの設定
  1. 「Plots」タブをクリックし、以下のプロットを選択します:
  • Residuals vs. fitted:残差プロット
  • Q-Q plot of residuals:正規Q-Qプロット
  • Partial plots:偏回帰プロット
Plotsタブの設定

4 結果の確認と解釈

JASPが自動的に分析を実行し、結果を右側のパネルに表示します。

モデルサマリーの解釈

モデルサマリーの結果

モデルサマリーでは以下の情報を確認します:

  • R²値:モデルの説明力を示します(例:0.95は変動の95%を説明)
  • 調整済みR²値:説明変数の数を考慮した説明力
  • F値とp値:モデル全体の有意性を示します

係数の解釈

係数の結果

係数テーブルでは以下の情報を確認します:

  • 各説明変数の回帰係数(Estimate):その変数が目的変数に与える影響の大きさと方向
  • 標準誤差(SE):回帰係数の推定精度
  • t値とp値:個々の回帰係数の統計的有意性
  • 信頼区間:回帰係数の95%信頼区間

多重共線性の診断

多重共線性の診断結果

多重共線性の診断では以下の指標を確認します:

  • Tolerance(許容度):値が0.1未満だと多重共線性の問題がある可能性が高い
  • VIF(Variance Inflation Factor):値が10以上だと多重共線性の問題がある可能性が高い

残差プロットの解釈

残差プロット

残差プロットでは以下を確認します:

  • ランダムな散らばり:線形性の仮定が満たされているかを確認
  • 漏斗形のパターン:等分散性の仮定が満たされているかを確認
  • 外れ値:モデルに適合しない観測値を特定

正規Q-Qプロットの解釈

正規Q-Qプロット

正規Q-Qプロットでは以下を確認します:

  • 点が対角線に沿っているか:残差の正規性を確認
  • 大きく外れた点:外れ値や非正規性を示唆

偏回帰プロットの解釈

偏回帰プロット

偏回帰プロットでは以下を確認します:

  • 各説明変数の実質的な影響:他の説明変数の影響を制御した上での関係
  • 線形性:プロットが直線的に分布しているか
  • 影響力の大きい観測値:外れた点がないか

5 ステップワイズ法を用いた変数選択

強制投入法との比較のため、ステップワイズ法を使った分析も行います。

  1. 「Regression」→「Linear Regression」を再度選択します。
  2. 変数を同じように設定します。
  3. 「Method」タブで「Stepwise」を選択します。
  4. 結果を確認し、強制投入法と比較します。
ステップワイズ法の結果

ステップワイズ法では、統計的に有意な変数のみがモデルに含まれます。これにより、最も説明力の高い変数のセットを選択できます。

応用課題:相互作用効果の検討

説明変数間の相互作用(交互作用)効果を検討しましょう。例えば、年齢と塩分摂取量の相互作用効果を調べることで、「高齢者は塩分摂取の影響をより強く受ける」といった仮説を検証できます。

  1. JASPで新しい変数を作成します(「データビュー」で「Compute column」を選択)。
  2. 相互作用項(例:年齢×塩分摂取量)を作成します。
  3. この相互作用項を含めた新しい重回帰分析を実行します。
  4. 相互作用項の係数とp値を確認し、統計的に有意かどうかを判断します。

ヒント: 相互作用効果が統計的に有意な場合、相互作用を含むモデルと含まないモデルを比較し、モデルの説明力(R²)がどの程度向上したかを確認しましょう。また、相互作用を含むモデルでは、主効果の解釈が変わることに注意が必要です。

結果の解釈例

分析結果から以下のような解釈が考えられます:

  • 年齢、BMI、塩分摂取量はすべて収縮期血圧に正の影響を与えています(回帰係数がすべて正の値)。
  • 塩分摂取量の回帰係数が最も大きく(例:β = 3.2)、収縮期血圧に最も強い影響を与えていることが示唆されます。
  • モデル全体の決定係数は R² = 0.92 と非常に高く、これら3つの変数で血圧の変動の92%を説明できています。
  • 多重共線性の診断では、すべての変数のVIF値が10未満であり、多重共線性の問題はないと判断できます。
  • ステップワイズ法では、すべての変数が最終モデルに残り、すべてが統計的に有意な寄与をしていることが確認されました。

このモデルから、高血圧患者の血圧管理では特に塩分摂取量のコントロールが重要であることが示唆されます。また、年齢とBMIも収縮期血圧に有意な影響を与えており、総合的なアプローチが必要です。

9. まとめ

本日の重要ポイント

  • 重回帰分析は、複数の説明変数と1つの目的変数の関係を分析する方法です。
  • 各回帰係数は、他の変数の影響を制御した上での、その変数の固有の効果を示します。
  • 調整済み決定係数は、説明変数の数を考慮したモデルの適合度の指標です。
  • 多重共線性は説明変数間の強い相関関係を指し、回帰分析の結果を不安定にする可能性があります。
  • 変数選択の方法には、ステップワイズ法、強制投入法、変数増加法、変数減少法などがあります。
  • JASPを使うことで、複雑な計算をせずに重回帰分析を行うことができます。

次回の予告

次回は「最尤推定法の基礎1:同時確率 最尤法を用いたデータの分析」について学びます。最尤推定法の基本的な考え方と応用例を学びましょう。

重回帰式の基本形

Y = β₀ + β₁X₁ + β₂X₂ + ... + βₚXₚ + ε

ここで:

具体例:患者の血圧に影響する要因

以下のデータは、5人の患者における年齢(X₁:歳)、BMI(X₂:kg/m²)、そして収縮期血圧(Y:mmHg)を示しています。

患者 年齢(歳) BMI(kg/m²) 収縮期血圧(mmHg)
患者A 45 22 120
患者B 55 24 130
患者C 65 26 145
患者D 50 28 140
患者E 70 30 160

2. 重回帰分析の数理的背景

行列表現

重回帰分析では、複数の説明変数を扱うため、行列を用いて表現することが一般的です。

y = Xβ + ε

ここで:

  • y:目的変数のベクトル(n×1)
  • X:説明変数の行列(n×(p+1))
  • β:回帰係数のベクトル((p+1)×1)
  • ε:誤差項のベクトル(n×1)

最小二乗法による推定量は以下の式で与えられます:

β̂ = (X'X)⁻¹X'y

ここで、X'はXの転置行列、(X'X)⁻¹は(X'X)の逆行列を表します。

簡易な例での計算(手計算)

以下では、簡単な例を用いて重回帰分析の計算過程を示します。実際の計算は複雑なため、通常はソフトウェアを使用します。

まず、各変数の平均を計算します:

  • X̄₁(年齢の平均)= (45 + 55 + 65 + 50 + 70) / 5 = 57
  • X̄₂(BMIの平均)= (22 + 24 + 26 + 28 + 30) / 5 = 26
  • Ȳ(血圧の平均)= (120 + 130 + 145 + 140 + 160) / 5 = 139

次に、各変数の偏差積和行列を計算します(ここでは詳細な計算は省略)。

最終的に、回帰係数は以下のように計算されます:

β̂₁ ≈ 1.2(年齢の回帰係数)
β̂₂ ≈ 2.5(BMIの回帰係数)
β̂₀ ≈ 33.5(切片)

したがって、重回帰式は次のようになります:

血圧 = 33.5 + 1.2 × 年齢 + 2.5 × BMI

3. 重回帰分析の解釈

回帰係数の解釈

重回帰分析における各回帰係数は、「他の説明変数の値を一定に保ったとき、その説明変数が1単位増加すると、目的変数がどれだけ変化するか」を表します。

例えば、上記の例では:

  • β̂₁ = 1.2:BMIを一定に保ったとき、年齢が1歳上がると、血圧は平均して1.2 mmHg上昇します。
  • β̂₂ = 2.5:年齢を一定に保ったとき、BMIが1 kg/m²上がると、血圧は平均して2.5 mmHg上昇します。

決定係数(R²)と調整済み決定係数(Adjusted R²)

決定係数(R²)は、モデルが目的変数の変動をどの程度説明できるかを示す指標です。

R² = 1 - (残差平方和 / 全変動)

しかし、説明変数の数が増えるにつれて、R²は見かけ上増加する傾向があります。そこで、重回帰分析では、説明変数の数を考慮した「調整済み決定係数(Adjusted R²)」がよく用いられます。

Adjusted R² = 1 - ((1 - R²)(n - 1) / (n - p - 1))

ここで、nはサンプルサイズ、pは説明変数の数です。

解釈の例

先ほどの血圧の例で考えると:

  • R² = 0.95:このモデルは血圧の変動の95%を説明できています。
  • Adjusted R² = 0.90:説明変数の数を考慮しても、モデルの説明力は高いと言えます。
  • 年齢とBMIの両方が血圧に正の影響を与えています(回帰係数がともに正)。
  • BMIの方が年齢よりも血圧に大きな影響を与えています(回帰係数の値が大きい)。

4. 多重共線性と変数選択

多重共線性の問題

多重共線性とは、説明変数間に強い相関関係がある状態を指します。多重共線性が存在すると、以下のような問題が生じます:

  • 回帰係数の推定値が不安定になる
  • 回帰係数の標準誤差が大きくなる
  • 変数の重要性の評価が難しくなる

多重共線性の診断

多重共線性を診断するために、以下の指標がよく用いられます:

  • VIF(Variance Inflation Factor、分散拡大要因):一般に、VIF > 10で多重共線性が疑われます。
  • 相関行列:説明変数間の相関係数が0.7以上で多重共線性の可能性があります。

変数選択の方法

適切な説明変数を選択するためのいくつかの方法があります:

  • ステップワイズ法:変数を段階的に追加または削除していく方法
  • 強制投入法:理論的に重要と考えられる変数をすべて同時に投入する方法
  • 変数増加法(Forward selection):最も影響力の大きい変数から順に追加していく方法
  • 変数減少法(Backward elimination):すべての変数から始めて、影響の小さい変数を順に削除していく方法

モデル選択の基準

モデルの良さを評価するための基準としては、以下のようなものがあります:

  • AIC(赤池情報量規準):値が小さいモデルほど良いと判断
  • BIC(ベイズ情報量規準):AICよりも複雑なモデルにペナルティを課す傾向がある
  • Adjusted R²:値が大きいモデルほど良いと判断