4.13 平均

改めて平均を定義する.

Definition 4.1 (平均) 平均とは,観測されたデータ\(x_{1},\ldots,x_{n}\)に対して,

x = 1n _{i=1}^{n}

で計算される量である. また,観測データの行列\(X= (\boldsymbol x^{(1)}, \boldsymbol x^{(2)}, \ldots, \boldsymbol x^{(m)})^\top\)に対して,それぞれの列に対する平均を計算したベクトル

X = (x^{(1)}, x^{(2)}, , x{(m)})

を平均ベクトルという.

4.13.1 Rでの計算

Rではmeanという関数を利用することで平均を計算することができる.

mean(iris$Sepal.Length)
## [1] 5.843333

例えば,irisには4つの量的変数があり,それぞれの平均を計算したいなどという場合, 最も簡単な方法はsummary関数を利用することである.

summary(iris)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width          Species  
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100   setosa    :50  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300   versicolor:50  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300   virginica :50  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199                  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800                  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500

平均以外に多くの情報が得られるが,各列に対して平均をすぐに計算することができる.

4.13.2 グループ化された平均

次に,質的変数でグループ化した平均を計算する方法を紹介する. tidyverseを利用すると次のように実装できる.

iris %>% 
  as_tibble() %>% 
  group_by(Species) %>% 
  summarise(across(c(Sepal.Length, Sepal.Width), list(mean=mean)))
## # A tibble: 3 × 3
##   Species    Sepal.Length_mean Sepal.Width_mean
##   <fct>                  <dbl>            <dbl>
## 1 setosa                  5.01             3.43
## 2 versicolor              5.94             2.77
## 3 virginica               6.59             2.97

また,列を全て指定したい場合はacross(everythingu(),...)とするのが便利である.

iris %>% 
  as_tibble() %>% # tidyverseでより扱いやすい tibble という型に変換する
  group_by(Species) %>% 
  summarise(across(everything(), list(mean=mean)))
## # A tibble: 3 × 5
##   Species    Sepal.Length_mean Sepal.Width_mean Petal.Length_mean Petal.Width_mean
##   <fct>                  <dbl>            <dbl>             <dbl>            <dbl>
## 1 setosa                  5.01             3.43              1.46            0.246
## 2 versicolor              5.94             2.77              4.26            1.33 
## 3 virginica               6.59             2.97              5.55            2.03

tidyverseのライブラリ群の記法は,通常のRの記法とは異なるため,ややとっつきにくいが, 慣れると大変便利なので是非触れてみて欲しい.

Exercise 4.7 (平均の計算) 以下で利用するAirPassengers, airqualityはRのデフォルトで提供されているデータセットである.

  1. AirPassengersのデータセットについて各列に対する平均を計算せよ.
  2. airqualityのデータセットについてMonthごとにOzon, Solar.R, Wind, Tempの平均を計算せよ.