Excelで重回帰分析(2)

※コラム「統計備忘録」の記事一覧はこちら


今回はLINEST関数の使い方について説明します。Microsoft(R) Excelには統計計算の関数が幾つか用意されていて、LINEST関数もその1つです。Excel分析ツールの回帰分析も、この関数を使って計算しています。前回、欠損を含むデータを分析しようとしたとき、エラーメッセージに「LINEST関数エラー」と表示されていたことからも分かります。

LINEST関数は使い勝手の悪い関数です。理由の1つはLINEST関数の結果が配列で返されることにあります。関数の結果が配列になることをExcelでは配列数式と呼びますが、行列の積を求めるMMULTや、逆行列を求めるMINVERSEも配列数式に含まれます。

配列数式を利用する場合には、まず、出力される配列の大きさを知らなければいけません。LINEST関数の場合、配列は縦が1行か5行、横は説明変数の列数に1を加えた数になります。縦横の大きさが分かったら、ワークシート上で同じ大きさの範囲を選択します。

続いて、LINEST関数を入力します(このとき間違ってもワークシートをクリックしてはいけません。それまでの操作が無駄になります)。LINEST関数の引数は次の通りです。

=LINEST(既知のy、既知のx、定数、補正)
 既知のy:目的変数のデータ範囲
 既知のx:説明変数のデータ範囲
 定数:重回帰式に定数項を含める場合は「TRUE」、含めない(定数項をゼロにする)場合は「FALSE」
 補正:標準誤差、決定係数などを求める場合は「TRUE」で出力は5行、求めない場合は「FALSE」で出力は1行

関数の入力が終わったら、[Ctrl]キーと[Shift]キーを押しながら[Enter]キーを叩きます。結果は次の通りです。「#N/A」は、もともと出力するものが無い箇所なので、見栄えは悪いですが無視しましょう。

LINEST関数が使い勝手の悪い2つ目の理由は、この出力の並びにあります。なんと、偏回帰係数の並びが、元の説明変数の並びと左右逆なのです。分析ツールの結果とも見比べてみてください

配列数式から結果を取り出す方法は他にもあります。INDEX関数を使う方法です。X1の偏回帰係数を知りたければ、
 =INDEX(LINEST(A2:A11,B2:D11,TRUE,TRUE),1,3)
重相関係数を求めたければ、
 =SQRT(INDEX(LINEST(A2:A11,B2:D11,TRUE,TRUE),3,1))
と入力します。

いずれにしても、LINEST関数を使うには忍耐が必要になります。

なお、LINEST関数にも、分析ツールにも、次の機能はありません。
・標準偏回帰係数の出力
・増加法、増減法などによる変数選択
標準偏回帰係数はExcelを駆使して計算することができますが、変数選択となると統計ソフトを利用するしかないでしょう。

Excelで重回帰分析(1)

※コラム「統計備忘録」の記事一覧はこちら


Microsoft(R) Excelがあれば統計ソフトを買わなくとも重回帰分析ができます。方法は2通りあって、1つはLINEST関数を使う方法、もう1つは分析ツールの回帰分析を使う方法です。後者の方が簡単なので、こちらから書きます。

分析ツールはExcel付属のアドイン・プログラムで、重回帰分析を行う前に、読み込んでおかなくてはいけません。読み込む方法についてはExcel 2003までと、Excel 2007以降で異なるため、Excelのヘルプより「分析ツール」を検索して調べてください。

それでは、次のデータを分析してみましょう。

分析ツールが読み込まれていれば、Excel 2003までなら[ツール]メニューから、Excel 2007では[データ]リボンから[分析ツール]を選択することができます。

リストから[回帰分析]を選んで[OK]ボタンをクリックすると、次のダイアログが表示されます。

[入力Y範囲]ボックスに目的変数のデータ範囲を、[入力X範囲]に説明変数のデータ範囲を入力します。データ範囲の先頭が変数ラベルなら、[ラベル]に必ずチェックを入れてください。

