ここに「重症度, 総コレステロール, 中性脂肪」を列記したデータがある(N=10)。 これについて回帰分析を試みる。
「総コレステロール, 中性脂肪」を材料にして「重症度」を推定できるか調べる。
| 患者No. | 総コレステロール | 中性脂肪 | 重症度 | 
|---|---|---|---|
| 1 | 220 | 110 | 0 | 
| 2 | 230 | 150 | 1 | 
| 3 | 240 | 150 | 2 | 
| 4 | 240 | 250 | 1 | 
| 5 | 250 | 200 | 3 | 
| 6 | 260 | 150 | 3 | 
| 7 | 260 | 250 | 2 | 
| 8 | 260 | 290 | 1 | 
| 9 | 270 | 250 | 4 | 
| 10 | 280 | 290 | 4 | 
まず、「重症度, 総コレステロール, 中性脂肪」の各要素の組みについて相関係数を算出する。
それを表形式で示すと次のとおり。
| 重症度 | 総コレステロール | 中性脂肪 | |
|---|---|---|---|
| 重症度 | 1 | 0.827 | 0.386 | 
| 総コレステロール | 0.827 | 1 | 0.753 | 
| 中性脂肪 | 0.386 | 0.753 | 1 | 
目的変数と各説明変数の組みに関する散布図は図1〜図2のようになる。


回帰分析を行った結果、次のような推定のための計算式(回帰式)が求められた。
「重症度」 = -18.5014 + 0.09162236 × 「総コレステロール」 + -0.01146323 × 「中性脂肪」
次に決定係数関連の情報を列記する。
| 決定係数 | 0.8137019 | 
| 自由度調整済み決定係数 | 0.7604739 | 
| F検定の値 | 15.28709(df: 2 〓 7) | 
| F検定のp値 | 0.002790805 | 
今回の決定係数 0.8137019 という値は、「重症度」の変動が「総コレステロール, 中性脂肪」の変動によって 81.4%だけ説明できることを意味している。
残りの18.6%は、回帰式に含まれていない別の要素が関係しているとみられる。
決定係数の信頼性はF検定の結果により判断する。もっともっと幅広く 調査したとき、もしかすると決定係数が0になるかもしれない。その危険性を 示すのがF検定のp値である。これが0.05(5%)とか0.01、あるいは0.001より 小さければ、そのレベルに応じた有意性が認められることになる。
このp値が0.05以上だと、「母集団において決定係数が0である」 という仮説を、母集団に関して棄却できないと判断する。
回帰係数(coefficient:y切片や偏回帰係数)についての情報を 掲げると次のとおり。
| 見積り | 標準誤差 | t検定値 | t検定時のp値 | |
|---|---|---|---|---|
| 定数項 | -18.5013972443237 | 3.85620225141615 | -4.7978285468635 | 0.00197122423421542 | 
| 総コレステロール | 0.0916223559091791 | 0.0183291541405596 | 4.99872253823393 | 0.00156753202654268 | 
| 中性脂肪 | -0.0114632253056472 | 0.00519335137833611 | -2.2072886023976 | 0.0630490540761245 | 
この表で、1行目の「定数項」の「見積り」はy切片の値であり、 2行目の「総コレステロール」の「見積り」の欄は 当該説明変数の偏回帰係数の値である。
表の右端の「t検定時のp値」は、該当の変数が実は影響力を 持たないかもしれない危険性(確率)を示す。
偏回帰係数が0であれば、該当の説明変数の値が何であっても 目的変数の値に影響を与えない。
「総コレステロール」の係数が0.09162236と見積もられてはいるが、 もっともっと調査対象を拡げると、実は0ということもあるかもしれない。 その「かもしれない」の確率がp値である。 p値が十分小さければ、有意性が認められることになる。
定数項のp値については、レポートなどで言及することは少ないと思うが、 もっともっと幅広く調査した時にy切片が0であるかもしれない確率を示す。
参考まで、残差(誤差)および目的変数の実測値の2つについて、 その分布に関する主な数値を掲げる。 残差は、回帰式の値(予測値)と実測値との差。
| Min. | 1st Qu. | Median | Mean | 3rd Qu. | Max. | |
|---|---|---|---|---|---|---|
| 残差 | -0.9961 | -0.4396 | 0.1596 | -5.559e-18 | 0.3413 | 0.8885 | 
| 重症度 | 0 | 1 | 2 | 2.1 | 3 | 4 | 
今回の重回帰分析は、下のサイトを参考にさせていただきました。 素材データも、そこに掲げられているものです。
上のサイトでは、統計的な値の算出方法をはじめ、 いろいろな事柄について丁寧に解説されています。 重回帰分析に限らず、様々な分析についての解説があります。
オリジナルの表にあったTC, TGは、私にはイメージしにくい用語だったので
TC:総コレステロール、TG:中性脂肪
と変更した上で統計処理を行っています。
当該webを出力するためのrubyスクリプトは
lm_m.rb です。
回帰分析の簡単なレポート作成
で紹介しているrubyスクリプトを重回帰分析用に書き換えました。
  ruby lm_m.rb [enter]
上のように実行すると lm_m.htm が書き出されます。 それをブラウザで開くと、当該webと同じ内容になっているはずです。
用いているruby用ライブラリは次のとおり。 括弧内は私のところでインストールしてあるバージョンの番号です。
なお、webから素材データをちゃんと取得できたかを後で確認できるよう、 src_data.csv を書き出すようにしました。これには、統計の素材としたテーブルと、 webにあったオリジナルのテーブルの2つが含まれています。
また、markdownの原稿をmkd_m.txt というファイルに書き出すようにしました。 これをkramdownでhtmlに変換したのが当該webです。
〜 以上 〜