データ分析で何がわかるのか
データ分析とは、集めた数を計算して、問いの答えを見つけることです。平均値や中央値のような簡単な計算でも、「雨の日は本当に少ないのか」に答えられます。
自転車のシェアサービスは、1年分の記録を持っています。1日ごとの貸し出し数と、その日の天気です。今日はこの表から答えを取り出します。
このレッスンのゴール
メモ
データセットから、平均値、中央値、グループごとの平均を求めて、問いに答えられる。
キーワード
| ことば | いみ | れい |
|---|---|---|
| 平均値 | 全部を足して、個数で割った値 | 10、20、30 の平均値は 20 |
| 中央値 | 小さい順に並べたとき、ちょうど真ん中にくる値 | |
| 範囲 | 最大値から最小値を引いた値 | |
| 外れ値 | 他の値とくらべて、とても大きいか小さい値 | |
| 欠損値 | 記録が抜けていて、空っぽになっている値 | |
| グループ分け | 天気ごとのように、行を仲間に分けて計算すること |
学生が入力するセルは、このプレビューでは空白です。
始める前に
メモ
上のバーの Start the lab を押してください。起動に1分ほどかかります。Run ボタンを押すと、そのコマンドがターミナルに入力されます。ラボのデータは、毎回同じ365日分です。
平均値と中央値はどう違うのか
平均値は、全部を足して個数で割ります。中央値は、小さい順に並べて真ん中を取ります。個数が偶数のときは、真ん中の2つの平均です。
ふつうは、2つはあまり変わりません。でも、ひとつだけ極端な値があると、平均値は大きく動き、中央値はほとんど動きません。
例: 5日分の貸し出し数
| 日 | 貸し出し数 | 小さい順 |
|---|---|---|
| 月 | 210 | 180 |
| 火 | 180 | 200 |
| 水 | 900 | 210(真ん中) |
| 木 | 200 | 220 |
| 金 | 220 | 900 |
| 平均値 | (210+180+900+200+220) ÷ 5 = 342 | |
| 中央値 | 210 |
学生が入力するセルは、このプレビューでは空白です。
1年分の貸し出し数をまとめる
docker exec jupyter python3 steps/summary.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
まとめの表の読み方
mean が平均値、50% が中央値、min と max が最小値と最大値です。count は行の数で、365日分あります。
平均値は 270.3、中央値は 273 で、近い値です。極端な日が少ないとわかります。std はばらつきの大きさです。
グループごとに平均を比べる
「雨の日は少ないのか」に答えるには、天気ごとに分けて平均を出します。行を仲間に分けて、仲間ごとに計算するのです。
下の Run で、晴れ、曇り、雨の貸し出し数の平均を見ます。そのあと、土日とそれ以外の平均値と中央値を並べます。
天気ごとの平均を出す
docker exec jupyter python3 steps/weather.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
土日とそれ以外を比べる
docker exec jupyter python3 steps/weekend.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
天気の答えを文にする
晴れの日は平均 312.2 回、雨の日は 227.6 回です。雨の日は、晴れの日より84回ほど少ないとわかります。
土日は平均 309.7 回で、平日の 254.6 回より多いです。答えは、数と比べる相手を並べて文にします。「多い」だけでは、何と比べたかが伝わりません。
よくある間違い
注意
平均値がいつも「ふつう」を表すと考える人がよくいます。900 のような外れ値が1つあると、平均値は 342 に跳ね上がり、どの日にも近くありません。外れ値があるときは、中央値も見ましょう。
よごれたデータはどう直すのか
本物のデータは、よごれています。同じ行が2回入っていたり、数が空だったり、「Sunny」と「sunny」が混ざっていたりします。
ラボには、わざとよごした messy.csv が作ってあります。まず、どこがよごれているかを調べます。
よごれたデータを調べる
docker exec jupyter python3 steps/messy.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
1つずつ手入れする
docker exec jupyter python3 steps/clean.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
手入れの手順と、その理由
重複した2行は消します。数でない貸し出し数は、取りのぞきます。天気の文字は、空白を消して小文字にそろえます。
99.9 度という気温は、ありえないので空にします。空の気温は、中央値で埋めます。変えたことは、すべて記録しておきます。
さらに挑戦: 1つの月だけ
月ごとに平均を出すと、夏は冬の2倍近く借りられているとわかります。steps/months.py を動かして、一番少ない月を探してみましょう。
そのあと、なぜその月が少ないのかを、気温と雨のデータから言葉で説明してみましょう。