回帰分析(2)〜重回帰分析
今回は回帰分析の続き.重回帰分析についてです.
回帰分析の前にグラフを描く重要性
Anscombe(1973)の数値例から,回帰分析を始める前にグラフでデータの分布を見ることの重要性を見ることにする.
データは配布資料内に.Anscombe(1973)の数値例の多くのテキストで引用されているので,そちらを見て下さい.Anscombe(1973)の数値例では,ほぼ同じ回帰式,決定係数が得られる.t値やF値による検定結果もほぼ同じ.同じ回帰式が得られたものの,散布図からも分かるように,得られた回帰式がデータを説明するには不適切であるケースがある.
この例では,得られた回帰式が妥当性を持つケース,直線を当てはめることが不適切なケース,特異な値がデータ中にあるために,異なった直線が当てはめられたケースを確認することができる.
重回帰分析
重回帰分析は複数の説明変数からなる回帰モデルである.通常,ある事象(y)がただ1つの要因(x)のみで説明されるというのは,まれであろう.普通はいくつかの要因が合わさっている,と考えるはず.重回帰分析はそのような考えでできている.例えば,3変数による重回帰式を示せば,
y=a+b1x1+b2x2+b3x3
となる.
Excelによる重回帰分析の実行
例えば,このようなデータを分析してみましょう.これは男女100人の身長,体重のデータ(仮想)です.以下の様にExcelの表の上にデータが並んでいたとします.C列が身長,D列が体重,E列が父親の身長とします.
※データはこの後にもならんでいます.
ここでは,女性の身長が,自身の体重と父親の身長とどのような関係にあるかを重回帰分析してみます.
■手順
- 「データ」タブの「データ分析」
- 「回帰分析」
すると,次のダイアログが現れます.データ範囲,出力範囲を設定し,「OK」ボタンをクリックします.
- 図中の「入力Y範囲」には,従属変数(被説明変数),「入力X範囲」には独立変数(説明変数)を示す範囲を入力します.
ここで,ポイントは,複数の説明変数Xは隣り合うように並んで配置されている必要がある,ということです.説明変数Xが別々の処に置いてあり,それを指定することはできません.- 残差や正規確率などのオプションを選択し,出力先を指定したら,「OK」ボタンをクリックして,分析を行ないます.
Excelによる回帰分析(分析結果)
実行すると,Excelは以下の分析結果を出力します.分析結果の見方はおおむね単回帰と同じですが,2点異なる点があります.
です.
- 各説明変数間の比較をする場合は,標準偏回帰係数を用いる(Excelでは計算で求める必要あり)
- 決定係数ではなく,自由度調整済み決定係数で当てはまりを見る
■係数
単回帰と同じく,まず係数の部分から,(1)回帰式がどのように書けるのか,(2)各説明変数の係数の符号が事前の予想と同じ傾向にあるかを確認しましょう.重回帰では次の事も考えて見ましょう.
「係数」はそれぞれの変数が1単位増加した時の身長の増加分を表しています.ここでは,女性の身長は父親の身長(X値2)よりも体重(X値1)に強く関係していることが分かります.>しかし,2つの変数の単位はKgとcmで異なります.このまま比べるのはちょっと…
そこで,単位の影響を取り除くため,標準偏回帰係数を考えます.これは以下の計算で求めらます.b'=b*(Sx/Sy)
ここで,b,Sxは説明変数Xの偏回帰係数(Excelが出力した傾きです)と説明変数Xの標準偏差,Syは被説明変数Yの標準偏差です.標準偏差はSTDEV関数で求めることにしましょう.
また,標準偏回帰係数で回帰式を表した場合,切片はゼロになる,という特徴があります.■係数の検定
単回帰の場合と同じく,係数の欄のt値,p値は推定された(3)係数が0であるという帰無仮説を検定したものです.検定結果から帰無仮説が棄却できない,すなわち統計的に0でないとはいえない(0かもしれない)となると,この回帰分析に意味がなくなるので,こうしたチェックが必要になります.逆に,棄却できる場合,説明変数は被説明変数の要因として認められる,という判断を下すことができます.
判断の仕方については単回帰のページを見て下さい.■当てはまり
説明変数の係数が有意にゼロと異なる,という結果から,説明変数は被説明変数の要因として認められることになるのですが,どれくらい説明できたか,を見る目安が決定係数でした.
単回帰では「重決定R2」,すなわち決定係数をチェックしましたが,重回帰分析では,決定係数ではなく,(4)「自由度調整済み決定係数」で当てはまりを確認します.「自由度調整済み決定係数」はExcelの出力では「補正R2」となります.MSはいい加減ですね.
回帰分析では説明変数を増加すると,決定係数も増加するという特徴があります.つまり,決定係数が上がった→当てはまりが良くなった,のが,変数の影響なのか,単に数が増えたためか分からなくなります.それを調整したのが「自由度調整済み〜」という訳.乱数を発生させて,重回帰に加えてみれば,このことが良く分かります.
Excelの関数で算出する回帰分析
LINESTという関数を用いることで重回帰を実行することができます.この関数の書式は,
=LINEST(Y範囲,X範囲,定数オプション,補正オプション)
となります.ちょっと操作が普通の関数と異なるので注意.以下の手順を読んで下さい.■手順
- 出力範囲をドラッグする.重回帰の場合,上記の例のように説明変数が2つの場合,切片を入れて3つの係数が計算されるので,3列分範囲を選択します.行は1〜5行選択します.
- 範囲は選択したまま,関数を入力する.以下の図のようになっているはずです.
- 定数オプション,補正オプションにはそれぞれ true,falseのいずれかを入力します.
- 定数オプション「true」→切片を算出
定数オプション「false」→切片を0として計算- 補正オプション「true」→係数の標準誤差を算出
補正オプション「false」→算出しない
普通,切片は求めますし,傾きの有意性検定もしておきたいので,係数の標準誤差も必要になります.したがって,大抵の場合,オプションは,
「true,true」としておきます.- 「Ctrl」キー「Shift」キーを押しながら「Enter」キーを押す.普通は「Enter」キーだけですが,この関数では3つのキーを同時に押します.
- 出力結果は以下の図のようになります.
日本語による説明は阿部がつけたものです.分析ツールによる結果と見比べてください.通常の感覚では左から,切片,X値1,X値2となるでしょうが,linest関数はそれらとは逆になることに注意してください.また,出力範囲選択のところで,行数を4以下にすると,その分だけ(例えば上から4行分だけ)が表示されます.
- 係数の検定のためのt値を得たい場合,定義から,係数÷標準誤差の計算で得ることができます.上の例で変数「X値2」のt値は,おおよそ0.332÷0.079=4.203となります.
※連続処理などで出力の一部のセルのみを出力したい(例えば,各係数の標準誤差だけを出したい)という場合は,linest関数をindex関数で囲って用います.
例 index(linest(YYY,XXX,true,true),行番号,列番号)
行,列番号の定義はlinest関数の出力範囲の左上が1行1列目になります.
Copyright(C) 1997-2014 by ABE Keiji
All rights reserved.