R言語プログラミング: 基本統計量の算出

統計解析・データマイニング言語である R言語の 基本統計量の算出関数について、ソースコードを用い紹介する。記載しているソースは、R Console上や EclipseでR-Scriptとして、そのまま実行可能である。

R Consoleでの実行例  (Rのインストール・環境設定はこちら)

EclipseでのR-Scriptとしての実行例  (RをEclipseで実行するための方法はこちら)

基本統計量 算出関数

統計量(Statistics)とは、統計的な性質を要約した数量。基本統計量とは通常よく使用される統計量で、合計、平均、中央地、分散、四分位数などを示す。

基本統計量 関数
合計 sum
算術平均 mean
最大値 max
最小値 min
範囲(最大値-最小値) range
中央値 median
分散 var
標準偏差 sd
分位数 quantile
統計要約 summary
data <-c(1:10) # 1-10の数値Vectorを作成
data # dataを表示

sum(data) #合計
mean(data) #算術平均
max(data) #最大値
min(data) #最小値
range(data) #範囲(最大値-最小値)
median(data) #中央値
var(data) #分散
sd(data) #標準偏差
quantile(data) #分位数
summary(data) #統計要約

実行結果

> data <-c(1:10) # 1-10の数値Vectorを作成
> data # dataを表示
 [1]  1  2  3  4  5  6  7  8  9 10
> 
> sum(data) #合計
[1] 55
> mean(data) #算術平均
[1] 5.5
> max(data) #最大値
[1] 10
> min(data) #最小値
[1] 1
> range(data) #範囲(最大値-最小値)
[1]  1 10
> median(data) #中央値
[1] 5.5
> var(data) #分散
[1] 9.166667
> sd(data) #標準偏差
[1] 3.027650
> quantile(data) #分位数
   0%   25%   50%   75%  100% 
 1.00  3.25  5.50  7.75 10.00 
> summary(data) #統計要約
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00    3.25    5.50    5.50    7.75   10.00 
四分位数

データを小さい値から大きい値へ順に並べたとき

  • 第1四分位数:小さいほうから 25%点
  • 第2四分位数(中央値):小さいほうから 50%点
  • 第3四分位数:小さいほうから 75%点

Apply関数

Apply関数を用いることにより、データセットの各行ごと・列ごとに、上記各種の基本統計量を算出することができる。

関数形

apply(X, MARGIN, FUN, ...)

Xはデータ、MARGINは、行単位の算出の場合は"1"、列単位の算出の場合は"2"を指定。FUNは、統計量の関数や計算式を与える。
iris のデータ(よく使用されるあやめデータ)で4つの列のそれぞれの統計量を求めるプログラムを以下に示す。
第2引数MARGINの値"2"は列単位の算出を表し、FUNでは各種用いる統計関数を指定している。

apply(iris[,1:4],2,sum) #合計
apply(iris[,1:4],2,mean)#算術平均
apply(iris[,1:4],2,max) #最大値
apply(iris[,1:4],2,min) #最小値
apply(iris[,1:4],2,range) #範囲(最大値-最小値)
apply(iris[,1:4],2,median) #中央値
apply(iris[,1:4],2,var) #分散
apply(iris[,1:4],2,sd) #標準偏差
apply(iris[,1:4],2,quantile) #分位数
apply(iris[,1:4],2,summary) #統計要約

実行結果

> apply(iris[,1:4],2,sum) #合計
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
       876.5        458.6        563.7        179.9 
> apply(iris[,1:4],2,mean)#算術平均
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
    5.843333     3.057333     3.758000     1.199333 
> apply(iris[,1:4],2,max) #最大値
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
         7.9          4.4          6.9          2.5 
> apply(iris[,1:4],2,min) #最小値
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
         4.3          2.0          1.0          0.1 
> apply(iris[,1:4],2,range) #範囲(最大値-最小値)
     Sepal.Length Sepal.Width Petal.Length Petal.Width
[1,]          4.3         2.0          1.0         0.1
[2,]          7.9         4.4          6.9         2.5
> apply(iris[,1:4],2,median) #中央値
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
        5.80         3.00         4.35         1.30 
> apply(iris[,1:4],2,var) #分散
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
   0.6856935    0.1899794    3.1162779    0.5810063 
> apply(iris[,1:4],2,sd) #標準偏差
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
   0.8280661    0.4358663    1.7652982    0.7622377 
> apply(iris[,1:4],2,quantile) #分位数
     Sepal.Length Sepal.Width Petal.Length Petal.Width
0%            4.3         2.0         1.00         0.1
25%           5.1         2.8         1.60         0.3
50%           5.8         3.0         4.35         1.3
75%           6.4         3.3         5.10         1.8
100%          7.9         4.4         6.90         2.5
> apply(iris[,1:4],2,summary) #統計要約
        Sepal.Length Sepal.Width Petal.Length Petal.Width
Min.           4.300       2.000        1.000       0.100
1st Qu.        5.100       2.800        1.600       0.300
Median         5.800       3.000        4.350       1.300
Mean           5.843       3.057        3.758       1.199
3rd Qu.        6.400       3.300        5.100       1.800
Max.           7.900       4.400        6.900       2.500

関連文献:

Rによるデータサイエンス データ解析の基礎から最新手法まで

Rによるデータサイエンス データ解析の基礎から最新手法まで

Rによる統計解析

Rによる統計解析

R: The R Project for Statistical Computing