前回記事で、WebさえあればPython3でグラフ描ける環境ができた。
Shellのコンソールだけだとグラフ描けなくて困ってたけど、これなら色々と試せる。
以前からいじりたかったコレ。
さっそく試してみる。
P87の散布図。
「アンスコムの4つ組」(Anscombe's quartet)というデータがあるらしい。
「平均」「分散」「相関関係」が同じなんだと。ほぅ。
分散の求め方はこないだやった。
グラフは scatterメソッドで描けるみたい。
x = [1, 2, 3, 4]
y = [2, 4, 6, 8]
import matplotlib.pyplot as plt
plt.scatter(x, y)
scatterって何だろう。あとで調べる。
「アンスコムの4つ組」(Anscombe's quartet)を試す。
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)
グラフにすると直感的になって面白い。
X1のデータをこないだのスクリプト (分散を求める)に食わせてみる。
平均が9、標準偏差が3.32になっていれば正解らしい。
$ ./my_statistics_bunsan.sh 10 8 13 9 11 14 6 4 12 7 5
あれ。標準偏差が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)
X1と比べる。
だいぶ違うくて面白い。同じ分散なのに。
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)
X4はまた違う。
よし。これでデータさえあれば好きにグラフを描ける環境はできた。
国の統計データとか取ってきて色々調べることにする。