【初心者向け】平均(Mean)と標準偏差(Standard Deviation)、中央値(Median)と平均偏差(Mean Absolute Deviation)


統計学史上においては**ガウス**（<font color=blue>Carolus Fridericus Gauss、1777年〜1855年</font>）が**最小二乗法**（<font color=blue>least squares method</font>）を発表して以降、**平方損失系**（<font color=blue>平均系</font>）**尺度**、すなわち正規分布に紐付けられた**標本分散**（<font color=blue>Sample Variance</font>）/**不偏分散**（<font color=blue>Unbiased Variance</font>）/**不偏標本分散**（<font color=blue>Unbiased Sample Variance</font>）および**標準偏差**（<font color=blue>SD=standard deviation</font>）の偏重が続いてきたとされています。
[【無限遠点を巡る数理】無限遠点としての正規分布と分散概念の歴史](https://qiita.com/ochimusha01/items/15326f0c787a55f174cc)

それでは他にどういう考え方があるのでしょうか？

[標準偏差と平均偏差の使い分け](http://webbeginner.hatenablog.com/entry/2016/05/25/102357)

>簡単な数値シミュレーションをして、**標準偏差**と**平均偏差**が最も小さくなる時の代表値がそれぞれ**平均値**と**中央値**になることを確かめてみましょう。
>
>今回の検証ではR言語を使い確率分布からデータをランダムに発生させます。ここで正規分布を採用すると、**平均値**と**中央値**のずれがほとんどないと予想できるので、あえて違う確率分布（<font color=blue>対数正規分布</font>）を用います。

<font color=purple>統計言語Rによる検証</font>

```R
# データの生成
simData <- rlnorm(1000)
plot(simData)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/5a31938b-6862-fe0c-46ec-2c401c56af61.png)

```R
#分布が正規分布と懸け離れている事の確認
qqnorm(simData)
qqline(simData, lwd=2, col="red" )
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/8f8bce96-db43-be02-8e78-eeea80aa2ab2.png)

<font color=purple>最低値</font>（<font color=blue>Max</font>）<font color=purple>と最高値</font>（<font color=blue>Min</font>）<font color=purple>の計算</font>

>生成したデータの**最低値**と**最高値**を計算します。最初に**最低値**を分布の代表値と仮定し、**標準偏差**と**平均偏差**をそれぞれ求めます。
>
>次に最低値よりも少しだけ大きな値を代表値とし、データの最大値を代表値とする場合まで次々に繰り返します。
>
>そして最後に、すべての計算結果からいつ**標準偏差**と**平均偏差**が最小になるかを調べます。
><font color=blue>＊手元のPCで計算してみた時にはminDataは0.04240865、maxDataは65.70159、numIterationは656592となりました。</font>

<font color=purple>変数の準備</font>

```R
#最小値と最大値の取得
minData <- min(simData)
minData
[1] 0.05256874
maxData <- max(simData)
maxData
[1] 24.31248

#繰り返しの回数を求める
numIteration<- round((maxData - minData)/0.0001)
numIteration
[1] 242599
```
<font color=purple>SD/ADデータの準備</font>

```R
#計算結果の保存用配列を作成
## 標準偏差用
arrSD <- NULL
## 平均偏差用
arrAD <- NULL

for (i in 1:numIteration){
repData <- minData + 0.0001 * i

resSD <- sqrt(sum((simData - repData)^2)/length(simData))
resAD <- sum(abs(simData - repData))/length(simData)

arrSD <- c(arrSD, resSD)
arrAD <- c(arrAD, resAD)
}
```

**データ後処理**

>**標準偏差**と**平均偏差**を保存したデータの中かからいつ値が最小になったのかを求めます。

<font color=purple>シミュレーション本体</font>

```R
# SDが最小となるような代表値
minData + 0.0001 * which.min(arrSD)
[1] 1.708869
# ADが最小となるような代表値
minData + 0.0001 * which.min(arrAD)
[1] 0.9646687
```

**SD/ADが最小となるような代表値**

>計算の結果、**SD**が最小となるような代表値は<font color=green>1.708909</font>、**AD**が最小となるような代表値は<font color=green>0.9827087</font>でした。では、最後にこのデータの**平均**と**中央値**を計算してみます。

<font color=purple>統計言語Rによる検証</font>

```R
mean(simData)
[1] 1.708847
median(simData)
[1] 0.9662305
```

**最終結論**

>計算結果は、平均値が<font color=green>1.708862</font>、中央値が<font color=green>0.9834444</font>でした。正確な一致ではありませんが、おおよそ標準偏差が最小となるような代表値は、データの平均値であり、平均偏差が最小となるような代表値はデータの中央値であることがわかります。

とりあえずこういう考え方を学びました。

* おおよそ**標準偏差**が最小となるような代表値はデータの**平均値**である。
* おおよそ**平均偏差**が最小となるような代表値はデータの**中央値**である。

で、こういう話も。
[平均値と中央値の違い](https://bellcurve.jp/statistics/blog/14299.html)

>中央値は平均値と異なり外れ値の影響を受けません。この性質のことを「**外れ値に対してロバストである**（<font color=blue>頑健性がある</font>）」と言います。
>
>一方、平均値と中央値が異なる時、分布は平均値より中央値側に偏りが出ます。例えば年収や資産など、お金についてのデータをとると平均値より中央値が低くなることが殆どです。

以下続報…