Table of Contents

1 Rで一変数の記述統計

1.1 目標

R で書かれたコードを読めるようになりましょう。

  • データフレーム,ベクトル,リストを知りましょう
  • 記述統計の計算をしてみましょう

1.2 1つの変数の記述統計 ーー 教科書2章

1.2.1 Rに組込まれたデータセット iris

教科書の代りに,R 使い方 組込みデータセット iris データフレーム を 参考にします。

目的は,データセット,ベクトルを使った計算を理解することです。

  1. iris データセット

    150個の菖蒲のデータ:

    • petal: はなびら
      • .length
      • .width
    • sepal: がく
      • .length
      • .width

    ヘルプで調べます:

    help(iris)
    
    
  2. irisデータセットのなかみ

    中身のデータを見てみましょう:

    iris
    
    
        Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
    1            5.1         3.5          1.4         0.2     setosa
    2            4.9         3.0          1.4         0.2     setosa
    3            4.7         3.2          1.3         0.2     setosa
    4            4.6         3.1          1.5         0.2     setosa
    5            5.0         3.6          1.4         0.2     setosa
    6            5.4         3.9          1.7         0.4     setosa
    7            4.6         3.4          1.4         0.3     setosa
    8            5.0         3.4          1.5         0.2     setosa
    9            4.4         2.9          1.4         0.2     setosa
    10           4.9         3.1          1.5         0.1     setosa
    11           5.4         3.7          1.5         0.2     setosa
    12           4.8         3.4          1.6         0.2     setosa
    13           4.8         3.0          1.4         0.1     setosa
    14           4.3         3.0          1.1         0.1     setosa
    15           5.8         4.0          1.2         0.2     setosa
    16           5.7         4.4          1.5         0.4     setosa
    17           5.4         3.9          1.3         0.4     setosa
    18           5.1         3.5          1.4         0.3     setosa
    19           5.7         3.8          1.7         0.3     setosa
    20           5.1         3.8          1.5         0.3     setosa
    21           5.4         3.4          1.7         0.2     setosa
    22           5.1         3.7          1.5         0.4     setosa
    23           4.6         3.6          1.0         0.2     setosa
    24           5.1         3.3          1.7         0.5     setosa
    25           4.8         3.4          1.9         0.2     setosa
    26           5.0         3.0          1.6         0.2     setosa
    27           5.0         3.4          1.6         0.4     setosa
    28           5.2         3.5          1.5         0.2     setosa
    29           5.2         3.4          1.4         0.2     setosa
    30           4.7         3.2          1.6         0.2     setosa
    31           4.8         3.1          1.6         0.2     setosa
    32           5.4         3.4          1.5         0.4     setosa
    33           5.2         4.1          1.5         0.1     setosa
    34           5.5         4.2          1.4         0.2     setosa
    35           4.9         3.1          1.5         0.2     setosa
    36           5.0         3.2          1.2         0.2     setosa
    37           5.5         3.5          1.3         0.2     setosa
    38           4.9         3.6          1.4         0.1     setosa
    39           4.4         3.0          1.3         0.2     setosa
    40           5.1         3.4          1.5         0.2     setosa
    41           5.0         3.5          1.3         0.3     setosa
    42           4.5         2.3          1.3         0.3     setosa
    43           4.4         3.2          1.3         0.2     setosa
    44           5.0         3.5          1.6         0.6     setosa
    45           5.1         3.8          1.9         0.4     setosa
    46           4.8         3.0          1.4         0.3     setosa
    47           5.1         3.8          1.6         0.2     setosa
    48           4.6         3.2          1.4         0.2     setosa
    49           5.3         3.7          1.5         0.2     setosa
    50           5.0         3.3          1.4         0.2     setosa
    51           7.0         3.2          4.7         1.4 versicolor
    52           6.4         3.2          4.5         1.5 versicolor
    53           6.9         3.1          4.9         1.5 versicolor
    54           5.5         2.3          4.0         1.3 versicolor
    55           6.5         2.8          4.6         1.5 versicolor
    56           5.7         2.8          4.5         1.3 versicolor
    57           6.3         3.3          4.7         1.6 versicolor
    58           4.9         2.4          3.3         1.0 versicolor
    59           6.6         2.9          4.6         1.3 versicolor
    60           5.2         2.7          3.9         1.4 versicolor
    61           5.0         2.0          3.5         1.0 versicolor
    62           5.9         3.0          4.2         1.5 versicolor
    63           6.0         2.2          4.0         1.0 versicolor
    64           6.1         2.9          4.7         1.4 versicolor
    65           5.6         2.9          3.6         1.3 versicolor
    66           6.7         3.1          4.4         1.4 versicolor
    67           5.6         3.0          4.5         1.5 versicolor
    68           5.8         2.7          4.1         1.0 versicolor
    69           6.2         2.2          4.5         1.5 versicolor
    70           5.6         2.5          3.9         1.1 versicolor
    71           5.9         3.2          4.8         1.8 versicolor
    72           6.1         2.8          4.0         1.3 versicolor
    73           6.3         2.5          4.9         1.5 versicolor
    74           6.1         2.8          4.7         1.2 versicolor
    75           6.4         2.9          4.3         1.3 versicolor
    76           6.6         3.0          4.4         1.4 versicolor
    77           6.8         2.8          4.8         1.4 versicolor
    78           6.7         3.0          5.0         1.7 versicolor
    79           6.0         2.9          4.5         1.5 versicolor
    80           5.7         2.6          3.5         1.0 versicolor
    81           5.5         2.4          3.8         1.1 versicolor
    82           5.5         2.4          3.7         1.0 versicolor
    83           5.8         2.7          3.9         1.2 versicolor
    84           6.0         2.7          5.1         1.6 versicolor
    85           5.4         3.0          4.5         1.5 versicolor
    86           6.0         3.4          4.5         1.6 versicolor
    87           6.7         3.1          4.7         1.5 versicolor
    88           6.3         2.3          4.4         1.3 versicolor
    89           5.6         3.0          4.1         1.3 versicolor
    90           5.5         2.5          4.0         1.3 versicolor
    91           5.5         2.6          4.4         1.2 versicolor
    92           6.1         3.0          4.6         1.4 versicolor
    93           5.8         2.6          4.0         1.2 versicolor
    94           5.0         2.3          3.3         1.0 versicolor
    95           5.6         2.7          4.2         1.3 versicolor
    96           5.7         3.0          4.2         1.2 versicolor
    97           5.7         2.9          4.2         1.3 versicolor
    98           6.2         2.9          4.3         1.3 versicolor
    99           5.1         2.5          3.0         1.1 versicolor
    100          5.7         2.8          4.1         1.3 versicolor
    101          6.3         3.3          6.0         2.5  virginica
    102          5.8         2.7          5.1         1.9  virginica
    103          7.1         3.0          5.9         2.1  virginica
    104          6.3         2.9          5.6         1.8  virginica
    105          6.5         3.0          5.8         2.2  virginica
    106          7.6         3.0          6.6         2.1  virginica
    107          4.9         2.5          4.5         1.7  virginica
    108          7.3         2.9          6.3         1.8  virginica
    109          6.7         2.5          5.8         1.8  virginica
    110          7.2         3.6          6.1         2.5  virginica
    111          6.5         3.2          5.1         2.0  virginica
    112          6.4         2.7          5.3         1.9  virginica
    113          6.8         3.0          5.5         2.1  virginica
    114          5.7         2.5          5.0         2.0  virginica
    115          5.8         2.8          5.1         2.4  virginica
    116          6.4         3.2          5.3         2.3  virginica
    117          6.5         3.0          5.5         1.8  virginica
    118          7.7         3.8          6.7         2.2  virginica
    119          7.7         2.6          6.9         2.3  virginica
    120          6.0         2.2          5.0         1.5  virginica
    121          6.9         3.2          5.7         2.3  virginica
    122          5.6         2.8          4.9         2.0  virginica
    123          7.7         2.8          6.7         2.0  virginica
    124          6.3         2.7          4.9         1.8  virginica
    125          6.7         3.3          5.7         2.1  virginica
    126          7.2         3.2          6.0         1.8  virginica
    127          6.2         2.8          4.8         1.8  virginica
    128          6.1         3.0          4.9         1.8  virginica
    129          6.4         2.8          5.6         2.1  virginica
    130          7.2         3.0          5.8         1.6  virginica
    131          7.4         2.8          6.1         1.9  virginica
    132          7.9         3.8          6.4         2.0  virginica
    133          6.4         2.8          5.6         2.2  virginica
    134          6.3         2.8          5.1         1.5  virginica
    135          6.1         2.6          5.6         1.4  virginica
    136          7.7         3.0          6.1         2.3  virginica
    137          6.3         3.4          5.6         2.4  virginica
    138          6.4         3.1          5.5         1.8  virginica
    139          6.0         3.0          4.8         1.8  virginica
    140          6.9         3.1          5.4         2.1  virginica
    141          6.7         3.1          5.6         2.4  virginica
    142          6.9         3.1          5.1         2.3  virginica
    143          5.8         2.7          5.1         1.9  virginica
    144          6.8         3.2          5.9         2.3  virginica
    145          6.7         3.3          5.7         2.5  virginica
    146          6.7         3.0          5.2         2.3  virginica
    147          6.3         2.5          5.0         1.9  virginica
    148          6.5         3.0          5.2         2.0  virginica
    149          6.2         3.4          5.4         2.3  virginica
    150          5.9         3.0          5.1         1.8  virginica
    
  3. データ型を調べる

    iris 変数の中身のデータ型を調べます:

    class(iris)
    
    
    [1] "data.frame"
    

    データフレーム型ですね。いわゆる表 (見出し付きの表,テーブル)です ね。

  4. iris を文字列化

    -str- は構造をもつ (structual) データを文字列化 (serial) する

    str(iris)
    
    
  5. 花弁の長さの列を取り出す
    iris[,"Sepal.Length"]
    
    
      [1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1
     [19] 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.0 5.0 5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.0
     [37] 5.5 4.9 4.4 5.1 5.0 4.5 4.4 5.0 5.1 4.8 5.1 4.6 5.3 5.0 7.0 6.4 6.9 5.5
     [55] 6.5 5.7 6.3 4.9 6.6 5.2 5.0 5.9 6.0 6.1 5.6 6.7 5.6 5.8 6.2 5.6 5.9 6.1
     [73] 6.3 6.1 6.4 6.6 6.8 6.7 6.0 5.7 5.5 5.5 5.8 6.0 5.4 6.0 6.7 6.3 5.6 5.5
     [91] 5.5 6.1 5.8 5.0 5.6 5.7 5.7 6.2 5.1 5.7 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3
    [109] 6.7 7.2 6.5 6.4 6.8 5.7 5.8 6.4 6.5 7.7 7.7 6.0 6.9 5.6 7.7 6.3 6.7 7.2
    [127] 6.2 6.1 6.4 7.2 7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6.0 6.9 6.7 6.9 5.8 6.8
    [145] 6.7 6.7 6.3 6.5 6.2 5.9
    

    別のやりかたでも取り出せます:

    iris$Sepal.Length
    
    
      [1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1
     [19] 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.0 5.0 5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.0
     [37] 5.5 4.9 4.4 5.1 5.0 4.5 4.4 5.0 5.1 4.8 5.1 4.6 5.3 5.0 7.0 6.4 6.9 5.5
     [55] 6.5 5.7 6.3 4.9 6.6 5.2 5.0 5.9 6.0 6.1 5.6 6.7 5.6 5.8 6.2 5.6 5.9 6.1
     [73] 6.3 6.1 6.4 6.6 6.8 6.7 6.0 5.7 5.5 5.5 5.8 6.0 5.4 6.0 6.7 6.3 5.6 5.5
     [91] 5.5 6.1 5.8 5.0 5.6 5.7 5.7 6.2 5.1 5.7 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3
    [109] 6.7 7.2 6.5 6.4 6.8 5.7 5.8 6.4 6.5 7.7 7.7 6.0 6.9 5.6 7.7 6.3 6.7 7.2
    [127] 6.2 6.1 6.4 7.2 7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6.0 6.9 6.7 6.9 5.8 6.8
    [145] 6.7 6.7 6.3 6.5 6.2 5.9
    

    データフレームの1行目を取り出して,そのデータ型を調べます:

    iris[1,]
    class(iris[1,])
    
    
      Sepal.Length Sepal.Width Petal.Length Petal.Width Species
    1          5.1         3.5          1.4         0.2  setosa
    [1] "data.frame"
    

    なんと,見出しも付随したデータフレームになります。 (解説ページの内容とは異なります)。

    1列目を取り出すとどうでしょう:

    iris[,1]
    class(iris[,1])
    
    
      [1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1
     [19] 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.0 5.0 5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.0
     [37] 5.5 4.9 4.4 5.1 5.0 4.5 4.4 5.0 5.1 4.8 5.1 4.6 5.3 5.0 7.0 6.4 6.9 5.5
     [55] 6.5 5.7 6.3 4.9 6.6 5.2 5.0 5.9 6.0 6.1 5.6 6.7 5.6 5.8 6.2 5.6 5.9 6.1
     [73] 6.3 6.1 6.4 6.6 6.8 6.7 6.0 5.7 5.5 5.5 5.8 6.0 5.4 6.0 6.7 6.3 5.6 5.5
     [91] 5.5 6.1 5.8 5.0 5.6 5.7 5.7 6.2 5.1 5.7 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3
    [109] 6.7 7.2 6.5 6.4 6.8 5.7 5.8 6.4 6.5 7.7 7.7 6.0 6.9 5.6 7.7 6.3 6.7 7.2
    [127] 6.2 6.1 6.4 7.2 7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6.0 6.9 6.7 6.9 5.8 6.8
    [145] 6.7 6.7 6.3 6.5 6.2 5.9
    [1] "numeric"
    

    これは,見出しのつかない,ただの,ベクトルとなります。

  6. ベクトル

    -iris[,1]- と同じ意味ですが:

    iris[,"Sepal.Length"]
    class(iris[,"Sepal.Length"])
    
      [1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1
     [19] 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.0 5.0 5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.0
     [37] 5.5 4.9 4.4 5.1 5.0 4.5 4.4 5.0 5.1 4.8 5.1 4.6 5.3 5.0 7.0 6.4 6.9 5.5
     [55] 6.5 5.7 6.3 4.9 6.6 5.2 5.0 5.9 6.0 6.1 5.6 6.7 5.6 5.8 6.2 5.6 5.9 6.1
     [73] 6.3 6.1 6.4 6.6 6.8 6.7 6.0 5.7 5.5 5.5 5.8 6.0 5.4 6.0 6.7 6.3 5.6 5.5
     [91] 5.5 6.1 5.8 5.0 5.6 5.7 5.7 6.2 5.1 5.7 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3
    [109] 6.7 7.2 6.5 6.4 6.8 5.7 5.8 6.4 6.5 7.7 7.7 6.0 6.9 5.6 7.7 6.3 6.7 7.2
    [127] 6.2 6.1 6.4 7.2 7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6.0 6.9 6.7 6.9 5.8 6.8
    [145] 6.7 6.7 6.3 6.5 6.2 5.9
    [1] "numeric"
    
    1. データフレーム
      class(iris[1,])
      
      
      [1] "data.frame"
      
  7. データセットの特徴
    1. 次元
      dim(iris)
      
      
      [1] 150   5
      
    2. 行数
      nrow(iris)
      
      
    3. 列数
      ncolumn(iris)
      
      
    4. 要約統計量
      summary(iris)
      
      
       Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
      Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
      1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
      Median :5.800   Median :3.000   Median :4.350   Median :1.300  
      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  
            Species  
      setosa    :50  
      versicolor:50  
      virginica :50
      
      summary(iris$Sepal.Length)
      
      
       Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      4.300   5.100   5.800   5.843   6.400   7.900
      
    5. 度数 (頻度) 分布表 – ヒストグラム
      hist(iris$Sepal.Length,breaks=100)
      
      

1.2.2 平均 (教科書2.5)

ここから教科書2.5の内容になります。

  1. データの代表値

    与えられたデータの特徴を捕える統計量は下記のものがある:

    Min.
    最小値
    1st Qu.
    第一四分位数 (下から1/4点)
    Median
    中央値
    Mean
    平均値
    3rd Qu.
    第三四分位数 (下から3/4点)
    Max.
    最大値
  2. 平均 (mean)

    平均を R で定義すると下記の関数 -my.mean- となる。 -mean- は Rに組込まれた平均を求めるための関数。

    my.mean <- function (v) {
      sum(v)/length(v)
    }
    
    my.mean(iris$Sepal.Length)
    mean(iris$Sepal.Length)
    
    
    [1] 5.843333
    [1] 5.843333
    

    -sum- はベクトルの総和,-legth- はベクトル長を求める関数。

  3. 中央値 (median)
    median(iris$Sepal.Length)
    
    
    [1] 5.8
    
  4. 最頻値 (median)
    table(iris$Sepal.Length)
    
    
    
    4.3 4.4 4.5 4.6 4.7 4.8 4.9   5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9   6 6.1 6.2 
      1   3   1   4   2   5   6  10   9   4   1   6   7   6   8   7   3   6   6   4 
    6.3 6.4 6.5 6.6 6.7 6.8 6.9   7 7.1 7.2 7.3 7.4 7.6 7.7 7.9 
      9   7   5   2   8   3   4   1   1   3   1   1   1   4   1
    

    irisデータフレームのSepal.Lengthの各値に対し,出現頻度を求めている。

    下記のように,ヒストグラムを描くこともできる:

    hist(iris$Sepal.Length, breaks=100)
    
    

1.2.3 散布度, 分散,標準偏差 – 教科書 2.7~2.8

代表値
分布の中心的位置を示す
散布度
分布の,中心からの,散らばり,ばらつき 分散,標準偏差
  1. ベクトル・データの準備
    (テストa <- c(10, 13, 8, 15, 8))
    
    
    [1] 10 13  8 15  8
    
  2. 平均

    まずは,各値を加えてみる:

    10+13+8+15+8
    
    sum(テストa) # ベクトルの要素の和
    
    
    [1] 54
    [1] 54
    

    ベクトルの総和を使う:

    sum(テストa) /length(テストa)
    
    
    [1] 10.8
    

    Rシステムの平 -mean- を使ってみる:

    (テストaの平均 <- mean(テストa))
    
    
    [1] 10.8
    
  3. 平均からの偏差

    ベクトルの各要素から,平均値を引くことで,平均からの偏差ベクトル が求まる:

    (平均からの偏差 <- テストa - テストaの平均) # (ベクトル - 数値) の結果はベクトル!
    
    
    [1] -0.8  2.2 -2.8  4.2 -2.8
    
  4. 平均からの偏差の二乗

    平均からの偏差ベクトルを2乗すると,各要素を2乗したベクトルが求ま る:

    (平均からの偏差の二乗 <- 平均からの偏差^2) # (べくとる)^2 は要素の2乗のベクトル!
    
    
    [1]  0.64  4.84  7.84 17.64  7.84
    
  5. データ数

    データ数は,ベクトルの長さそのもの:

    (データ数 <- length(テストa))
    
    
    [1] 5
    
  6. 平均からの偏差の二乗和
    (平均からの偏差の二乗和 <- sum(平均からの偏差の二乗))
    
    
    [1] 38.8
    
  7. 分散
    (分散 <- 平均からの偏差の二乗和/データ数)
    
    
    [1] 7.76
    

    これまでの操作を関数にまとめると,

    my.分散 <- function(v){
    
      sum((v - mean(v))^2)/length(v)
    
    }
    
    (分散 <- my.分散(テストa))
    
    
    [1] 7.76
    
  8. 標準偏差

    標準偏差は,各データの平均からの距離の平均です。 $\mbox{準偏差} σ = \sqrt{\sigma^2}$です。

    (標準偏差 <- sqrt(分散))
    
    
    [1] 2.785678
    

1.2.4 標準化

平均が \(\mu\), 標準偏差が \(\sigma\) である分布を, 平均が \(0\), 標準偏差が \(1\) である分布に(変数)変換するのが, 標準化 です。

Created: 2021-10-17 日 20:48

Validate