min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

jupyter notebook(Python3)で アンスコムの4つ組(Anscombe's quartet)を試す

前回記事で、WebさえあればPython3でグラフ描ける環境ができた。

min117.hatenablog.com

Shellのコンソールだけだとグラフ描けなくて困ってたけど、これなら色々と試せる。

 

以前からいじりたかったコレ。

f:id:min117:20201025064910j:plain

さっそく試してみる。

 

P87の散布図。

f:id:min117:20201025064900j:plain

アンスコムの4つ組」(Anscombe's quartet)というデータがあるらしい。

 

「平均」「分散」「相関関係」が同じなんだと。ほぅ。

f:id:min117:20201025064905j:plain

分散の求め方はこないだやった。

min117.hatenablog.com

 

グラフは scatterメソッドで描けるみたい。

x = [1, 2, 3, 4]
y = [2, 4, 6, 8]
import matplotlib.pyplot as plt
plt.scatter(x, y)

f:id:min117:20201025065702p:plain

scatterって何だろう。あとで調べる。

 

アンスコムの4つ組」(Anscombe's quartet)を試す。

f:id:min117:20201025065935p:plain

 

x1 = [10.0, 8.0, 13.0, 9.0, 11.0, 14.0, 6.0, 4.0, 12.0, 7.0, 5.0]
y1 = [8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68]
plt.scatter(x1, y1)

f:id:min117:20201025065832p:plain

グラフにすると直感的になって面白い。

 

X1のデータをこないだのスクリプト (分散を求める)に食わせてみる。

f:id:min117:20201025070532p:plain

 

平均が9、標準偏差が3.32になっていれば正解らしい。

f:id:min117:20201025070751p:plain

 

$ ./my_statistics_bunsan.sh 10 8 13 9 11 14 6 4 12 7 5

f:id:min117:20201025070623p:plain

あれ。標準偏差が3.16になってしもた。スクリプト がおかしい?今度見直す。

 

同じ分散・標準偏差になる別のデータの組み(X2)もグラフにしてみる。

x2 = [10.0, 8.0, 13.0, 9.0, 11.0, 14.0, 6.0, 4.0, 12.0, 7.0, 5.0]
y2 = [9.14, 8.14, 8.74, 8.77, 9.26, 8.10, 6.13, 3.10, 9.13, 7.26, 4.74]
import matplotlib.pyplot as plt
plt.scatter(x2, y2)

f:id:min117:20201025071802p:plain


X1と比べる。

f:id:min117:20201025071847p:plain

だいぶ違うくて面白い。同じ分散なのに。

 

X3だとこう。

x3 = [10.0, 8.0, 13.0, 9.0, 11.0, 14.0, 6.0, 4.0, 12.0, 7.0, 5.0]
y3 = [7.46, 6.77, 12.74, 7.11, 7.81, 8.84, 6.08, 5.39, 8.15, 6.42, 5.73]
plt.scatter(x3, y3)

f:id:min117:20201025072439p:plain

 

X4はまた違う。

f:id:min117:20201025072716p:plain

よし。これでデータさえあれば好きにグラフを描ける環境はできた。

 

国の統計データとか取ってきて色々調べることにする。

www.e-stat.go.jp

www.stat.go.jp

f:id:min117:20201025072854p:plain