ここから先は、今までの総復習になります。
上記リンクのページを読んで、以下の用語の意味を理解してください。
上記リンクのページを読んで、以下の用語の意味を理解してください。
上記リンクのページを読んで、以下の用語の意味と統計処理の流れを理解してください。
__ランダムな数字__: 以下のコードを実行してください。
# 図やグラフを図示するためのライブラリをインポートする。
import matplotlib.pyplot as plt
%matplotlib inline
# 乱数を扱うためのライブラリをインポートする。
import random
import numpy as np
# 一様乱数を10個発生させて data というリストに格納する。
data = []
for n in range(10):
data.append(random.random())
# data の中身を確認する。
data
[0.6883771030302529, 0.1135319243359828, 0.7476411620572164, 0.1689763373266342, 0.05641014134913169, 0.6621040379081664, 0.960254021927889, 0.5935874814597817, 0.08967766002174016, 0.41134892395100797]
# ヒストグラムを描く。
plt.hist(data, bins=20)
plt.show()
__課題8.6__:以下の問いに答えてください。
data = []
for n in range(10):
data.append(random.random())
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(100):
data.append(random.random())
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(1000):
data.append(random.random())
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(10000):
data.append(random.random())
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(10):
data.append(random.normalvariate(0, 1))
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(100):
data.append(random.normalvariate(0, 1))
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(1000):
data.append(random.normalvariate(0, 1))
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(10000):
data.append(random.normalvariate(0, 1))
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(10):
data.append(random.expovariate(1))
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(100):
data.append(random.expovariate(1))
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(1000):
data.append(random.expovariate(1))
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(10000):
data.append(random.expovariate(1))
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(10):
data.append(np.random.binomial(n=10, p=0.5))
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(100):
data.append(np.random.binomial(n=10, p=0.5))
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(1000):
data.append(np.random.binomial(n=10, p=0.5))
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(10000):
data.append(np.random.binomial(n=10, p=0.5))
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(1000):
data.append(np.random.binomial(n=10, p=0.2))
plt.hist(data, bins=20)
plt.show()
data = []
for n in range(1000):
data.append(np.random.binomial(n=10, p=0.8))
plt.hist(data, bins=20)
plt.show()
下記は、t検定を行うPythonプログラムの例です。
import numpy as np
import scipy as sp
from scipy import stats
X = [68, 75, 80, 71, 73, 79, 69, 65]
Y = [86, 83, 76, 81, 75, 82, 87, 75]
print(X)
print(Y)
t, p = stats.ttest_rel(X, Y)
print( "t 値は %(t)s" %locals() )
print( "確率は %(p)s" %locals() )
if p < 0.05:
print("有意な差があります")
else:
print("有意な差がありません")
[68, 75, 80, 71, 73, 79, 69, 65] [86, 83, 76, 81, 75, 82, 87, 75] t 値は -2.99232037543 確率は 0.0201600161737 有意な差があります
カイ二乗検定は、観測データの分布が理論値の分布に従うかどうかを検定する手法である。例えば、サイコロを60回ふったとき、各目が出る回数は次のようになったとき、理論値の分布に従うかどうかを検定する。
from scipy import stats
o = [17, 10, 6, 7, 15, 5] # 実測値
e = [10, 10, 10, 10, 10, 10] # 理論値
chi2, p = stats.chisquare(o, f_exp = e)
print( "chi2 値は %(t)s" %locals() )
print( "確率は %(p)s" %locals() )
if p < 0.05:
print("有意な差があります")
else:
print("有意な差がありません")
chi2 値は 3.02600126762 確率は 0.0296994592035 有意な差があります
__今日の課題提出__:計算結果を.ipynb ファイル(または.jsonファイル)として保存し、指定したアドレスまでメールしてください。メールタイトルは「__ハンバーガー統計学8__」とし、メール本文に学籍番号と氏名を明記のこと。また、感想も書いてくれると喜びます。今後の講義の改善につながるかも知れません。
これで統計学の勉強は一通り終了です。忘れてしまっても、また必要になったときに思い出して復習してください。ここから先、統計についての理解を深めるには、言葉の定義や数式の意味をインターネット等を通じて調べてよく考えてみるのも良いですし、以下のような総説を読んでみるのも良いと思います。