最後に[OK]ボタンをクリックすれば結果が出力されます。

分析ツールを使うときに気をつけなければいけないのは、「データに欠損があるケース」です。例えば次のようなケースです。

このケースで12行目までを入力範囲に設定して分析すると、次のメッセージが表示され結果は出力されません。

メッセージには「LINEST()関数エラー」とあります。次回は、このLINEST関数について使い方をみてみましょう。

川底がコンクリート

※コラム「統計備忘録」の記事一覧はこちら


数年前の12月のこと、

「数量化2類の結果がおかしい。どうしてこんな分析結果になったのか教えてほしい」

という問い合わせを受けた。問い合わせの主は、卒論の締め切り間近の学生さんで、メールにはデータと分析結果のファイルが付いていた。

ある水棲昆虫について「環境の違いが棲息の有無にどう影響しているのか」を調べたものだ。数量化2類の結果では「川底がコンクリート」が棲息の第一条件になっていた。

この昆虫は、幼虫時代、川底の石の裏や砂利の中で過ごすし、自然の豊かさの象徴ともなっている。
データを見ても、「川底が石や砂利」で「棲息している」が69ケース、「川底がコンクリート」で「棲息している」が9ケースと圧倒的に違いがある。
なのに、「川底がコンクリート」が第一条件なのは「おかしい」というのが学生さんの主張だ。

早速、送られてきたデータをクロス集計してみると次の通り。

川底の違いによる棲息の有無
棲息の有無川底が石や砂利川底が
コンクリート
棲息している 699
棲息していない 291

「棲息しているケース数」の違いしか見ていなくて、「棲息率」の違いを見ていないということが直ぐに分かった。このデータから判断するなら「川底がコンクリートの棲息率(90%)」が、「川底が石や砂利の棲息率(70%)」よりも高い。

また、川底の違いによる棲息率のギャップ(20%)は、川のにごり具合など他の8つの環境要因のどれよりも大きかった。数量化2類の計算が正しいことも確認した。

ユーザーサポートとしては、棲息率の違いを指摘し、数量化2類に間違いが無いことを伝えるだけで良かったのだが、ついつい余計なことまでメールに書いてしまった。

 「あなたは棲息地を中心にデータを集めていませんか?」

この後のメールのやり取りについて、ここには書かない。
これは特別な例と思うかもしれないが、毎年、同じような問い合わせが何件かある。

シンプソンのパラドックス―三次元のクロス集計

※コラム「統計備忘録」の記事一覧はこちら


「誕生日のパラドックス」、「モンティ・ホール問題」など、統計学や確率に関した幾つかのパラドックスがあります。今週は、その中でも、皆さんが直面する可能性の高い、「シンプソンのパラドックス」について書きます。

シンプソンのパラドックスは、E.H.シンプソン(1951)*によって指摘されたことから、この名がつけられています。

まず、次の集計表を見てください。

男女別3次元クロス

この集計表は、男女別に、ある治療処置の有無により、その後、何人が生存していて、何人が死亡したかをまとめたものです。全体で52人分のデータになります。

枠の中の上段の数は人数、下段の数は縦列の合計人数に対するパーセンテージです。男性で、処置を受けて、生存している人数は「8人」、生存率は「61.5%」ということを表しています。

この集計表からは、次の2つの傾向を読み取ることができます。
・男女いずれも、「処置あり」の方が、「処置なし」よりも生存率が高い
・男性は処置の有無に関わらず生存率の方が高く、女性は死亡率の方が高い

それでは、もう1つの集計表を見てください。

全体2次元クロス

これは、同じ52人のデータを集計したものですが、処置の有無に関わらず生存率は50%となり、処置の効果は消えてしまっています。

このように、母集団全体から得られた結論と、母集団を分割して得られた結論が異なることを、「シンプソンのパラドックス」といいます。


