Goodな生活

INTPの好奇心の受け皿

【R】記述統計量の算出[summary][describe][describeBy]

記述統計量(基本統計量)を算出する方法。最もオーソドックスなのはsummary関数。Rのデフォルトデータセットのirisを使う。連続値データは四分位点、カテゴリカルデータはサンプル数が表示される。

> data(iris)
> 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 

psychというパッケージのdescribe関数を使うと、平均や標準偏差を表示してくれる。

> describe(iris)
             vars   n mean   sd median trimmed  mad min max range  skew kurtosis   se
Sepal.Length    1 150 5.84 0.83   5.80    5.81 1.04 4.3 7.9   3.6  0.31    -0.61 0.07
Sepal.Width     2 150 3.06 0.44   3.00    3.04 0.44 2.0 4.4   2.4  0.31     0.14 0.04
Petal.Length    3 150 3.76 1.77   4.35    3.76 1.85 1.0 6.9   5.9 -0.27    -1.42 0.14
Petal.Width     4 150 1.20 0.76   1.30    1.18 1.04 0.1 2.5   2.4 -0.10    -1.36 0.06
Species*        5 150 2.00 0.82   2.00    2.00 1.48 1.0 3.0   2.0  0.00    -1.52 0.07

同じパッケージでdescribeByを使うと、例えばSpecies(品種)ごとのSepal.Length(がく片の長さ)の統計量を算出できる。

> describeBy(iris$Sepal.Length,iris$Species)

 Descriptive statistics by group 
group: setosa
   vars  n mean   sd median trimmed mad min max range skew kurtosis   se
X1    1 50 5.01 0.35      5       5 0.3 4.3 5.8   1.5 0.11    -0.45 0.05
----------------------------------------------------------------- 
group: versicolor
   vars  n mean   sd median trimmed  mad min max range skew kurtosis   se
X1    1 50 5.94 0.52    5.9    5.94 0.52 4.9   7   2.1  0.1    -0.69 0.07
----------------------------------------------------------------- 
group: virginica
   vars  n mean   sd median trimmed  mad min max range skew kurtosis   se
X1    1 50 6.59 0.64    6.5    6.57 0.59 4.9 7.9     3 0.11     -0.2 0.09

vars1がSepal.Lengthを指す。

describeByに1つの変数だけを入力した場合でも正しい結果が算出されるが、グループ(分類)変数が入力されていないため、「no grouping variable requested」と警告が出る。