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の「分析ツール」で簡単にできます。

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

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


Excelによる回帰分析の方法②~相関係数の出し方~

前々回、「Ecelによる回帰分析の方法」として、グラフから簡単な傾向をExcelで読むとる方法を紹介した。その時、「やり方が正しいのであって、答えが正しいかどうかは別である」と述べ、回帰分析を使う際の注意点を述べた。今回は、相関係数を出力して、その値から回帰分析をする価値があるかどうかを判断する方法を紹介する。傾向を調べようとしているデータ間に相関があるといえれば、回帰分析によって得られたグラフも、一定の信頼性があると考えるからである。さすれば、「回帰分析によって得られた関数なんぞ、信用できねーよ!」などという輩にも科学的に釘をさすことができるし、自分も無駄な分析をしなくてすむ。是非、習得して有益な分析をできるようにしましょう。

相関係数とは?

データ間の相関の強さを表す量です。0~1の間の数で、1に近づくほど相関が強いことになります。

数学では、0.7以上を明確に相関度があるという指標にしております。よって、相関を調べたいデータがあった場合、まず、相関係数が0.7以上あるかどうかを見て、回帰分析をしてみてください。

Excelで相関係数を出力する方法とは?

まず、準備としてExcelの「分析ツール」を使えるようにする必要がある。下記の手順に従って、設定しましょう。

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

以上により、Excel上で「分析ツール」が使えるようになる。早速、リボン上の「データ」→「データ分析」→「相関」→「OK」を押して、下図のようなコマンドが出ることを確認しましょう。

例えば、以前示した、下記のデータの相関係数を出力させてみます。

先ほどの手順で、「相関」を「OK」すると上図の右側のようなコマンドが出ます。その入力範囲に、データの数値の箇所のみドラッグして入れてください。すると、下記のようなデータが出力されます。

上図の0.77796というのが、データ間の相関係数です。0.7以上なので有意な相関があるといえます。上図の列1と列1は、最大輝度のデータ同士の相関係数です。同じ値を比較しているので、1がでるのは当たり前です。列2と列2は、価格[円]のデータ同士を比較しているので同じく1が出て当然です。

このようにして、回帰分析するかどうか、したものが信頼できるものかどうか心配な場合は、是非、相関係数を出力してみて下さい。そして、0.7以上なら、数学的に意味のあるデータとして自信をもって使ってください。

なお、この後、欲しい量とその他複数のデータの間で回帰分析を行う、「重回帰分析」を紹介します。その際、鍵となるのが、複数のデータの選び方です。このとき、使用する方法こそが、「相関」です。是非、物にしてください。

まとめ

・回帰分析するデータの信頼性が心配ならば、データ間の相関を調べましょう。

・相関は、Excelのデータ分析を使って、相関係数にて判定しましょう。

・相関係数≧0.7 かどうかが重要です。

・重回帰分析の際の、パラメータの選定は、相関係数の良い順に行うので、ここでモノにしましょう。

熱設計の基本

電気製品の開発において、製品を所望の温度内に抑えることは極めて重要なことである。例えば、スマートフォンで動画を見ていたら熱くてやけどした!なんてことがあったら大問題である。そこで、機構設計者は、スマートフォン内の熱源が安全な温度になるように適切な機構を考えるのである。では、具体的にはどうすればよいのであろうか?今日は、それを少しお話ししたいと思う。

そもそも熱って何?

熱が熱が!というが、そもそも熱って何であろうか?

熱は、エネルギーである。温度は、その測定点でのエネルギー量を感覚的に捉えやすい値で示した物である。

エネルギーという概念でくくれば、光、振動、電気と熱は本質的には同じ物である。したがって、新発電方式、振動軽減、騒音対策などのトピックが出てくると、着目している現象に対して一見別の要素が出てくるのは、皆、エネルギー形態で結ばれているからである。

話を元に戻す。熱はエネルギーである。したがって、機構設計者は、作ろうとしている製品の内部に、どれくらいのエネルギーを発生する物が搭載されるのかを把握し、処理する方法を考えなければならないのである。

熱の処理の仕方 (熱の移動形態)

熱を処理するとは、エネルギーを移動させることを意味する。熱としてのエネルギーの移動のさせ方は、下記の三種類のいずれかの方法で行う。

