本当に痩せてるの?重回帰分析でダイエットの成功を予測する

 

今回は、Excelで簡単に重回帰分析を行う方法を紹介します。

 

元々がぽっちゃり体型の松本は、夏からダイエットを始めていました。ぽっちゃりの領域を超えて、もはやデブだからです。

1日3食のうち1食を怪しげなダイエット食品に置き換え、ジムでジョギングをして、たまに誘惑に負けてラーメンに逃げる。こうして松本は、およそ1ヶ月で約6キロ減のダイエットに成功しました。

このまま行けば、松本は何日後に体重を60キロ台に落とすことができるでしょうか。運動の回数をどれくらい増やし、ラーメンの誘惑に何度勝てば、もっと早く痩せられるか、予測してみたいものです。

そんなことが簡単にできるのでしょうか。できるんです。そう、回帰分析ならね。

 

「回帰分析」とは何か?

簡単に言うと、回帰分析とは「xがyに影響を与えたか?を分析する」ことです。

例えば、xを「気温」、yを「ソフトクリームの売上」だとすると、「気温がソフトクリームの売上にどれくらい影響を与えたか?(気温1度上がる毎に売上はどれくらい上がるのか?)」を知る方法が回帰分析になります。

以前、相関関係について紹介しましたが、回帰分析は相関の考え方を取り入れています。相関が強いもの同士だと影響は強く現れるし、相関が無いもの同士だと影響は殆ど現れません。

回帰分析と聞くと、単回帰分析とか重回帰分析とか色々聞きますが、xが1つなら単回帰、xが2つ以上なら重回帰と呼ぶだけです。

 

単回帰分析と重回帰分析の考え方の違い
単回帰分析と重回帰分析の考え方の違い

 

yを目的変数、xを説明変数と言います。

yにxが矢印を指しているので、yという目的に対してxがどれほど説明できるか(影響しているか)という絵が頭に浮かべば、回帰分析の大枠は理解できたと言っても過言ではありません。

単回帰分析は直接効果、重回帰分析は間接効果まで含めた分析と表現すれば、イメージしやすいでしょうか。

 

回帰分析を実施するとき、注意すべき2つの点があります。

 

1つは、xとyの因果関係を理解してから分析を始める点です。

回帰分析は数列を計算式に基づいて分析するだけで、文脈を判断するわけではありません。したがって、先ほどの「気温」と「ソフトクリームの売上」の例で言うと、「ソフトクリームの売上が気温に影響を与えたか?」を分析することもできます。

論理的に考えればあり得ない話ですが、それを判断するのは数式ではありません。人間です。

したがって、何が目的変数なのか、そして目的変数に影響を与えていると考えられる説明変数は何かを事前に整理してから、分析を始めましょう。

 

もう1つは多重共線性(いわゆるマルチコ)なのですが、これは分析を終えてから説明したいと思います。

 

回帰分析で見るべきは係数、P値、重決定R2(補正R2)

松本のダイエットの成果を確認してみましょう。

体重、体脂肪率、ラーメンを食べに行った日(0/1で表現)、ジムでジョギングをしたkmそれぞれの結果は以下の通りとなりました。

 

体重、体脂肪の推移
体重、体脂肪の推移

 
上の表をグラフ化
上の表をグラフ化

 

約86キロから始まり、一気に痩せた後は油断しまくって、悪戦苦闘してようやく80キロを切りました。

数字の正当性を担保するために、毎日7時台に計測をするという心構えだけは確保していたのですが、それだけでした。

なんとなく「ラーメン」が悪さをしていることがわかるのですが、それを明確にするために、体重の折れ線グラフを、(前日の体重)マイナス(今日の体重)で表現し直します。その結果は次の通りです。

 

前日との体重差分。前日にラーメンを食べると必ず太る。(当たり前)
前日との体重差分。前日にラーメンを食べると必ず太る。(当たり前)

 

ラーメンを食べた次の日の体重は、間違いなく激増していることがわかりました。また、ジムでジョギングをした次の日の体重は、わずかながらも減っていることがわかりました。

 

この結果をもとに、重回帰分析を行なっていきましょう。

まずはエクセルの[データ]タブを選択し、右端の[データ分析]を選択してください。

 

[データ]タブ > データ分析機能。毎度おなじみ。
[データ]タブ > データ分析機能。毎度おなじみ。

 

次にリストから[回帰分析]を選択します。

すると以下のような画面が表示されるので、目的変数のyと、説明変数のxを選択してください。

 

[回帰分析]一覧。
[回帰分析]一覧。

 

今回の場合、目的変数は体重、説明変数はジムでのジョギング(キロ数)、ラーメンに行ったか否か(0/1)、そしてダイエット開始経過日数(ダイエットの努力そのもの)になるでしょう。

 

次のような結果になりました。

 

回帰分析の結果。
回帰分析の結果。

 

いろんな数字が出ているので、何を見るべきか迷いますが、「係数」「P値」「重決定R2」で十分です。それぞれ説明していきます。

 

「係数」とは、その指標の重みです。例えば今回の重回帰分析の結果、松本のダイエットは以下のようなモデルで表現できることがわかりました。

 

y = 83.60kg-0.14×(ダイエット経過日数)+0.73×(ラーメン行った)-0.04×(ジムジョギングkm数)

 

ダイエットを始めて、1日あたり約0.14kg痩せてるし、でもラーメンを食べたら約0.73kg太ってるし、でもジムで走ったら1kmあたり0.04kg痩せているということが分かったのです。

