第146回: 「統計の実務」7 散布図行列
◀前の記事へ 次の記事へ▶
≡ はじめに
前回は、「正規分布かどうか感覚的にグラフで見ることができる」QQプロットの話をしました。
今回は「データ間の相関関係を感覚的に見ることができる」散布図行列について書きます。
相関関係があることがわかれば、変数間の関係式(モデル式と言います)を立てて見積や予測を立てることができます。
例えば、「レビュー時間とレビュー指摘件数の間に相関関係がある」ことが分かれば、どのくらいレビューに時間をかけたら良いかが求まります。
≡ フィッシャーのあやめ
「散布図行列」といえば、「フィッシャーのあやめ」ですし、「フィッシャーのあやめ」といえば、「散布図行列」です。
近頃は、「“フィッシャーのあやめ”といえば、“機械学習”」と答える人のほうが多いかもしれません。それほど有名で優秀なデータセットです。
(フィッシャーの3原則の人のデータだから当たり前と言えば当たり前です。それでも、統計解析をする以前の話として、データ取得の大切さを実感します。)
このnoteでも、適切なデータを使うことで、読者の理解の助けになるということはあるかもしれないと思っています。というわけで、今回は、“フィッシャーのあやめ”を使っていきます。
“フィッシャーのあやめ”の元データは「こちらの(2)」にあります。みなさんの手間を減らすためにCSVを置いておきます。
リンク先のエクセルデータと同じものです。
Rコマンダーはエクセルデータも直接読み込めます。……、確かに読み込めるのですが、厄介なバグに引っ掛かることがあるので、私はもっぱらCSVにしてから読み込んでいます。
“フィッシャーのあやめ”の元データには、いくつかのバージョンかあります。実際に、下のiris.csvとWikipediaに掲載の値とは微妙に違っています。
でも、散布図行列の説明にはどちらを使っても大差ありませんので、気にしないで話を進めます。
こちらのiris.csvをRコマンダーに読み込んで、Rコマンダーのメニューから
[グラフ]>[散布図行列]
を選択すると、以下のダイアログが現れます。全ての変数を選択して[OK]ボタンを押すと、散布図行列がRの方のウィンドウに現れます。

こんなグラフです。

上のグラフでも、十分に見やすいと思いますが、私は以下のオプションを付けるのが好きです。

「対角位置に」というのは、散布図行列の対角線に表示する「それぞれの変数の分布(=特徴)を表現するグラフの種類」を選択するものです。散布図に集中したいときには「無し(空白)」もおすすめです。(ヒストグラムにすると変数名が読み取りにくくなるので注意してください)
「他のオプション」で「最小2乗直線」を選択すると一次回帰式(y = ax + b)を引いてくれます。「花びらの数」と「花びらの幅」は相関が高そうだなあといったことが、一目で分かります。(ちなみに「花びらの数」と「花びらの幅」の相関係数は、0.9629もあります。相関係数は±1がMAXです。相関係数については後ほどもう少し詳しい話が出てきます。)
上記を設定して出力した散布図行列は以下の通りです。

散布図行列の見方ですが、対角線上に個々の変数の分布図があり、残りの右上と左下に「2つの変数間の散布図」が縦横軸を変えて描かれています。例えば右上隅は「がく片」(Y軸)と「花びら幅」(X軸)の散布図となっています。
このように散布図行列は、「多数の変数を測定したときに、変数間に相関があるかどうかを知る」ために大変便利なグラフです。
より詳細に見たい時には2つの変数だけの散布図を描きます。
ところで、散布図行列は、相関関係が分かるだけで、どちらが原因でどちらが結果かの因果関係は分かりません。
相関とは、一方が変化すれば他方も変化するように、相互に規則的に関係しあって変化することを言います。平たく言えば「関係している」ということです。
また、こちらのデータのように複数のグループ(あやめの品種)が混ざっているデータでは、層別したグラフを描くのもありです。
この例では、「がく片幅」と「花びら幅」のところを見てください。層別をしないと右肩下がりの最小2乗直線でしたが、品種別に見れば右肩上がりということがはっきりと読み取れます。
実際に、極端な外れ値がありますと、テストをすればするほどバグが見つからない右肩下がりの最小2乗直線になることだってあります。
『なんか変な線だな』と思ったら、「極端な外れ値が無いか」、「複数のグループのデータが混ざっていないか」を確認しましょう。前者の場合は外れ値を外して分析し直しますし、後者の場合は、グループで層別をしてから分析します。
「あやめ」の品種で層別したグラフはこちらです。“フィッシャーのあやめ”というデータのすごさと散布図行列との相性の良さを感じてもらえるかもしれません。

