「ハンバーガー統計学にようこそ!」をPythonでお勉強 2.2まで
こちらのサイトを利用してPython (Anaconda) でデータ解析の勉強をさせてもらおうと思います。
ハンバーガー統計学にようこそ!
2.1 平均的ポテトを推定する
データを持ってきます。
# 2.1
import pandas as pd
url = 'http://kogolab.chillout.jp/elearn/hamburger/chap2/sec1.html'
dframe_list = pd.io.html.read_html(url, encoding="sjis")
from pandas import DataFrame
grade_data = dframe_list[0]
grade_data
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
1 | 47 | 51 | 49 | 50 | 49 | 46 | 51 | 48 | 52 | 49 |
grade_data.drop([0])
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|---|
1 | 47 | 51 | 49 | 50 | 49 | 46 | 51 | 48 | 52 | 49 |
2.2 母集団の平均と分散を推定する
from scipy.stats import randint
import numpy as np
# ポテトの本数の分散や標準偏差
num_list = [ int(i) for i in grade_data.ix[1] ]
num_low = min(grade_data.loc[1])
num_high = max(grade_data.loc[1])
num_mean, num_var = randint.stats( num_low, num_high )
# 平均値はmean() statsではだめ?
num__mean = np.mean(num_list)
num_std = np.std(num_list)
num__var = np.var(num_list)
print('ポテト本数の解析結果')
print('平均= {} 分散={}'.format(num__mean, num_var))
print('標準偏差= {}'.format(num_std))
print('分散= {}'.format(num__var))
ポテト本数の解析結果
平均= 49.2 分散=2.9166666666666665
標準偏差= 1.7776388834631176
分散= 3.1599999999999997
# 2.2 母集団の平均と分散を推定する
X = [ (int(i)-49.2)**2 for i in grade_data.ix[1] ]
# 不偏分散=((データ-平均値)の二乗)の総和÷(個数-1)
fvar = np.sum(X) / (len(X)- 1)
print('不偏分散= {}'.format(fvar))
不偏分散= 3.511111111111111