松本の身長は174cm、標準体重の目安がBMI指数22なので66.6kgまで落とす必要があります。つまり80kg段階であと13.4kg落とす必要があります。

今回の係数を基準に考えると、13.4kg / 0.14kg = 95.714… 約96日間は継続する必要があるようです。ただし、体重は落ちれば落ちるほど「落ちにくくなる」ことが考えられるので、間違いなくそれ以上かかるでしょう。ため息が漏れますね。

係数からこうした未来予測も可能というのがお分かりいただけたでしょうか?

 

では、この係数の値がそもそも正しいのかを次は知りたいですよね。それは「P値」でわかります。「P値」とは簡単に言うと誤判断のリスクです。

ダイエット経過日数のP値は0.00です。これは、ダイエット開始からの経過日数毎に体重が0.14kg落ちると判断したとき、そうじゃない可能性が0%だということを表しています。

一方、ジムのP値は0.60です。これは、ジムでジョギングしたkmあたり体重が0.04kg落ちると判断したとき、そうじゃない可能性が60%だということを表しています。降水確率だと間違いなく雨が降っています。

難しいのがラーメンです。P値が0.17です。つまり、ラーメンを食うと体重が0.73kg増えると判断したとき、そうじゃない可能性が17%だということを表しています。これが全国のマーケッターの頭を悩ます「P値は何%以下なら良いんですか?」問題です。

個人的には何%かの問題ではなく、もしそうだとしたらどのような対策が必要かを考えることのほうが大事だと思っています。なので誤判断の可能性が60%あるけど、ジムで走れば痩せるんだと主張するのもありだと思います。

※ただし真面目な話をすると、標準誤差を考えると-0.04±0.08なので無理筋ではあります。

 

最後にモデルそのものの精度を確認するために、「重決定R2」を見ます。これは先述したモデルの当てはまり度合いを指します。

松本の体重推移を、挑戦からの日数と、ラーメンに行った日と、ジムでのジョギングkm数で説明しようとすると59%説明できていることを意味しています。

残り41%は、もしかしたら昼飯の内容かもしれないし、毎日の消費カロリーかもしれません。

この数字も何%だから良いというものでもありません。これ以上の説明変数が無いのであれば、全体の約6割を説明できているという考え方に立ったほうが建設的な議論ができるでしょう。

 

マルチコに気をつけろ!

とはいえ残り40%の指標を探そうと色々調べていて、偶然にも体脂肪量(体重×体脂肪率)を説明変数に含めて重回帰分析を行うと決定係数が圧倒的に良くなりました。

その結果が以下の通りです。

 

R2が非常に良い。
R2が非常に良い。

 

「重決定R2」が85%と、体脂肪量を入れるだけで説明力が25%も増しました。体脂肪量のP値も0.00と問題無さそうです。

しかし、残りの説明変数で奇妙な現象が起きています。ラーメンを食べると-0.31kg痩せ、ジムでジョギングすると1kmあたり0.11kg太るようです。

説明力は上がっているのに、なぜこのような結果になるのでしょう? 実は、これが多重共線性なのです。

 

「単回帰分析は直接効果、重回帰分析は間接効果を含めた分析」と言いました。つまり、説明変数が複数あると、説明変数同士の関係性も考慮していることになります。

重回帰分析では、大前提として説明変数同士に相関関係は無いものと考えて分析を行います。

もし説明変数同士に相関関係があると、x1が変動するとyに影響を与えるだけでなくx2にも影響を与えることになるからです。x2も同様です。すると、x1の効果でyに影響を与えられたのか相関関係のあるy2の影響があるのかがわからなくなるのです。

 

説明変数同士に相関関係があると結果のミスリードが起きやすい
説明変数同士に相関関係があると結果のミスリードが起きやすい

 

これが多重共線性(マルチコ)です。

ちなみに目的変数、説明変数同士の相関関係を確認してみました。

 

相関係数の結果
相関係数の結果

 

体脂肪は、ダイエット経過日数、ラーメン、ジム全てにおいて相関があることがわかりました。つまり4つ目の説明変数としては不適切なのです。

 

松本がダイエットに成功するのはいつの日か

ラーメンを絶対に我慢して、ジムで週2回ジョギング5kg走れば90日後には66kgになっているでしょうか。

私には、その自信がありません。グラフを見て頂いた通り私は意志の弱い人間で、ちょっとでも軌道に乗ると、直ぐに心が緩んでしまいます。

誰か、私のダイエットをサポートしてくれて、痩せるという結果にコミットしてくれる、そんな人はいないもんでしょうか。

 

…あ。


ブゥーチッ ブゥーチッ♪

ブゥーチッ ブゥーチッ♪

ペーペッペッペペーペーペペ♪

ペーペッペッペペーペーペペ♪

 

ブゥーチッ ブゥーチッ♪

ブゥーチッ ブゥーチッ♪

ペーペッペッペペーペーペペ♪

ペーペッペッペペーペーペペ♪

 

ライザップで筋トレ中…。
ライザップで筋トレ中…。

 


ブゥーチッ ブゥーチッ♪

ブゥーチッ ブゥーチッ♪

ペーペッペッペペーペーペペ♪

ペーペッペッペペーペーペペ♪

 

ブゥーチッ ブゥーチッ♪

ブゥーチッ ブゥーチッ♪

ペーペッペッペペーペーペペ♪

ペーペッペッペペーペーペペ♪

 

ライザップで筋トレ中…。
ライザップで筋トレ中…。

 

次回予告
「ライザップで11kg痩せた!ダイエット成功の理由を分析する」に続きます。