* Simpson, E. H., "The Interpretation of Interaction in Contingency Tables", Journal of the Royal Statistical Society, Series B(Methodological), 13, pp. 238-41.

確率変数とは

※コラム「統計備忘録」の記事一覧はこちら


先日、「確率変数とは」というお問い合わせをいただいたので、私なりに、答えを考えてみました。

統計学の入門書を開くと、確率変数(random variable)は第2章あたりに出てきます。大概は、この後に、確率分布(probability distribution)へと解説が続きます。確率変数の章がないなら、その本に出てくる数式は少ないと予想されます。

確率変数を説明するときは、話を分かりやすくしようとして、サイコロ振りか、コイン投げの例が多く使われます。私としてはコイン投げの方が、このあと、ベルヌーイ試行、二項分布と話が繋がりやすいのではと思っています。

本によって、確率変数は、「Xのように大文字で」、「大文字のYで」、「X,Y等の大文字で」記述されます。ここを読み飛ばすと、この後出てくる数式の意味が分からなくなるので、必ずチェックしましょう。

確率変数は必ず数量が対応付けられています。コインなら表が「1」、裏が「0」といった具合です。身長が確率変数なら、「163」や「175」という数になります。前者は「0.3」、「0.5」と間を刻んでいくことができない、とびとびの数になるということから離散型確率変数といいます。これに対し、後者は幾らでも細かく刻むことができるので連続型確率変数といいます。

確率変数と「ただの変数」の違いは、変数がある値になる確率が決まっているかいないかです。コイン投げで表になる確率は、

 Pr(X=1)=0.5

サイコロの目が6になる確率は、

Pr {X=6}=1/6 

163cmより大きくて175cm以下の人の確率は、

 Pr(163<Y≦175)=0.682

といったように書けます。なお、このPr(X)のことを確率関数といいます。

確率変数Xの値を横軸にして、Pr(X)の値を縦軸にすると確率分布のグラフになります。このグラフの形が釣鐘型になれば、確率変数Xは正規分布に従っていると言えます。

確率変数とは、推定や検定の対象そのものと考えてよいでしょう。

p値と有意水準

※コラム「統計備忘録」の記事一覧はこちら


検定を行うと「*(アスタリスク)」の有無だけをチェックして、p値を調べない人がいるようだ。

エクセル統計を含めて多くの統計ソフトでは、検定結果に、検定統計量のtやFなどの値と、統計量から導かれたp値を出力する。さらに、p値が0.05未満(p<0.05,5%未満)になるとアスタリスクを1つ出力する。0.01未満になれば2つ出力する。

p値は「帰無仮説が正しいという前提において、それ以上、偏った検定統計量が得られる確率」を示している。

帰無仮説が「母集団Aと母集団Bの平均は等しい」とすると、p値は「2つの母集団AとBから、サンプリング可能なすべての組み合わせの総数を1として、その中で、今回の平均値の差以上に、平均値の差が生じるサンプルの組み合わせが占める比率」ということになる。

帰無仮説が正しいのに棄却してしまう誤りを「第1種の過誤(Type I error)」と呼び、統計的検定を行うときには、前もって棄却するときの基準(有意水準)を決めておく。有意水準をp値が下回ったときに、はじめて「統計的有意差があった」と言うことができる。

データを集めてから有意水準を決めてしまうと、自分の都合の良いように水準を上げたり下げたりしてしまいかねないので、禁じ手とされている。

p<0.05は慣習的なものだ。p<0.05を有意水準とする数学的な根拠は無くて、p<0.1でもp<0.03でも構わないが、p<0.05以外を有意水準にするときは、根拠を問われることになる。

なお、論文に書くときは、P<0.05を使っていても、有意水準を幾つに設定したのかを記述しなければいけない。英語の論文に記述するときは、次のように書く。
A p value less than 0.05 was considered statistically significant.
(p値が0.05未満を統計的に有意とみなした)
「considered」と表現をするのが重要なポイントのようだ。

