いぬいぬいぬい

逆から読んでみてください

データサイエンティスト育成講座(2)

前回の続きです。

今回は第3章「記述統計と単回帰分析」を読んで、以下を行いました。

 

まずは準備として分析するデータをダウンロードし、PandasのDataFrameで読み込んでおきます。

 

「記述統計」というのは、

集めたデータを整理して見やすくし、特徴をつかむ方法のことだそうです。

 

Pandasのdescribeメソッドを使うと、平均・中央値・分散などが一気に計算されて表になるのでとても便利です。

(要約統計量というらしい)

  age Medu Fedu traveltime studytime failures famrel freetime goout Dalc Walc health absences G1 G2 G3
count 395.000000 395.000000 395.000000 395.000000 395.000000 395.000000 395.000000 395.000000 395.000000 395.000000 395.000000 395.000000 395.000000 395.000000 395.000000 395.000000
mean 16.696203 2.749367 2.521519 1.448101 2.035443 0.334177 3.944304 3.235443 3.108861 1.481013 2.291139 3.554430 5.708861 10.908861 10.713924 10.415190
std 1.276043 1.094735 1.088201 0.697505 0.839240 0.743651 0.896659 0.998862 1.113278 0.890741 1.287897 1.390303 8.003096 3.319195 3.761505 4.581443
min 15.000000 0.000000 0.000000 1.000000 1.000000 0.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.000000 3.000000 0.000000 0.000000
25% 16.000000 2.000000 2.000000 1.000000 1.000000 0.000000 4.000000 3.000000 2.000000 1.000000 1.000000 3.000000 0.000000 8.000000 9.000000 8.000000
50% 17.000000 3.000000 2.000000 1.000000 2.000000 0.000000 4.000000 3.000000 3.000000 1.000000 2.000000 4.000000 4.000000 11.000000 11.000000 11.000000
75% 18.000000 4.000000 3.000000 2.000000 2.000000 0.000000 5.000000 4.000000 4.000000 2.000000 3.000000 5.000000 8.000000 13.000000 13.000000 14.000000
max 22.000000 4.000000 4.000000 4.000000 4.000000 3.000000 5.000000 5.000000 5.000000 5.000000 5.000000 5.000000 75.000000 19.000000 19.000000 20.000000

こんな感じで見れます。

ところで私は今、jupyterからはてブロにそのまま表をコピペしてきれいに表示されることにモーレツに感動しています。 

 

…あとは変動係数とか散布図・相関係数、単回帰分析などの計算の仕方。

このへんはモノ自体はよく知ってるので、コマンドが勝手に打てるようになるくらいまで練習したいですね。

箱ひげ図は初めて知りました。

勝手に異常値を識別してくれるんですね。(多分)

 

そのために後日章末の総合問題を繰り返し解いてみることにします。

(やったら追記で書きます)

 

では。

 

 5/9追記

総合問題やってみました。

3-1 統計の基礎と可視化

ワインの質を表すデータをダウンロードし、要約統計量と各データの相関を可視化する問題です。

pandas.read.csvで読み込み、describeメソッドで要約統計量を、searborn.pairplotで相関図を出力させます。

 

f:id:bocat32:20190509072223p:plain

ワインの質のデータの相関図

データの項目は上から(左から)順に

酒石酸濃度、酢酸濃度、クエン酸濃度、残留糖濃度、塩化物濃度、有利亜硫酸濃度、亜硫酸濃度、密度、pH、硫酸塩濃度、アルコール度数、quality(総合的な品質)

 

…度数とquality以外はそのデータの持つ意味がわからん

酸たちの濃度は酸っぱさ・苦さ・渋さとかに関わって残留糖濃度は甘さに関わるのかな?

 

グラフからは、例えば

・酒石酸濃度と密度が正の相関にあること(なぜか?)

・酒石酸濃度とpHが負の相関にあること(酸性が強くなるほどpHは0に近づく)

が読み取れます。

酢酸はどうしてpHとの相関が見えないのかしら。

あと、一番重要なqualityと相関を持ってそうな因子があまりはっきりとは出てきません。

scipy.stats.pearsonrで一つずつ調べたところ(一気にできるのかな)一番相関が強いのは、

アルコール度数 (相関係数: 0.476、p値: 2.83e-91)

一番負に強いのが、

酢酸係数 (相関係数: -0.391、p値: 2.05e-59)

となりました。

http://advanced-brewing.com/U-ken/memo_01_acid_fruit.html

によると、酢酸は発酵中に酵母が作ったり、酢酸菌がアルコールを酢酸に変化させたりしてできるらしい。

あの酸っぱい味や香りも強くなってしまうからqualityが下がるのでしょう。

 

3-2 ローレンツ曲線とジニ係数

本文中で用いていた数学の成績データを用いて、不平等さを測るジニ係数を男女それぞれで計算する問題。

(東大の入学式の上野千鶴子さんの式辞で話題になった問題を想起させますが)

ローレンツ曲線がこんな感じ。 

f:id:bocat32:20190509075524p:plain

G1期の数学の成績のローレンツ曲線(男:M,女:F)と45度線(E)

ほとんど重なってて男女の差は見えないですが。

45度線(E)とローレンツ曲線に囲まれる部分の面積の2倍がジニ係数です。

面積といっても、計算は与えられたデータから簡単にできます。

(解答例のコードを見ると和を取った後2倍していて、一見計算式とズレているように見えますが、これはforでiとjが動く範囲が計算式のそれのちょうど半分になっているからです)

それで求めたジニ係数がこちら。

男性のジニ係数: 0.1719735
女性のジニ係数: 0.1723783

 

というわけで、演習問題でした~