こちらのサイトを利用してPython (Anaconda) でデータ解析の勉強をさせてもらおうと思います。
ハンバーガー統計学にようこそ!
import pandas as pd
url = 'http://kogolab.chillout.jp/elearn/hamburger/chap2/sec9.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 |
0 |
自由度 |
確率95% |
確率99% |
1 |
1 |
12.706 |
63.657 |
2 |
2 |
4.303 |
9.925 |
3 |
3 |
3.182 |
5.841 |
4 |
4 |
2.776 |
4.604 |
5 |
5 |
2.571 |
4.032 |
6 |
6 |
2.447 |
3.707 |
7 |
7 |
2.365 |
3.499 |
8 |
8 |
2.306 |
3.355 |
9 |
9 |
2.262 |
3.250 |
10 |
10 |
2.226 |
3.169 |
11 |
11 |
2.201 |
3.106 |
12 |
12 |
2.179 |
3.055 |
13 |
13 |
2.160 |
3.021 |
14 |
14 |
2.145 |
2.977 |
15 |
15 |
2.131 |
2.947 |
16 |
16 |
2.120 |
2.921 |
17 |
17 |
2.110 |
2.898 |
18 |
18 |
2.101 |
2.878 |
19 |
19 |
2.093 |
2.861 |
20 |
20 |
2.086 |
2.845 |
21 |
21 |
2.080 |
2.831 |
22 |
22 |
2.074 |
2.819 |
23 |
23 |
2.069 |
2.807 |
24 |
24 |
2.064 |
2.797 |
25 |
25 |
2.060 |
2.787 |
26 |
26 |
2.056 |
2.779 |
27 |
27 |
2.052 |
2.771 |
28 |
28 |
2.048 |
2.763 |
29 |
29 |
2.045 |
2.756 |
30 |
30 |
2.042 |
2.750 |
31 |
40 |
2.021 |
2.704 |
32 |
60 |
2.000 |
2.660 |
33 |
120 |
1.980 |
2.617 |
34 |
∞ |
1.960 |
2.576 |
grade_data.drop([0])
|
0 |
1 |
2 |
1 |
1 |
12.706 |
63.657 |
2 |
2 |
4.303 |
9.925 |
3 |
3 |
3.182 |
5.841 |
4 |
4 |
2.776 |
4.604 |
5 |
5 |
2.571 |
4.032 |
6 |
6 |
2.447 |
3.707 |
7 |
7 |
2.365 |
3.499 |
8 |
8 |
2.306 |
3.355 |
9 |
9 |
2.262 |
3.250 |
10 |
10 |
2.226 |
3.169 |
11 |
11 |
2.201 |
3.106 |
12 |
12 |
2.179 |
3.055 |
13 |
13 |
2.160 |
3.021 |
14 |
14 |
2.145 |
2.977 |
15 |
15 |
2.131 |
2.947 |
16 |
16 |
2.120 |
2.921 |
17 |
17 |
2.110 |
2.898 |
18 |
18 |
2.101 |
2.878 |
19 |
19 |
2.093 |
2.861 |
20 |
20 |
2.086 |
2.845 |
21 |
21 |
2.080 |
2.831 |
22 |
22 |
2.074 |
2.819 |
23 |
23 |
2.069 |
2.807 |
24 |
24 |
2.064 |
2.797 |
25 |
25 |
2.060 |
2.787 |
26 |
26 |
2.056 |
2.779 |
27 |
27 |
2.052 |
2.771 |
28 |
28 |
2.048 |
2.763 |
29 |
29 |
2.045 |
2.756 |
30 |
30 |
2.042 |
2.750 |
31 |
40 |
2.021 |
2.704 |
32 |
60 |
2.000 |
2.660 |
33 |
120 |
1.980 |
2.617 |
34 |
∞ |
1.960 |
2.576 |
# (2) 500人分のデータは、平均が65、不偏分散が60であった。95%信頼区間と99%信頼区間を求めなさい。
import numpy as np
mean_val = 65
fvar =60
flen = 500
t_95 = 1.960
ci_under = mean_val - ( t_95 * np.sqrt(fvar/flen) )
ci_upper = mean_val + ( t_95 * np.sqrt(fvar/flen) )
print('95%確率信頼区間= {} 〜 {}'.format(ci_under, ci_upper))
t_99 = 2.576
ci_under = mean_val - ( t_99 * np.sqrt(fvar/flen) )
ci_upper = mean_val + ( t_99 * np.sqrt(fvar/flen) )
print('99%確率信頼区間= {} 〜 {}'.format(ci_under, ci_upper))
# (3) この2つの信頼区間の値は、それぞれどのようなことを意味するかを普通のことばで説明しなさい。(未対応)
95%確率信頼区間= 64.321036083433 〜 65.678963916567
99%確率信頼区間= 64.10764742394052 〜 65.89235257605948