① 熱伝導:熱源に冷たい固体をくっつけて、熱を冷たい方へ直接移動させる。

② 熱伝達:熱源の周囲の流体(空気など)を動かし、熱を流体へ移動させる。

③ 熱放射:熱を電磁波で移動させる。

①は、熱いものに触れると熱い!という現象そのものである。沸騰したヤカンに手が触れると、ヤカンのもつ大量の熱エネルギーが、その接触面からいっきに手に移動しようとするので、熱い!(痛い)と感じる。

②は、出来たてのラーメンの麺をフーフーして冷ましてから食べるという現象である。麺の熱エネルギーを、空気で吹き飛ばして下げているのである。

③は、焚火や暖炉のそばは温かいという現象を表したものである。物体が熱をもつとその熱は物体表面から電磁波によって放射される。

熱の処理の仕方 (理論手法基礎)

熱の移動形態は基本的には三種類しかない。よって、それぞれを数式で扱えれば、あとはその組み合わせで理論的に熱処理を考えることができる。

例えば、作ろうとしている製品の発する熱エネルギー(発熱量)はこのぐらいであり、製品サイズをこのくらいにすれば表面から熱放射でこのくらいの熱を放熱できる。よって、ファン(=熱源に風を吹き付けたり、空間を換気させる装置)はいらないなな!どという具合に判断できるのである。

下記に、まず、三つの伝熱現象に関係する係数を紹介し、次に関係式を示す。

三つの熱移動現象に関係する係数

・熱伝導率α [W・m/m^2・K]

・熱伝達率β[W/m^2・K]

