Pythonの使用法:ヒストグラムと散布図と回帰直線と相関係数 seaborn, scpy.stats ver. 2

seabornを使うと簡単にわかりやすく美しいグラフを作成できます。下の文書を参考にしました。

 

Data Visualisation Using Seaborn

 

Python Seaborn jointplot does not show the correlation coefficient and p-value on the chart

 

I.データの読み込み

 

ライブラリとseabornのサンプルデータを読み込みます。

 

II.ヒストグラムの作成

 

 

 

III.ヒストグラム+散布図

 

ヒストグラムの形がわかると、x軸、y軸それぞれの分布の様子をはっきりと理解できます。

 

 

IV.回帰直線の追加

 

散布図を見れば、点の配置が全体として右上に上がっているのがわかります。

つまり、支払い合計が多い方がチップが多いということがわかります。予想できたことといえばそのとおりですが、単に「右上がり」というだけでは、他のデータと比較するのに不便です。

例えば、ランチのチップの場合とディナーの場合では違うかもしれません。昼の場合は支払い額が多くても、ディナーの時ほどはチップが増えないかもしれません。

散布図だけではこのような比較は難しいです。

そこで、この関係を一定の規則に従って直線で表すと直線を比較するだけでよいので便利です。この直線が回帰直線(linear regression)です。

sebornなら、kind=”reg”を加えるだけで回帰直線を引くことができます。

 

 

V.昼のチップと夜のチップの傾向を比較

 

1.データを昼と夜で分ける

 

groupbyで簡単に分けることができます。分けられたデータを取得するのは.get_gropupです。

 

 

2.相関係数入りのグラフを作成

 

下に作成した昼の場合と夜の場合の回帰直線を見ただけでも一応わかりますが、その直線の傾きを数字にすればもっと比べやすくなります。この数字が相関係数です。

計算方法が複数ありますが、ライブラリscipy.statsをインポートして、ピアソンの相関係数を計算しグラフに書き込みました。

相関係数は、図の直線の角度に比例していて、大きいほど角度が大きい、つまり相関関係が強くなります。

このデータからは、昼の方が夜より、チップと支払い額との相関が強いという結果になりました。

 

 

 

VI.回帰直線を重ねる

 

グラフを並べて見るだけでは、回帰直線の微妙な傾きの違いはわかりませんが、重ねると違いがよくわかります。

1行のスクリプトで、曜日別のチップと支払額の回帰直線を重ねられます。グラフから木曜日がもっとも回帰直線の傾きが急です。

大変わかりやすく面白いグラフです。でも、どうして木曜なの?と思いますよね。そう思ったら、それぞれの回帰曲線がどれほど信用できるか、サンプル数は十分か、何かの事情のために偏った調査になっていないかなど確認する必要があります。

グラフや数字にすると、それだけで客観的だと思ってしまいがちですので、直感を信じることも大切だと思います。

 

 

VII.ペア・プロット

 

Variables相互の関係を視覚化します。これで、だいたいの関係をつかむことができます。

 

 

難しそうにおもわれるかもしれませんが、一度式を書くと再利用できるので、同様の計算とグラフ作成は簡単です。

それにしても、seabornは簡単な式で美しくわかりやすく描けるのには驚きです。

Please follow and like us:

About shibatau

I was born and grown up in Kyoto. I studied western philosophy at the University and specialized in analytic philosophy, especially Ludwig Wittgenstein at the postgraduate school. I'm interested in new technology, especially machine learning and have been learning R language for two years and began to learn Python last summer. Listening toParamore, Sia, Amazarashi and MIyuki Nakajima. Favorite movies I've recently seen: "FREEHELD". Favorite actors and actresses: Anthony Hopkins, Denzel Washington, Ellen Page, Meryl Streep, Mia Wasikowska and Robert DeNiro. Favorite books: Fyodor Mikhailovich Dostoyevsky, "The Karamazov Brothers", Shinran, "Lamentations of Divergences". Favorite phrase: Salvation by Faith. Twitter: @shibatau

Leave a Reply

Your email address will not be published. Required fields are marked *