≡ 相関行列
散布図行列を見れば、相関関係の有無はだいたい読み取れます。でも、その次に「どのくらい相関があるのかを数値にしたくなる」と思います。
Rコマンダーにはその機能もあります。相関関係は、個別に計算することもできますが、これから紹介する、まとめて相関係数を出力する「相関行列」が便利です。
Rコマンダーのメニューから
[統計量]>[要約]>[相関行列]
を選択すると、次のダイアログが表示されます。

相関行列を求めたい変数を複数選択し、ついでに「ペアワイズのp値」にチェックを入れて[OK]ボタンを押します。すると以下のような出力が得られます。

1行目は、RコマンダーがRに渡したスクリプトなので無視して大丈夫です。
次に「Pearson correlations:」のまとまりがあります。こちらが「相関行列」です。正確には、「ピアソンの積率相関」の計算結果です。黄色くマーカーしたところを読み取れば、「“花びら”と“花びら幅”のピアソンの積率相関係数は、0.9629」ということが分かります。長いので、「“花びら”と“花びら幅”の相関係数は、0.9629」と言います。(相関係数のアルゴリズムを聞かれたら「ピアソンの積率相関」と答えればよいですし、何も書いていなければピアソンの積率相関を使用したと思われます)
その下に、「Pairwise two-sided p-values:」のまとまりがあります。こちらが「ペアワイズのp値」です。
黄色くマーカーした、「がく片」と「がく片幅」のp値は「0.1519」と「0.05」よりも大きいので「対応する相関係数の値(-0.1176)を信頼することはできない」という意味になります。ほかは、0.0001未満なので相関係数の値を信用しても大丈夫ということです。(層別した方の散布図行列をみてしまうと、品種ごとに分析したくなるかもしれません。そして、それは良いアイデアです。)
※ 「Pairwise two-sided p-values:」のまとまりの下に「Adjusted p-values (Holm's method)」も出ていますがホルム法で補正した値ということです。スルーして大丈夫です。
■ 相関係数と相関の強さ
こうして求めた相関係数ですが、その値によって変数間の相関の強さと傾向(正と負)がわかります。相関係数の意味の読み取りには、下表を使ってください。

正の相関とは、片方が大きくなれば、もう片方も大きくなる関係です。負の相関とは片方が大きくなるともう片方は小さくなる関係です。
よく、相関を比例(と反比例)の関係という人がいます。でも、厳密には違います。
比例では、片方がゼロのときに相手もゼロになりますが、正の相関では、ゼロになることは求められません。
y=ax (a ≠ 0)のときに、xとyは比例の関係です。y=ax+bは比例ではありませんが、正の相関があります。
ただし、誤用的俗用として負の相関のことを反比例ということがあります。辞書に(誤用だけれどと)載っているほどです。
数学的な厳密性を問われない場面では「言い間違いかな」と思って咎めずにスルーするのが良さそうです。
なお、散布図上の点の集まりが、直線に近い場合は「強い相関」、そうでない場合は「弱い相関」、バラバラなら「相関がない(= 無相関である)」と言います。
≡ 事例
ここで事例を紹介します。データは前回と同様のこちらです。
まずは、散布図行列です。

グラフを眺めた感じでは、最高血圧(収縮期血圧)と最低血圧(拡張期血圧)の関係は(直線的なので)強い相関がありそうに見えますが、脈拍と血圧の間は、もやっとしているので、どうかな?って感じだと思います。
相関行列の方は以下の通りです。

最高血圧(収縮期血圧)と最低血圧(拡張期血圧)の間には0.8519と強い正の相関(先の表から)があり、脈拍と血圧の間には-0.3760と弱い負の相関があることが分かりました。数値でも確認できるとホッとします。
前回、西堀先生の「風呂に入ると血圧が下がる話」を紹介しましたが、確かに脈拍数が上がると最高血圧の方は下がるのですね。
≡ おわりに
今回は、「散布図行列」と「相関」の話をしました。「相関」については、「回帰式」(今回出てきた最小2乗直線の傾きとy切片の求め方の回)の説明のときに再会できると思います。
「相関」の有無は仕事で使える場面が多いと思います。例えば、「レビュー結果とテスト結果の間に関係があるか?」とか、「テストをたくさん行うとバグは多く見つかるか?」とか。
そうそう、相関行列のダイアログで、相関のタイプに「偏相関」を選択すると、疑似相関を考慮して相関係数を出してくれます。

この説明をすると、みなさん「偏相関」を選びたくなるのですが、「変数の分布が一つでも正規分布でないとおかしな値になる」ので、通常はピアソンの積率相関を使用することを強くおすすめします。(ので本文には書きませんでした)
次回は、「折れ線グラフ」を取り上げます。折れ線グラフを描いたことがない人はいない(学校でも習いますし)と思うのですが、推測統計の肝だと思いますので、お付き合いください。
