統計量と区間推定

今日においては計算機の性能は日々向上し、大量のデータを収集してその中から意味のある情報を調査分析することはますます容易になってきつつあります。それに伴い確率論を伴う統計学や統計的思考の重要性も向上してきています。

ここでは再び基礎中の基礎に立ち返り、統計量の算出について考えてみましょう。多数のデータと向き合ったとき、これがどのような全体像や特徴を持つのか把握するためには、統計量と確率分布についての理解が必要となります。

# 統計量

ある中高一貫校で高校生男子と中学生男子の体重をそれぞれ 100 人ずつ測定しました。それぞれのデータの数値を並べてリストを作ると次のとおりでした。 (※ 架空のデータです)

##### 高校生男子

```py3
[ 52.8  61.8  56.2  60.9  54.3  52.3  60.8  67.2  59.4  57.   48.   66.3
  65.8  61.4  52.1  67.4  66.9  60.7  58.8  55.4  54.1  48.2  64.3  53.5
  62.6  65.   52.9  67.2  67.9  61.4  55.1  50.7  64.5  64.6  54.4  50.6
  54.8  63.   51.7  45.   59.   63.6  42.2  60.8  46.   44.2  53.2  58.3
  44.   59.2  66.9  55.3  52.2  43.1  56.7  67.   67.   51.   67.3  67.4
  60.7  53.5  49.3  50.5  67.8  67.8  65.3  44.7  55.6  51.4  45.3  44.8
  48.2  65.1  58.1  64.   42.6  67.6  57.   54.1  65.9  53.6  58.1  63.
  47.3  66.   44.   61.4  51.2  47.3  42.7  55.2  65.2  52.4  57.9  54.9
  52.1  56.2  67.6  47.6]
```

##### 中学生男子

```py3
[ 50.4  39.   48.2  41.8  44.1  53.9  42.4  38.8  52.2  49.2  48.7  52.4
  42.3  49.5  51.3  39.6  47.9  46.   44.6  48.   46.   52.3  46.9  53.2
  51.   45.1  48.1  43.   48.1  39.4  53.7  47.9  47.1  48.2  46.1  40.2
  47.7  48.3  53.5  43.   40.9  53.   44.2  43.2  53.5  48.4  46.6  49.9
  41.6  38.6  52.6  41.2  53.   39.6  48.4  40.9  52.2  53.4  43.4  41.1
  46.5  38.5  53.8  51.   45.4  44.9  51.6  51.6  39.2  42.8  48.7  43.9
  53.7  42.6  39.9  41.2  41.3  44.7  42.2  51.   40.8  40.4  42.1  43.9
  47.8  45.6  50.3  52.5  51.6  39.1  49.9  46.8  43.5  52.4  47.   47.3
  47.8  42.2  40.4  41.1]
```

### 平均値

[以前に書いた](http://qiita.com/ynakayama/items/ba3b45b376397955c3da)通り、平均はわれわれにとって最も身近な要約統計量と言っても差し支えないでしょう。たとえば飲み会での一人当たりの支払額など、日常生活のさまざまな場面で利用されます。リストの数値の個数を n 、数値 Xi としたときの平均を算出する式は次の通りです。

```math
\mu = \frac 1 n {\sum_{i=1}^{n}}x_i
```

NumPy を利用すると平均は次のコードで求まります。

```py3
np.average(array)
# 高校生の平均値は 56.844
# 中学生の平均値は 46.318
```

### 中央値

すべてのデータを大きさの順に並べたときに中央に位置する値です。これも[以前の記事](http://qiita.com/ynakayama/items/ba3b45b376397955c3da)の通りですが、外れ値を含むため平均を求めると実態と異なるといったときに有効に利用できます。中央値を算出するコードは次のとおりです。

```py3
np.median(array)
# 高校生の中央値は 56.45
# 中学生の中央値は 46.7
```

### 分散

平均値や中央値によりデータがどこを中心としているかを表すことができます。それではデータがどれくらい散らばっているかの目安をどのように求めれば良いでしょうか。

あるデータが平均値からどれだけ離れているかを意味する値が **偏差 (deviation)** です。偏差の総和及び平均は必ず 0 になります。そこで偏差を 2 乗した値の平均を、データの広がりを表す尺度として用います。これが **分散 (variance)** です。

```math
{\sigma^2} = \frac 1 n {\sum_{i=1}^{n}} ({x_i} - {\overline x})^2
```

分散を求めるコードは次の通りです。

```py3
np.var(array)
# 高校生の分散は 57.360064
# 中学生の分散は 21.477476
```

### 標準偏差

分散の平方根 σ は **標準偏差 (standard deviation)** と言われます。分散は 2 乗したままの値なので、データや平均の値と直接比較することができません。そこで平方根をとって標準偏差を求めるわけです。

標準偏差を求めるコードは次の通りです。

```py3
np.std(array)
# 高校生の標準偏差は 7.57364271669
# 中学生の標準偏差は 4.6343797859
```

今回用意した架空のデータでは、高校生男子の体重のほうがバラつきが大きいことが以上の調査からわかりました。

# 区間推定

先ほどは男子高校生、男子中学生から任意の 100 人をサンプルとして標本抽出したデータを扱いました。確率分布を考えることによって、サンプルデータから母集団の真の統計量を推定することができます。

### 復元抽出と非復元抽出

母集団から標本を選ぶ場合に 1 つの個体を選んだ後にその個体を母集団の中に戻すということを繰り返していって標本を選ぶ方法を **復元抽出** といいます。これに対し 1 度選んだ個体を母集団の中に戻さずに標本を選ぶ方法を **非復元抽出**　といいます。

平たく言うと非復元抽出は重複を許さないということですね。また、母集団が十分に大きい場合は同じ個体が抽出される確率は下がりますので、復元抽出と非復元抽出にほとんど差がなくなります。

### 標本の期待値と分散

復元抽出によって得られた標本平均 X について、その期待値 E[X] と分散 V[X] は次のようになります。

```math
E[X] = {\mu} \\
V[X] = \frac {\sigma^2} n
```

さてこの得られたサンプルが母集団に対してどれくらい信用できるかということを考えてみます。よくあるのは平均が a 以上 b 以下である確率が p 以上というふうに区間で推定したいケースです。

### 信頼区間

正規分布に従っていると仮定したとき、標本 X 〜 Pθ に対して、ある関数 L,U に対して次式

```math
P_{\theta}(L(X)) {\lt} {\theta} {\lt} U(X)) {\ge} 1 - {\alpha}
```

がすべての θ で成立しているときに (L(X), U(X)) を信頼係数 1 - α の信頼区間と言います。

書き換えるとある集合 S(θ) が存在して

```math
P_{\theta} (X {\in} S({\theta})) {\ge} 1 - {\alpha}
```

がすべての θ で成立するとき

```math
C(X) = \{{\theta}| X {\in} S({\theta}) \}
```

は信頼係数 1 - α の信頼区間 (区間にならない場合もある) となります。


長々と説明が続きましたが次回は[前回の記事](http://qiita.com/ynakayama/items/6b89cb451a73ae7a8990)でも後半から登場した仮説検定を取り扱っていきたいと思います。