Excelによる回帰分析の方法③ ~重回帰分析:複数のデータを比較する方法~

過去、この記事で、データを分析する方法として「回帰分析」をExcelで紹介した。また、回帰分析により得た傾向の信頼性を示す手法として「相関係数」をExcelで出力する方法も紹介した。そして、データを前にしたときに、まずデータ間の相関性をつかみ、それが強いもののみ回帰分析を行えば、自信をもって解析結果を語れると述べた。

今回は、この考え方を引き継ぎつつ、比較したいデータが複数あるときに回帰分析を行う手法を述べたいと思う。「重回帰分析」をExcelで行う手法である。この手法を会得することで、「欲しい量と、それに関係しそうな複数の要素をまとめた関数式」を得ることができる。例えば、「お店の売り上げと、店舗面積、駅からの近さ、扱っている商品数、開店時間の長さetc」を「お店の売り上げ=α・店舗面積+β・駅からの距離+γ・商品数+η・開店時間」といった具合にである。では、早速始めよう。

Excelでどうやって重回帰分析をやるか?

まず、下準備としてExcelを重回帰分析が使える環境に設定しておく必要がある。過去記事の「Excelによる回帰分析の方法②」を参照されたい。

「ファイル」→「オプション」→「アドイン」→「分析ツール」→「OK」

分析ツールを使えるようにしたら、いよいよ重回帰分析である。下記にフローを示す。

以下、順番に説明する。

まず、データを用意する。求めたい量に対して、関係していそうな要素を何でもよいからあげてみよう。※ 前提として、理論式が特になくデータから見つけるしかないとする。理論式が分かっている場合は、そちらを使って下さい。

ここでは、例として、電気製品の「騒音値と複数のファン」に関する試験データをあげる。下記のようなデータがあったとする。

ここでいう騒音値とは、電気製品から外にでてくる音のことである。一般的に、電気製品は熱を持つので、ファンと呼ばれる回転体( 扇風機や換気扇 をイメージしてください )を実装する。このファンは、その回転数に応じて音が変わる。また、製品内で同じファンを複数使うとも限らないし、同じような位置にあったとしても騒音値が単純に加算されるわけではないので、「製品騒音値とファン回転数」の関係を見つけることは難しいのである。そこで、ここでは重回帰分析による手法でそれを見つけてみたいと思う。

上記データは、ファンが三台搭載されている製品において、各ファンを適当に定めてみて、製品騒音値を測定した物である。

欲しい量と複数データの相関関係を調べる

「データ」 → 「分析ツール」 → 「相関」→「OK」と進む。

下記のような小コマンドが出るので、入力範囲をする。入力は、特に変わったことをする必要はない。表を表題まで含めてマウスで覆って(=ドラッグして)あげればよい。その際、下記の小コマンドの中位にある、「先頭行をラベルとして使用」にチェックをいれると、後で出力される相関データが見やすくなる。出力オプションは、相関データを出力する場所を指定できる。下図のように何もしなければ、新しいシートに出力される。場所を指定したい場合は、下記の「出力先」にチェックをいれて、出力先のセルを指定する。

騒音と回転数の生データに対してExcelの分析ツールで相関を調べると、下記のような表が、自動的に出力される。

赤枠内が、データ上の騒音値に対する各ファンの相関係数である。これをみると、ファン2と騒音値の関係性が確実(≧0.7)にあり、ファン3は無視できない程度関与(0.3~0.7未満)しており、ファン1はほとんど関与しない(≦0.3)という結果になった。

重回帰分析にかける、結果をまとめる

ここで、以降の重回帰分析を行うわけだが、二つの方針をとることとする。今、上記の結果で、相関係数0.7以上の物はファン2のみである。言い換えれば、ファン2が、製品騒音値を支配的に決めていると分かる。そこで、方針の一つは、「製品の騒音値を決めるのはファン2であり、その回転数と騒音の関係をつかめば十分である」という仮説の元、「騒音値とファン2の回転数」に対して回帰分析を行う。