また、個々の検定結果については、単に有意であったか否かだけでなく、「p=0.013」というようにp値も記載する。p値が0.001未満のときは「p<0.001」と書いておくのがよい。

p値が0.05以上のとき(アスタリスクがないとき)は、帰無仮説が棄却されなかっただけで、帰無仮説が正しいということにはならない。「AとBは等しい」とは書かずに「AとBには有意差が認められなかった」というような表現を用いる。

期待している差があったのに、「p=0.056」のように僅かなところで有意にならなかったのは、サンプルサイズが小さくて検出力が弱かった、または、少数の特異なデータが発生してしまったという事もありうる。

前者なら観測数を増やして追試をする、先行研究の結果とあわせてメタ分析に掛けるという手段が考えられる。後者なら、特異値が発生した原因を検討してみる。発生が事故によるものであればデータを外すか採りなおす。通常起こりうる範囲内の値であれば、ノンパラメトリック検定をあてはめる、対数変換などにより正規分布に近似させてから検定することが考えられる。

アスタリスクが付いてないときこそ、p値は重要な情報となる。

誤差の問題―系統誤差、確率誤差

※コラム「統計備忘録」の記事一覧はこちら


高校では数学の中で統計学を教えているし、統計学を数学の1ジャンルと考えている人は多いと思う。確かに、統計学と数学は切っても切り離せない仲ではある。確率や線形代数等の理論なしには統計学は成り立たない。

ただし、一般的に私たちが数学に対して抱いているイメージと、統計学を隔てているものがある。それは、誤差の存在だ。

統計学では、ある対象を測定して得られた観測値(x)は真の値(θ)との差を誤差(error)という。ここでいう真の値とは平均値や出現確率など、その対象を含む母集団を代表する値で、期待値という言い方もする。観測値(x)は次のような式で表される。

 観測値(x)=真の値(θ)+誤差(e)

例えば、ある17歳の男性の身長(x)は、次のような式になる。

 身長(x)=17歳男性の平均身長(170.8cm)+誤差(e)

誤差の値は測定対象ごとに異なる。1つの値に定まることはないし、自分の好き勝手に値を変えることもできない。つまり、誤差は定数でも変数でもない。数学の授業で方程式を解くときにも誤差項なんて出てこなかったはずだ。

ところが統計学では誤差が最も重要になる。まず、誤差がないと統計手法を使うことができない(多くの統計手法は誤差を掛けたり割ったりしなければならない)。どの統計手法を使うかも誤差のばらつきかたで決まってしまう。

平均値が「真の値」と呼べるのも、誤差のばらつきが正規分布に従っているときだけだ。「平均年収」とか「平均貯蓄」など、ニュースで流れる平均値が本当らしく思えないのは、正規分布していないケースが多いからだ(こういった場合は、平均値よりも中央値が真の値である可能性が高い)。

統計学では誤差を「系統誤差(systematic error)」と「確率誤差(random error)」とに分けて考える。系統誤差とは、測定の仕方や測定対象の選び方から生じる誤差で、規則性がある。

血圧の測定で、自宅で測定したときよりも病院で測定したときに血圧が高くなる現象を、白衣の人を前にすると高血圧になるということから「白衣高血圧」と呼ぶが、これも、系統誤差の一種と見なせる(病院のほうが落ち着いて逆に血圧が下がる人もいる)。

系統誤差は式に組み込む事が可能だ。さきほどの身長について、母集団を17歳男性から17歳全員に拡げてみた場合、性別の差(12.8cm)が系統誤差になり、次のようになる。

 身長(x)=170.8 − 12.8 × 性別(男性:0/女性:1)+ 誤差(e)

系統誤差を除いたあとに残っている誤差が「確率誤差」である。偶発的に生じる誤差なので「偶然誤差」とも言う。分散分析表に出てくる「誤差」は、この確率誤差を指している。分散分析では、系統誤差(の分散)と確率誤差(の分散)を比べて、系統誤差が確率誤差よりも有意に大きいかどうかを検定している。まさしく、誤差の問題と言える。

