外れ値が1件あるだけで、あなたの回帰係数が臨床的に正反対の値になることがあります。

OLS(Ordinary Least Squares)回帰分析、日本語では「最小二乗法による回帰分析」と呼ばれます。これは、目的変数(結果指標)と説明変数(予測因子)の関係を直線で表し、実測値と予測値の差(残差)の二乗和を最小にするパラメータを求める手法です。
医療研究では、たとえば「患者の年齢・BMI・収縮期血圧」を説明変数として「HbA1c値」を予測するモデルを構築する場面でよく使われます。つまり複数の要因が結果にどの程度影響するかを定量化できる手法です。
数式で表すと、推定値 \(\hat{y} = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_p x_p\) となり、各 \(\beta\) が回帰係数です。係数の推定は \(\hat{\beta} = (X^T X)^{-1} X^T y\) という行列演算で一発に求まります。これが基本です。
OLSの最大の強みは「解析的解(閉じた形の解)」が存在することです。反復計算が不要なため、サンプルサイズが数万件でも計算が高速です。また、Gauss-Markovの定理により、仮定が満たされていれば「最良線形不偏推定量(BLUE)」であることが保証されています。
医療研究者にとって重要なのは、係数の「統計的有意性」だけでなく「臨床的意義の大きさ」も合わせて報告することです。p値が0.001でも、効果量が臨床的に無視できるほど小さければ意味がありません。この視点が見落とされがちです。
OLS回帰を正しく使うには、5つの仮定を満たす必要があります。医療データはこれらを破りやすい特性を持っているため、注意が必要です。
医療データで特に問題になるのは「4番の独立性」です。同一患者から複数回採血したデータをOLSで分析すると、独立性の仮定が崩れ、標準誤差が過小評価されます。その結果、本来有意でない変数がp<0.05と判定される偽陽性が増加します。これは意外ですね。
前提確認の実践的な手順は以下の通りです。
仮定の検証に使えるソフトとしては、R言語の`lm()`関数が手軽です。`plot(model)`の4枚セットで主要な診断プロットが一度に得られます。Pythonなら`statsmodels`の`OLS`クラスで同様の診断が可能です。
回帰分析を実行すると、多くのソフトウェアは共通した出力を返します。これを正確に読み取る力が、研究の質を左右します。
まず「回帰係数(Coefficient)」と「95%信頼区間」を確認します。たとえば「BMIが1増加するとHbA1cが0.08%上昇(95%CI: 0.05〜0.11)」という形で解釈します。信頼区間が重要です。
次に「決定係数 \(R^2\)」です。これはモデルが目的変数の分散をどれだけ説明できるかを示します。ただし、説明変数を増やすだけで \(R^2\) は必ず上がるため、変数を追加したときの改善度合いを見るには「自由度調整済み \(R^2\)(Adjusted \(R^2\))」を使います。
| 出力項目 | 意味 | 医療研究での注意点 |
|---|---|---|
| Coefficient (β) | 説明変数1単位増加あたりの目的変数変化量 | 単位に依存するため標準化係数も確認 |
| Std. Error | 係数推定の不確実性 | 大きいほど推定が不安定 |
| t値・p値 | 係数がゼロと異なるかの検定 | サンプルが多いとほぼ何でも有意になる |
| R² | モデルの説明率 | 医療データでは0.3〜0.5でも「良好」なことがある |
| F検定 | モデル全体の有意性 | 個別係数とは独立して確認 |
p値の解釈には特に注意が必要です。大規模コホート研究(n=5,000以上)では、臨床的に意味のない小さな差でもp<0.001になりやすいです。これは使えそうです。
標準化回帰係数(β標準化)を合わせて報告すると、説明変数間の「相対的な影響力」を比較できます。たとえば「BMIと喫煙歴のどちらがHbA1c上昇に寄与しているか」を同じ土俵で比較できます。単位が違う変数を比べるときに必須です。
OLSが万能でないことは、経験ある研究者でも見落としがちです。データの性質によっては、OLSよりも適切な手法が存在します。
「OLSが使えないから複雑な手法に移行する」と考えると心理的ハードルが高くなります。そうではなく、「アウトカムの分布と測定構造に合った手法を選ぶ」という発想が原則です。
Rでの代替手法の実装は比較的容易です。たとえばロジスティック回帰は`glm(y ~ x1 + x2, family = binomial)`、ポアソン回帰は`family = poisson`に変えるだけです。Pythonの`statsmodels`も同様のAPIを持ちます。
医療従事者が自分で解析する場合、SPSS・JMP・Stata といった商用ソフトウェアのGUIでも各手法は実装されています。自分のデータ構造に合った手法選択さえできれば、ソフトの操作は後からでも習得できます。
実際の医療現場や臨床研究でOLS回帰がどのように使われているか、具体的なシナリオを見ていきます。
🏥 事例1:術後疼痛スコアの予測モデル
ある病院の整形外科で、膝関節置換術後3日目のNRS疼痛スコア(0〜10)を目的変数として、年齢・性別・術前痛み・不安スコア・麻酔方法を説明変数としたOLS回帰モデルを構築した研究があります。回帰係数を見ると「術前不安スコア(STAI)が10ポイント上昇するとNRSが平均0.6ポイント上昇(95%CI: 0.3〜0.9)」という結果が得られます。これにより、術前介入の優先対象患者を特定できます。
🏥 事例2:検査値の多変量補正
eGFR(推算糸球体濾過量)が年齢・BMI・血圧・HbA1cとどのように関連するかをOLSで解析し、それぞれの独立した寄与度を求めます。単変量解析では「BMIが高いほどeGFRが低い」に見えても、多変量解析で年齢を調整すると関連が消えるケースがあります。つまり交絡を除去するツールとして機能します。
🏥 事例3:医療費の予測(注意が必要なケース)
1人あたり年間医療費は非常に右に歪んだ分布を持ちます(ほとんどの患者は低額、一部の患者が極端に高額)。このまま OLS を適用すると残差の正規性・等分散性が崩れます。この場合は対数変換(log-transformed OLS)やガンマ回帰を検討する必要があります。医療費分析でOLSをそのまま使うのは要注意です。
医療研究でOLS回帰の結果を報告する際には、国際誌の基準に沿って「調整済み \(R^2\)、各変数のβ係数、95%CI、p値、診断プロットの確認結果」を揃えることが求められます。JAMAやLancetなどの査読誌では、Methods欄での前提条件の確認・報告が必須です。
日本語での参考資料として、以下のリソースが役立ちます。
回帰分析の前提確認と診断方法について(東京大学大学院医学系研究科 公衆衛生学・健康医療政策学分野 資料)。
https://www.m.u-tokyo.ac.jp/medinfo/statistic.html
医療統計の基礎から応用まで解説している「医療統計学の基礎」(日本医師会 学術推進会議 監修)。
https://www.jma.or.jp/jma/doctor/statistics.html
OLS含む回帰分析の実装コードと解説(R言語)。
https://cran.r-project.org/doc/contrib/Mori-Rjiko.pdf
OLS回帰は「使えば終わり」ではなく、「仮定の確認→推定→診断→解釈」のサイクルを回して初めて信頼性の高い結果が得られます。医療データの特性を理解した上で活用することが、エビデンスの質を高める第一歩です。