carsデータの度数分布

Rに組み込まれているcarsデータの各変数の度数分布を見てみよう.

head(cars)
##   speed dist
## 1     4    2
## 2     4   10
## 3     7    4
## 4     7   22
## 5     8   16
## 6     9   10
## スピードの度数分布
table(cars$speed)
## 
##  4  7  8  9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 
##  2  2  1  1  3  2  4  4  4  3  2  3  4  3  5  1  1  4  1
## スピードの相対度数分布
table(cars$speed)/sum(table(cars$speed))
## 
##    4    7    8    9   10   11   12   13   14   15   16   17   18   19   20 
## 0.04 0.04 0.02 0.02 0.06 0.04 0.08 0.08 0.08 0.06 0.04 0.06 0.08 0.06 0.10 
##   22   23   24   25 
## 0.02 0.02 0.08 0.02
## スピードのヒストグラム
hist(cars$speed,col="skyblue")

## 停止距離の度数分布
table(cars$dist)
## 
##   2   4  10  14  16  17  18  20  22  24  26  28  32  34  36  40  42  46 
##   1   1   2   1   1   1   1   2   1   1   4   2   3   3   2   2   1   2 
##  48  50  52  54  56  60  64  66  68  70  76  80  84  85  92  93 120 
##   1   1   1   2   2   1   1   1   1   1   1   1   1   1   1   1   1
## 停止距離の相対度数分布
table(cars$dist)/sum(table(cars$dist))
## 
##    2    4   10   14   16   17   18   20   22   24   26   28   32   34   36 
## 0.02 0.02 0.04 0.02 0.02 0.02 0.02 0.04 0.02 0.02 0.08 0.04 0.06 0.06 0.04 
##   40   42   46   48   50   52   54   56   60   64   66   68   70   76   80 
## 0.04 0.02 0.04 0.02 0.02 0.02 0.04 0.04 0.02 0.02 0.02 0.02 0.02 0.02 0.02 
##   84   85   92   93  120 
## 0.02 0.02 0.02 0.02 0.02
## 停止距離のヒストグラム
hist(cars$dist,col="skyblue")

freq=FALSEと設定すると,グラフが度数表記ではなく,確率密度表記になる.

## 密度のヒストグラム
disthist<-hist(cars$dist,col="skyblue",freq=FALSE)

密度のヒストグラムは,それぞれのカテゴリのレンジと密度を掛け合わせたもの(つまり各棒の面積)が,そのカテゴリの出現割合で,それらを全部足すと1になる.

p<-rep(NA,length(disthist$density))
for (i in 1:length(disthist$density)) {
  p[i]<-(disthist$breaks[i+1]-disthist$breaks[i])*disthist$density[i]
}
p
## [1] 0.20 0.36 0.22 0.12 0.08 0.02
sum(p)
## [1] 1

レンジの設定をbreaksで変えてみる.

## 密度のヒストグラム2
disthist2<-hist(cars$dist,col="skyblue",freq=FALSE,breaks = c(0,20,40,60,80,120))

やはり面積を全部足すと1になる.

p2<-rep(NA,length(disthist2$density))
for (i in 1:length(disthist2$density)) {
  p2[i]<-(disthist2$breaks[i+1]-disthist2$breaks[i])*disthist2$density[i]
}
p2
## [1] 0.20 0.36 0.22 0.12 0.10
sum(p2)
## [1] 1