重回帰分析ができない

※コラム「統計備忘録」の記事一覧はこちら


エクセル統計のサポートをしていると、たまに次のような問い合わせを受けることがあります。

「重回帰分析ができないのはどうして?」

ほとんどのケースは変数間の「線形結合(linear combination)」が原因です。よくあるのは、変数の中に合計点を入れてしまうケースです。

 国語、数学、英語、3科目の合計

線形結合は変数の和だけではなく、変数を定数倍したときにも生じます。

 秒速、分速(=60×秒速)

線形結合は、ある変数が別の変数から100%説明できてしまうことを意味します。線形結合は次のとおり一次式で関係を表現できるので「一次結合」ともいいます。

 (1)変数A = 1.5×変数B
 (2)変数C = 変数D +変数E + 変数F
 (3)変数G = 100 + 5×変数H + 3×変数J

重回帰分析を行うとき、最初に、すべての変数の相関係数を求めて相関行列を作成します。続いて、相関行列の逆行列を求める処理をします。線形結合があると逆行列が計算できなくなり分析を続けられません。

(1)のように、2変数間で線形結合を起こしている場合は、2変数間の相関係数が「1」か「−1」になるから簡単に見つけられます。どちらか一方の変数を外して分析を行ってください。

(2)(3)は、自分で関係式を組んでなければ見つけるのがやっかいです。関係式がわかっているなら、通常は、右辺か左辺、どちらの変数を外します。個々の変数の変動要因や、変動の幅、説明変数間の因果関係、目的変数への影響を吟味して外してください。

例えば、摂取カロリーが肥満に与える影響を分析するとして、朝昼晩、3食の摂取カロリーのデータがあったとします。この場合、朝昼晩の3食のカロリーと、3食合計のカロリーを同時に説明変数に用いることはできません。どの変数を残すかといえば、3食合計が妥当ではないでしょうか。理由は、朝昼晩の間で相関関係が想定でき(大食いの人は、どの食事も大食いになるのでは)、重回帰分析ができても多重共線性の心配をしなければなりません。

平均値の差の検定―t検定、分散分析、重回帰分析

※コラム「統計備忘録」の記事一覧はこちら


2群の平均値の差をt検定する手法は幾つかあります。エクセル統計のユーザーなら次の3つを覚えておいて損はありません。

  1. スチューデントのt検定
  2. 分散分析
  3. 回帰分析

手法選択のポイントは、Excel のワークーシートにどのようにデータを入力したかによります。

パターン(1)

このように群単位にデータを1列ずつにまとめたなら、エクセル統計のメニューから次の2つのどちらかを選択します。

  • [2標本の比較]−[母平均の差の検定(表形式)]
  • [分散分析・多重比較]−[一元配置分散分析]

前者ならスチューデントのt検定、

後者なら一元配置分散分析の結果が得られます。

統計のテキストには「3群以上の検定のときには分散分析を使う」と書いてあることが多いようですが、2群の場合でも分散分析を使うことに問題はありません。

t検定の両側p値と、分散分析表の因子Aのp値は、どちらも「0.0175」と同じ値になります。t値を知りたいのなら、Excel のSQRT関数でF値の二乗根を求めます。
 =SQRT(8.8947)

パターン(2)

このように「対照群」、「実験群」と群の区別を個々に記録したのなら、エクセル統計のメニューから、[2標本の比較]−[母平均の差の検定(データベース形式)]を選択します。

ダイアログ上の、検定を行う変数に「実験結果」を、標本を識別する変数に「群」を設定します。

パターン(3)

前のパターン(2)から、「対照群」を「0」に、「実験群」を「1」にと、群の区別を数値に置き換えることで回帰分析が使えます。回帰分析では群の区別が説明変数(独立変数)、実験結果が目的変数です。

