統計検定を受けるので、統計学を基礎から勉強していきます。
支援ツールとして R 言語を用います。
Mac 環境で進めます。
準備
R と RStudio (統合開発環境)をインストールする
公式から .dmg ファイルをダウンロードして道なりにインストールします。
起動
とりあえずコマンドラインから。
$ r
で R のコンソールが立ち上がる。
統計学
統計(とうけい)は、現象を調査することによって数量で把握すること、または、調査によって得られた数量データのことである。(Wikipedia より)
統計に関する研究を行う学問が統計学。
基礎
用語
- 観測値:統計学が対象とする現象において観測を行うことで得られる値や属性。例)日本人の身長・体重など
- データ:観測値をまとめたもの。
データの基本統計量(代表値)
データの分布の特徴を代表的に、要約して表す値を 基本統計量 あるいは 代表値 という。代表値には以下のようなものがある。
(算術)平均値 (arithmetic mean)
観測値 $x_1, x_2, \dots , x_n$の和をその総数で割った値 $\bar{x}$を 算術平均値、あるいは単に 平均値 という:
\bar{x} = \frac{x_1 + x_2 + \cdots + x_n}{n}.
中央値 (median)
観測値を小さい順に並べた時、中央に位置する値を 中央値 という。
観測値が偶数個の場合は真ん中ふたつの平均をとる。
分位点 (quantile)
観測値を小さい順に並べた時、小さい方から $100p\%$のところにある値を $100p$分位点 という。
よく使う分位点として 四分位点 がある。第1四分位点 (25%)、第2四分位点 (50% = 中央値)、第3四分位点(75%)。
データ数が n のとき、n/4 が割り切れるならば小さいほうかn/4番目のデータとn/4+1番目のデータを平均した値が、n/4が割り切れないときは[n/4+1]番目の値が第1四分位数となる。第3四分位数の場合は n/4 を 3n/4 に変えればよい。
最頻値 (mode)
観測値の中で、最も出現頻度が高い値を 最頻値 という。
分散 (variance)
観測値の平均値からのズレ ( 偏差 ) の二乗の平均値 $\sigma^2$ を 分散 という:
\sigma^2 = \frac{(x_1 - \bar{x})^2 + (x_2 - \bar{x})^2 + \cdots + (x_n - \bar{x})^2}{n}.
標準偏差 (standard deviation)
分散の平方根を 標準偏差 という。観測値と同じ次元(単位)になる。
標準得点 (standard score)
データ $x = \{x_i\}$ を
z_i = \frac{x_i - \bar{x}}{\sigma}
により変換したデータ $z = \{z_i\}$ をデータ $x$ の 標準化 (standardization) といい、各観測値 $z_i$ を 標準得点 という。$z$は平均 $\bar{z} = 0$, 標準偏差 $\sigma = 1$を持つ。
基本統計量を R で実習
9人のメンバーの身長 (cm) のデータが
{157, 162, 159, 159, 155, 161, 159, 156, 154}
と与えられたとして、上で述べた基本統計量を R で計算します。
データの入力
> data <- c(157, 162, 159, 159, 155, 161, 159, 156, 154)
平均値
> mean <- sum(data) / length(data)
> mean
[1] 158
あるいは、mean() 関数を使うと、
> mean(data)
[1] 158
中央値
> # ソートして、5番目の値を取る。
> sorted = sort(data)
> sorted[5]
[1] 159
あるいは、median() 関数を使うと、
> median(data)
[1] 159
四分位点
> # ソートして m*9/4+1 の整数部番目の値を取る
> # 第1四分位点
> sorted = sort(data)
> sorted[floor(9/4 + 1)]
[1] 156
> # 第3四分位点
> sorted[floor(3*9/4 + 1)]
[1] 159
あるいは、quantile() 関数を使うと、
> quantile(data)
0% 25% 50% 75% 100%
154 156 159 159 162
分散
> mean((data - mean(data))^2)
[1] 6.444444
var() 関数も使えるが、これは不偏分散を求めるものなので、上述の定義(標本分散)に合わせるには、
以下のようにする必要がある。
> var(data) * (length(data) - 1) / length(data)
[1] 6.444444
標準偏差
> # 分散の平方根をとる。
> var = mean((data - mean(data))^2)
> sqrt(var)
[1] 2.538591
あるいは、sd() 関数もあるが、var() 関数同様、これは不変標準偏差を求めるものなので、
以下のようにする。
> sd(data) * sqrt ((length(data) - 1) / length(data))
[1] 2.538591
標準得点
> # 平均
> mean = mean(data)
> # 標準偏差
> sigma = sqrt(mean(data^2) - mean(data)^2)
> z = (data - mean) / sigma
> z
[1] -0.3939193 1.5756772 0.3939193 0.3939193 -1.1817579 1.1817579 0.3939193
[8] -0.7878386 -1.5756772
> # 平均が 0 で標準偏差が 1 になっていることの確認
> mean(z)
[1] 0
> sqrt(mean(z^2) - mean(z)^2)
[1] 1
ここで分散について、
\sigma^2 = \overline{(x - \bar{x})^2} = \overline{x^2} - \bar{x}^2
が成り立つことを使った。