R言語を使いWeb教材「ハンバーガーショップで学ぶ楽しい統計学」1の「平均と分散」について進めていきます(第1回)。
「ワクワクバーガー」と「モグモグバーガー」のポテトの長さに関するデータを、あらかじめcsv形式のファイルで作成しておく。
今回は、データファイル名を Length_Potato.csv とし、 その中の数値データについては「ワクワクバーガー」のポテトの長さをW_length、「モグモグバーガー」のポテトの長さを W_length
とした。また数値はすべてcmである。
ポテトの長さの平均
作業前の処理とポテトの長さに関するデータファイルの入力・確認を行う。
> getwd() #作業ディレクトリーの確認
> list.files() #作業ディレクトリー内に入力ファイルがあることを確認
[1] "Length_Potato.csv"
> ポテトの長さ<-read.csv("Length_Potato.csv") #データファイルを読み込み、データを「ポテトの長さ」に収納
> ポテトの長さ #収納データの確認
No. W_length M_length
1 1 3.5 4.5
2 2 4.2 4.2
3 3 4.9 3.9
4 4 4.6 6.6
5 5 2.8 0.8
6 6 5.6 5.6
7 7 4.2 3.2
8 8 4.9 6.9
9 9 4.4 4.4
10 10 3.7 4.7
11 11 3.8 3.8
12 12 4.0 3.0
13 13 5.2 3.2
14 14 3.9 4.9
15 15 5.6 7.6
16 16 5.3 3.3
17 17 5.0 7.0
18 18 4.7 3.7
19 19 4.0 3.0
20 20 3.1 4.1
21 21 5.8 5.8
22 22 3.6 4.6
23 23 6.0 4.0
24 24 4.2 2.2
25 25 5.7 7.7
26 26 3.9 3.9
27 27 4.7 6.7
28 28 5.3 3.3
29 29 5.5 7.5
30 30 4.7 2.7
31 31 6.4 5.4
32 32 3.8 5.8
33 33 3.9 5.9
34 34 4.2 3.2
35 35 5.1 5.1
36 36 5.1 3.1
37 37 4.1 6.1
38 38 3.6 4.6
39 39 4.2 2.2
40 40 5.0 4.0
41 41 4.2 6.4
42 42 5.2 5.2
43 43 5.3 3.3
44 44 6.4 6.4
45 45 4.4 6.4
46 46 3.6 2.6
47 47 3.7 2.6
48 48 4.2 5.2
49 49 4.8 5.8
「ワクワクバーガー」の平均を求める
平均は「データの総和÷個数」なのでまず、ポテトの長さのの合計を求める。
> sum(ポテトの長さ$W_length)
[1] 224
先ほどの合計割る個(本)数を計算し「ワクワクバーガー」のポテトの長さの平均を求める。
> sum(ポテトの長さ$W_length)/length(ポテトの長さ$W_length)
[1] 4.571429
「モグモグバーガー」の平均を求める
先ほどの「ワクワクバーガー」と同様に「モグモグバーガー」についてもポテトの長さの平均を求める(ただし、今回は平均を求めるmean()という関数を使用)。
> mean(ポテトの長さ$M_length)
[1] 4.614286
「ワクワクバーガー」と「モグモグバーガー」のポテトの長さに関する平均の差
> mean(ポテトの長さ$M_length)-mean(ポテトの長さ$W_length)
[1] 0.04285714
度数分布(ヒストグラム)
「ワクワクバーガー」と「モグモグバーガー」のポテトの長さに関するヒストグラムの作成
> par(mfrow=c(1,2)) #1行2列で表示
> hist((ポテトの長さ$W_length),xlim=c(0,8),ylim=c(0,20),breaks=seq(0,8,1)) #X軸を0から8,Y軸を0から20,度数を0から8まで1刻みでワクワクのポテトの長さをヒストグラム表示
> hist((ポテトの長さ$M_length),xlim=c(0,8),ylim=c(0,20),breaks=seq(0,8,1)) #
X軸を0から8,Y軸を0から20,度数
0から8まで1刻みでモグモグのポテトの長さをヒストグラムで表示
>dev.off() #図の消去

ばらつきを数字にする
「ワクワクバーガー」の分散と標準偏差を求める
分散は「((データ-平均値)の二乗)の総和÷個数」なのでまず、ポテトの長さの平均を求め、「Wポテト長さ平均」に格納する。
> Wポテト長さ平均<-mean(ポテトの長さ$W_length) #ワクワクにおけるポテトの長さの平均
> Wポテト長さ平均
[1] 4.571429
W_lengthの各値から平均(「Wポテト長さ平均」)を引いて、「平均からの偏差」に格納する。
「平均からの偏差」を二乗して
「平均からの偏差の二乗」に格納する。
「平均からの偏差の二乗」を合計し
「平均からの偏差の二乗和」に格納する。
「平均からの偏差の二乗和」をデータ数で割って分散を求める。
> 平均からの偏差<-(ポテトの長さ$W_length)-Wポテト長さ平均
> 平均からの偏差の二乗<-平均からの偏差^2
> 平均からの偏差の二乗和<-sum(平均からの偏差の二乗)
> 平均からの偏差の二乗和
[1] 33.36
> 分散W<-平均からの偏差の二乗和/length(ポテトの長さ$W_length)
> 分散
W
[1] 0.6808163
標準偏差は「(分散)のルート」なので、分散の平方根をとり、標準偏差を求める。
> 標準偏差W<-sqrt(分散W)
> 標準偏差
W
[1] 0.8251159
「モグモグバーガー」の分散と標準偏差を求める
「モグモグバーガー」についてもポテトの長さの分散を求める(ただし、今回は不偏分散を求める関数var()を使用)。
> 分散M<-var(ポテトの長さ$M_length)*((length(ポテトの長さ$M_length)-1)/length(ポテトの長さ$M_length))
> 分散M
[1] 2.584898
同様に標準偏差を求める
(
ただし、今回は不偏分散から標準偏差を求める関数sd()を使用)
。
> 標準偏差M<-sd(ポテトの長さ$M_length)*((length(ポテトの長さ$M_length)-1)/length(ポテトの長さ$M_length))
> 標準偏差M
[1] 1.591271
- Web教材「ハンバーガーショップで学ぶ楽しい統計学」第1章 平均と分散 http://kogolab.chillout.jp/elearn/hamburger/chap1/sec0.html