見出し画像

文系出身SEによる重回帰分析の概説

はじめに

本稿は、重回帰分析をやったことがない人が、読んどけばとりあえずは作業できる、というレベルに至るお手伝いをする目的で書かれておりますので、アカデミックな説明もないですし、口語でふんわり作業手順を解説している程度です。自身が作業を行うに当たって、ググっても意外とそういうサイトないよなって感じたことから端を発しております。初学者で、他のサイトじゃ何言ってるか分からないと感じた方は是非参考にしていただけると幸いです。

重回帰分析の適当な説明

重回帰分析ってそもそも何か。専門書や重回帰分析の説明をしているサイトを見てみると、多変量解析~とか、目的変数・説明変数が~とか、いろいろと書かれていますが、ざっくり言えば、知りたい情報を複数の項目から導き出しますよーといった分析方法です。

たとえば、モテる人は何が違うのかなー、という情報が知りたいときに、交際した女性の人数を目的変数として、説明変数に「身長が高い」「年収が高い」etcといった項目を設定してあげれば、分析できますよといった話です。

ただし、重回帰分析には弱点があり、上記の例で、「身長170cmくらいはモテるけど、身長200cm以上はモテない」であったり、「年収800万円はモテるけど、1,000万円以上の人は仕事で忙しくてモテない」であったり、とそれぞれの説明変数が比例してくれない可能性もあります。重回帰分析は、線形のモデルなので、"思ってたんと違う"(いわゆる「外れ値」)が来てしまうと、この項目は相応しくですよ~と分析結果で怒られたりするわけです。

以下は、外れ値だらけ風のお絵かきです。(値を用意するのが面倒でした、手抜きでごめんなさい)

重回帰_1

以下は、いい感じのお絵かきです。「分析」って聞くと、どこかハードルが高そうな気がしますが、直線を引けるようにすればいいって思うとなんか簡単な気もしますね。

重回帰_2

弱点を踏まえて、そもそも分析方法として、重回帰分析を使うのが妥当かどうかを判断したうえで、挙げられる限りの説明変数を用意し、徐々に影響を与えている要素を絞り込んでいくことが必要となります。

データ分析の事前準備

たった今、officeソフトの1か月間トライアルに駆け込んできたので、ここからはスクショ多めの手順説明が中心になります。手順は忘れても見返せるようになりますが、解約を忘れると1万と数千円課金されてしまうので、注意しながら進めていきたいと思います。

まず、最初の作業としては、データ分析のコマンドを出すために、Excelの機能拡張が必要です。(既に完了しているかたは飛ばしてください)

ファイルを選択

重回帰_3

オプションを選択

重回帰_4

アドインを選択

重回帰_5

管理ボックスを[Excelアドイン]にして[設定]を押下

重回帰_6

分析ツールにチェックを入れて[OK]を押下

重回帰_7

データの右端に[データ分析]の機能が出てきます。これで事前準備は完了です。

重回帰_8

さようなら多重共線性

データ分析の機能を拡張したし、重回帰分析を回せるぜと考えたいところですが、まずは説明変数同士に強い相関があるかどうかを見ていかないといけません。似たようなものがいっぱい含まれている(多重共線性)と、1つの要因に引っ張られて予測精度が下がってしまうといったお話です。お店の売り上げについて分析するときに、「雨の日数」「降雨量」「湿度」などの説明変数の項目があったら、「雨」に寄り過ぎた分析結果になってしまい、その他に「交通量」などの項目があったとしても、結果にうまく反映されません。話が長くなりましたが、作業手順を以下に示していきたいと思います。

相関を選択し、[OK]を押下

重回帰_9

入力範囲を指定し、先頭行をラベルとして使用にチェックを入れ、[OK]を押下

※先頭行をラベルとして使用にチェックを入れておくと範囲指定の際に、結果に項目名が出てきて分かりやすいので、マストで入れましょう。

重回帰_10

結果が表示されます。

重回帰_11

値が適当なので、結果に関しても適当な内容が出ておりますが、結果を見るうえでの基準は以下の通りです。

重回帰_12

トリミングが雑すぎて申し訳ない気持ちでいっぱいなのですが、仕事じゃないのでよしとします。私が重回帰分析を用いたときは、相関が0.7以上のものは多重共線性により除外して分析を行いました。今回は年収を目的変数とするので、年収と相関が高いものについては、むしろ歓迎ということで、それ以外の説明変数同士の相関を見ていきます。

重回帰_14

色を付けたところが、多重共線性が疑われる項目です。年収と相関が低いほうを落としていきますか、ということで、「勤続年数」と「大学の偏差値」を落として重回帰分析を行っていこうと思います。

やっときた重回帰分析

重回帰分析を始める前に、生き残った説明変数たちを確認しておきましょう。

重回帰_15

いやあ・・・4項目は少ないですね・・・。Excelでは、16項目まで説明変数として扱えてそれ以上を扱う場合は、Pythonの知識が必要になるのですが、今回はExcelに特化して進めたいと思います。

[データ]-[データ分析]から、回帰分析を選択し、[OK]を押下

重回帰_16

入力Y範囲に目的変数を、入力X範囲に説明変数を入れ、ラベルにチェックを付け、[OK]を押下

※ラベルにチェックを入れることで、項目名を表示させることができます。

重回帰_18

出てきた結果がこちらです。

重回帰_19

で?って感じですね。ひとつひとつ意味を説明するのもいいかもしれませんが、冒頭でお話しした通り、結局どこを見てやればいいのか分かればそれでオーライ!というモチベーションなので、実際に数字を確認していた個所だけをピックアップして適当に説明します。

重回帰_20

正直、どの値もとらえ方によってまちまちなので、これも一例ですが、補正R2は0.8あれば精度高いなって印象を受けます。あくまで個人的な感覚値ですが、人の分析結果を聞いたときに0.7とかでも納得感を得られたのですが、0.6やそれ以下になってくると流石に精度的にどうなの?という感を受けたので、低くても0.7くらいあったほうがいいなという印象です。(0.5以上ならOKと書いている記事もあるので、詳しいことは専門家に聞いてください笑)

t値とp値はまあこんな感じでしょう。この値を満たしてないものを除外して、イケイケな分析結果を求める作業をこれから行います。

重回帰_21

勤務先の従業員数、全然ダメじゃん。除外。

重回帰_22

補正R2が際どいですが、適当に作ったにしては上出来な結果が得られました。

おわりに

重回帰分析について、フランクな感じで説明をだらだらとしてきましたが、理解の助けになっていれば幸いです。

実は、これで分析は完了ではなく、学習データと検証データを用意し、学習データから導き出された回帰式を、検証データを用いて妥当か見ていかなければなりません。なかなかに疲れたので、今回は割愛しますが、気が向いたらまた検証方法についても書く日が来るかもしれません。

何かご指摘や不明点があった際は、コメントをいただければと思います。

この記事が気に入ったらサポートをしてみませんか?