分析を行うには、エクセル統計のメニューから、[多変量解析]−[重回帰分析]を選択します。結果は次の通りです。

重回帰式の出力の中で、群の偏回帰係数「2.6」は対照群と実験群の平均値の差になります。その右側の赤網掛けの箇所は、「偏回帰係数はゼロである」という仮説を検定した結果で、有意水準5%未満で仮説が棄却されたので、「偏回帰係数(=2群の平均値の差)はゼロではない」ということになり、p値は「0.0175」でスチューデントのt検定と全く同じ結論が導かれます。

右下の分散分析表は、回帰分析から得られた次の重回帰式により、実験結果のデータ変動を説明できているかどうか、検定した結果です。

 実験結果(y)=4.4+2.6×群(x)

内容は一元配置分散分析をしたときと全く同じです。要因の表記が「群」から「回帰変動」に変わっただけです。

この他に「無相関の検定」で代用することも可能です。どれを使っても同じ結論が得られることから、手法に合わせてデータを変形するよりも、Excel に入力済みのデータに合わせて、最も手間の少ない手法を選択すれば良いのです。

平均への回帰、相関係数―統計学史(2)

※コラム「統計備忘録」の記事一覧はこちら


19世紀はダーウィンの進化論とメンデルの遺伝の法則が立て続けに世に出た時代です。ダーウィンの従兄弟、ゴールトン(Francis Galton、1822-1911)は、「指紋」を使った鑑定法を考案したり、「優生学」という言葉をはじめて用いたりと何かと話題の豊富な人物ですが、統計学においても大きな功績を残しています。

ゴールトンは親から子を予測する方法を探すために、ロンドンに生物測定研究所を設立し、研究に協力してくれる家族を募って、身長や体重、骨格などを測定しました。そこで、長身の親から生まれた子供達の身長は、平均すると親たちよりも低くなる、背の低い親から生まれた子供達の身長は高くなる、全体の平均に近寄っていくという現象を発見します。ゴールトンはこの現象を「平均への回帰」と名づけました。

ところが、カプランの「確率の科学史」を読んでいたら、平均への回帰は生物測定研究所を設立するより前に、エンドウマメの実験で発見したと書いてありました。実験では490粒のエンドウマメ(スイートピー)を重さによって7つのグループに分け、7人の友人に送って育ててもらいます。友人から採れた豆を送り返してもらって重さを測定したところ、平均への回帰現象を見つけたとのことです。

今日でも、平均への回帰は、医療であったり、経済であったりと、様々な場面で使われています。この場合の平均への回帰は、1回目に極端に偏った値が観測されると、2回目には1回目より平均に近い値が観測されることが多いという意味です。例えば医療であれば、「異常な高血圧を示す患者さんに降圧剤を投与して血圧が下がったが、それは、薬の効果ではなく、平均への回帰によるものかもしれない」というように用います。

さて、話を戻しますが、ゴールトンは平均への回帰現象の数値化を試みています。その結果生まれたのが「相関係数」です。ゴールトンが相関(co-relation)という言葉をはじめて用い、相関係数を"r"で表しました。しかし、ゴールトンは数学が得意ではなかったので、相関係数を数式として完成させたのは、弟子のカール・ピアソン(Karl Pearson、1857-1936)です。現在では、特に理が無い限り、「相関係数」は「ピアソンの積率相関係数」を指します。

余談ですが、Microsoft Excel には相関係数を求める関数が2つあります。
 CORREL
 PEARSON
Excel のヘルプには、前者を「相関係数」、後者を「ピアソンの積率相関係数」と説明しており、異なる式(結果は同じ値になります)を掲げています。

Microsoft社のサポート技術情報のホームページを読むと、Excel 2003では2つの関数は同じ値になるが、それより前のバージョンではPEARSON関数を使うと丸め誤差の問題が発生するのでCORREL関数を使うようにと説明がありました。ということだそうです、皆さんご注意ください。