度数分布表からの平均の求め方
成績データを確認
seiseki [1] 50 82 70 54 75 72 70 33 80 52 98 73 62 73 43 86 93 85 61 [20] 89 98 28 87 100 50 87 66 82 85 70 75
グラフは描かずに度数分布表だけを作る
x<-hist(seiseki,plot=F)
xに入った度数分布データを確認
x $breaks [1] 20 30 40 50 60 70 80 90 100 $counts [1] 1 1 3 2 6 6 8 4 $intensities [1] 0.003225806 0.003225806 0.009677419 0.006451613 0.019354839 0.019354839 [7] 0.025806452 0.012903226 $density [1] 0.003225806 0.003225806 0.009677419 0.006451613 0.019354839 0.019354839 [7] 0.025806452 0.012903226 $mids [1] 25 35 45 55 65 75 85 95 $xname [1] "seiseki" $equidist [1] TRUE attr(,"class") [1] "histogram"
##$midsに入っている各階層の中央値
seiseki_mids<-x$mids
##$countsに入っている各階層の度数
seiseki_counts<-x$counts
##各階層の中央値と度数をかけて合計(内積で代用)
seiseki_mids%*%seiseki_counts [,1] [1,] 2205
##1/nをかける(データ数で割る)
2205/length(seiseki) [1] 71.12903
mean(seiseki)##本当の平均
[1] 71.90323
度数分布表からの分散の求め方
z<-(seiseki_mids-mean(seiseki))##(階層値-平均) z [1] -46.903226 -36.903226 -26.903226 -16.903226 -6.903226 3.096774 13.096774 [8] 23.096774
z<-z^2##(階層値-平均)の2乗 z [1] 2199.91259 1361.84807 723.78356 285.71904 47.65453 9.59001 171.52549 [8] 533.46098
seiseki_counts%*%z ##度数×(階層値-平均)の2乗の和 [,1] [1,] 10154.06
10154.06/length(seiseki) ##1/nをかける(データ数で割る) [1] 327.5503
sampleVar(seiseki) ##本当の分散 [1] 335.2487