・ステファンボルツマン係数γ:5.67×10^(-8)[W/m^2・K^4
・放射率ε:物体固有の電磁波を出す率。(ex. 皮膚0.9, 樹脂0.6~0.8, 金属0.1)

これらを使って、各熱の移動形態でどのくらいの熱を移動させられるのかを数式で示した物が下記である。

【熱伝導】

【熱伝達】

【熱放射】


これらが基本である。まだまだ知識としては不十分だが、一例として下記のように、熱伝達率を仮置きすれば、ざっくりと設計対象のサイズを見積ることができる。

【例】

・部品から発するエネルギー(発熱量):10W
・部品使用環境:35℃

のとき、部品の表面温度を仕様書に記載のある上限温度85℃にするには、放熱面積Sをどのくらいにすればよいか?

熱伝達の基本式より、

  • P=10W

発熱量Pは、電子部品なら、入出力電力の差が発熱量である。光源部品なら、入力電力から光出力と出力電力を引いたものが発熱量になる。それぞれの部品の仕様書に書いてあるのでしっかり見ていただきたい。

  • ΔT = 85-35 -10 = 40K

通常、使用環境で部品上限温度にならないように5~10℃ほど低めになるように設計する。ここでは、85℃より10℃低い、75℃を目標温度とした。

  • β=5.0W/m^2K

熱伝達率は、風の当て方、層流や乱流、物体の形状でも変わってくるが、ここでは、大体15W/m2Kほどはあるとする。( この辺は、経験による感覚です。 )

すると、S=P/(β・ΔT)より、S=10/(15×40)=0.016m^2=16,000mm^2 の放熱面積が必要だと分かる。

この情報から、機構設計者は、50mm角でフィン長50mm、ピッチが1mm くらいのヒートシンクが必要かな…と考えるのである。

※ 上記のヒートシンクの放熱面積は16,000mm^2 である。

次回は、熱伝達率のもう少し詳しい説明と、他の伝熱現象を組み合わせて現象を予測する方法を述べたいと思う。

Excelによる回帰分析の方法 ~基本的な手法~

回帰分析というのをご存知であろうか?これは、二つの量の関係性を分析する手法である。手法としては、今現在、人類が見つけている最も効率的な方法論である。比べる量が三つ以上ある場合は、重回帰分析という。今日は、Excelで簡単に回帰分析する手法を紹介する。身近な現象、実験に使ってみてほしい。

Excelでどうやるのか?

例えば、下記のようなデータがあったとする

これは、某R社のプロジェクターの輝度と販売価格を表にしたものである。データは、価格.com ( 2019/2現在 )のデータを元にした。例えば、あなたが、R社の競合会社の企画者であったとして、「明るさ(輝度)と販売費用の関係」を知るにはどうすればよいだろうか?

こうしたときに、結果の正当性はいったん置いといて、人類の見つけた最善の手法が回帰分析である。

まず、Excelを立ち上げ、上表を打ち込む。そして、表題から表の下端まで、下図のようにマウスでドラッグする。

次に、Excelのリボン(コマンドの上側に出ている部分)において、「挿入」を選ぶ。

この「挿入」の中の中央に、グラフという項目があり、下図の赤丸箇所をクリックする。

すると、下図のようなグラフが出力される。これを散布図という。

この時、横軸が表の左側、縦軸が同右側である。解析の際は、縦軸と横軸を明確にすることは極めて重要なので、記載しておく。やり方は、グラフ上にマウスのカーソルを持っていくと下図のように「十字」「ペン」「ジョウロマーク?」みたいなものが右上に出てくる。その十字(赤丸)をクリックする。

すると、下図のように「グラフ要素」が出てくるので、「軸ラベル」に印を入れる。

すると、下図のようになる。

ラベルのところをマウスでクリックし、要素名を記入する。

ここで、回帰直線を引く。これは、各点からの距離和が最小になるように引かれた直線である。人類が複数の点間を通る線の引き方として見つけ、定めた、最善の方法である。これに対して否定できる人は、今のところいません。(数学者ですらできていないから)

やり方は、上図において点のどれかにカーソルを合わせてクリックする。

そして、マウスをその場で右クリックし、「近似曲線の追加」を選択、クリックする。

グラフの点線が、回帰直線である。後は、この直線を表す関数が分かれば、「輝度と価格」の関係が予測できたことになる。やり方が正しいのであって、予測精度などの結果が現実に正しいかどうかは、別の話である。

さて、やり方は、上図の回帰直線を先ほどと同じく、クリックする。出てきた小コマンドの「近似曲線の書式設定」をクリックする。すると、Excelの右側に新たなコマンドが現れる。

そして、右下の赤で囲った箇所「グラフに数式を表示する」にチェックを入れる。そうすると、グラフ上に、数式が表示される。これが、データから回帰分析によって得られた、輝度と価格の関係である。


この後、さらなる分析やディスカッションを経て、この予測が使えそうだと合意ができたら、Excelで下図のようなフォーマットを作っておくと、何かと便利である。

入力の空欄(=セルI20)は、今後、好きな輝度を数値で入力する箇所である。

出力の空欄(=セルI21)には、先ほど求めた回帰直線の数式を記入する。

先ほどのグラフ上の数式におけるXは、最大輝度の入力値である。上図の場合、最大輝度を入力する箇所はセルI20なので、Xの箇所にI20と記述する。

例えば、最大輝度7,000lmのプロジェクターを企画することになったとき、販売価格はどのくらいを想定すればよいか?と思ったとき、上のフォーマットに7,000と入力すると、

という具合になる。

この結果が、予測結果として十分かどうかは、別途議論が必要である。

例えば、この予測では、2,000lmなどは価格がマイナスに出てしまう。この場合は、データ収集箇所を変えてみたり、近似曲線の直線ではなく他の関数を選んでみたり、比較するデータ自体を変えたり、別の要素を追加したり(=重回帰分析)など、まだまだ手は沢山あるので、今後少しづつ紹介していく。

まずは、手持ちのデータから何か語れ!予測しろ!と言われたときに行う、最も一般的な科学的手法を紹介した。是非色々使ってみてほしい。

まとめ

・二つのデータから関係性を求める最も一般的な手法が回帰分析である。

・データ⇒散布図作成⇒近似曲線(回帰直線)作成⇒数式表示 (⇒ 入出力フォーマット作成)

・やり方が正しいのであって、結果が正しいことを保証するものではない。

 式ができたらテスト、現実にそぐわない場合は、前提を見直そう。

Excelによるルンゲクッタ法の使い方

微分方程式をコンピュータで解く手法の一つにルンゲクッタ法というものがある。理工系学生は、C言語などのプログラミングの授業で習う。こう言うと敷居が高いように感じるかもしれないが、一般的な表計算ソフトのExcelでも簡単にできるんだ!ということを言いたくて、書くことにした。一度、Excelで手軽にルンゲクッタ法によって数式が解ける!ということがわければ、特に精度を求めない限り、自分で作った方程式を記述して、解くことができる。是非、自由に作って、どんどん色んな現象を予測してみてほしい!

そもそもルンゲクッタ法って何なの?何ができるの?

学者やエンジニアは、現象を解析し、予測するために、数式化を行う。この数式を、微分方程式という。微分方程式は、「時間tの変化に対する注目している量Xの変化量が、どういった要素に依存するか?」という視点で記述される。そして、解くというのは、「X=〇t・・・」や「X=近似値」で表すことをいう。後者を数値計算という。この数値計算の、精度がよく、一般的な手法が、ルンゲクッタ法である。アルゴリズムは下記である。

どうやって使うのか?

ルンゲクッタ法は、数式の近似解を求める手法である。関数式の近似というと、理系学生ならテーラー展開がピン!と来るであろう。それを利用した物である。詳細は、関係書籍やWikiなどを見て勉強してほしい。使い方は下記である。

まず、解析対象の現象を微分方程式の形で記述する。次に、一階方程式の形に変換する。微分方程式にはd^2X/dt^2 といった二階の形で記述される項が出てくることがある。このままだと計算できないので、それをdY/dtなどの形に変換しなおす。( 後に示す例題で理解を深めてください。)

ここまで来たら、初期値を設定します。開始時間、その時間の変数の値、時間刻みなどを決める。そして、ルンゲクッタ法をコンピュータに記述します。例えば、Excelに記載すると、下図のようになる。

最後に、上図の黒太線で囲った領域を一ブロックとしてコピーし、必要な精度が得られるまで、下のセルにコピーを繰り返す。

[参考書籍:林卓郎(2009), 振動系のダイナミクス, オーム社 ]

具体例

例えば、下記のような数式を上記の手法で解いてみる。

求めたいのは、ある時間でのXの値である。しかし、このままでは二階の微分方程式なので、一階化をする。

これで、一階の微分方程式になった。二階のものは、一階の項を別の変数でまとめ、その変数を使って二階を一階で示せばいいわけである。言葉で書くと混乱するが、上式を見てもらえれば容易に分かると思われる。

次に、初期値の設定をする。上式は高校や大学の物理でよく登場する振動系の式である。簡単のために、M=k=1, Xo=1, Yo=0, to=0, Δt=0.5 とする。

では、これをルンゲクッタ法でExcelに記述してみることにする。

※ 画像が小さい方は、画像上にマウスのカーソルをあわせ、右クリックし、「画像だけを表示」 をクリックすると大きく見られます。

分かりやすくするために、上図のように、公式を記述した。速度成分である、Y(=dX/dt)も横に書いてみた。更新項のkは、Xに対する物。同lは、Yに対する物である。 では、実際に公式の下に記述することにする。

上図の黒網部は、初期値である。わざと記入した数式を文字列で示している。数式に戻すと…

となる。ここで、先ほどの順序に従って、2~1をコピーして、下のセルに貼り付けていく。

ここで、i=1の奴のみ表示させてグラフ化すると、Xの時間変化を見ることができる。i=1のみ表示させる方法だが、上図のi~liの部分をドラックして、「並べ替えとフィルター」を押し、ジョウロのようなマークをクリックすれば、表上のチェックボックスを表示させられる。そこのiの部分をクリックし、1を選択してみると、1のみの値だけに絞った表ができあがる。

項目をドラッグする。

赤丸箇所をクリック。

フィルターを押す。

グラフ上にチェックボックス( 小さな▼付きの吹き出し )ができる。

上図 i の部分をクリックし、1 だけにチェックを入れる。

試しに、0≦t≦5までのXをグラフ化してみる。

このように、ルンゲクッタ法により解くことができた。振動している様子がよくわかる。非線形方程式も基本的に同じやり方でやることができる。数式をセルに記述するのは面倒だが、是非、試してみてほしい。

(参考) Excel計算フォーマットを作る際の注意

(参考)連立微分方程式をRK法でExcelで解く方法