もう一つの方針は、全て同時に回帰分析を行うである。確かに、相関係数だけをみると、ファン2が突出しているが、ファン1も2も音源であることに変わりはない。よって、それを知っていながら無視することはできない。よって、一緒に回帰分析をしようという物である。

あとで、この二つの結果を比較してみる。やり方としては、時間と要素数と相談して前提さえしっかり定義しておけば、どちらの方針を採用しても良いと思っている。筋が通っているからである。

【方針1】:騒音値とファン2の回転数の関係

この結果を、入力:回転数[rpm]、出力:騒音値[dBA] として整理しておく。こうしておくと、後でデータを元にした予測をすることで可能になる。

※ K26は、私が使用したExcelシートにおいて、ファン2回転数の記入箇所(上図の青枠内)のセルが、たまたまK26であっただけである。

【方針2】:ファン1~3のすべての重回帰分析

まず、先の相関係数と同じように、「分析ツール」を立ち上げ、「回帰分析」にチェックを入れる。

「OK」を押すと、範囲指定をする小コマンドが立ち上がるので必要な範囲を記入する。

入力範囲(Y)には、欲しい量(=パラメータを変えて予測したい量 )を記入する。出力範囲(X)には、要素となるパラメータをまるごと指定する。ラベルごと範囲指定し、中段にある「ラベル」にチェックを入れておくと後が楽である。こうして出力された結果が下記である。

この結果より、騒音値(=欲しい量、予測しい量)と各ファンの回転数をつなぐ式が記述できる。上図の色んな情報を無視して、赤枠で囲ったとこだけ着目する。この情報から関数式を記述すると、下記のようになる。

騒音値[dBA]=0.000689×(ファン1回転数)+0.004116×(ファン2回転数)+0.001019×(ファン3回転数) – 3.06

これも、入力:ファン回転数、出力:騒音値 として整理しておく。

では、ここで【方針1】と【方針2】の結果の違いを考えてみる。方針1は、「ファン1と3の回転数は何でもよく、ファン2が製品騒音値を決めるのだ!」というもの。方針2は、「ファン1~3の全てが製品騒音値に影響するのだ!」というものである。

・テスト1:ファン1=ファン2=ファン3=8000rpm

・テスト2:ファン1=4000,ファン2=8000,ファン3=4000

・テスト3: ファン1=10000,ファン2=8000,ファン3=4000

・テスト4: ファン1=4000,ファン2=8000,ファン3=10000

テスト1より、全ての回転数が同じ場合は、確かにファン2の値をみれば、1dBAほどの違いしかない。よって、ファン2の回転数をみればおおよそ製品騒音値が分かると言えそうである。

しかし、テスト2をみると、ファン1や3を思い切り回転数を下げてみると、8dBA弱まで結果に差が出てしまう。ただし、それがファン1や3をそれ以外の任意の数にしてもある程度保たれるのならば、ファン2の回転数から予測された騒音値にその補正数を加えればよいので、方針1は使えるかな…と思ってテスト3や4をしてみた。結果、値が1.6~3.6dBAと大きくバラついたので、補正は難しそうだと分かった。

また、テスト2と3は、騒音値との相関が最も少ないと思われてたファン1の回転数を変えたのだがそれでも4.2dBAもの差が出てしまった。このことから、相関係数が0.3未満だとしても、明らかに所望量に影響すると考えられる要素の場合は、重回帰分析にかけた方がよいと分かる。

※ 今回の分析は、回転数が8000rpm以上に対して求めたものである。それに対して、テストでは回転数4000rpmなど逸脱した値も使っている。相関係数が小さいのに、結果に大きく反映されている場合は、予測に使用したデータ範囲外の可能性があるので、別途、興味のある方は調べていただきたい。

まとめ

・予測したい量に対して、複数要素の関与が気になる場合は、重回帰分析しよう!

・Excelの「分析ツール」で簡単にできます。

・パラメータ数が多い場合は、相関係数の大小で回帰分析数を減らそう。

 しかし、明らかに関与すると思う場合は、相関係数が小さくても分析にかけよう。