平均と標準偏差の計算をほぼ整数の計算に？！

# はじめに

データの特徴を表す量として有名なのが**平均**でしょう．また，データのばらつきを表すのが**標準偏差**です．これらの量は，手元に関数電卓等がすぐに計算できますが，データ量が増えると大変になります．そこで，ここでは平均と標準偏差を**容易に計算できる方法**について考えてみました．

# 適当な定数を引いたり，掛けたりすると...

データ全体に，適当な定数を引いたり，掛けることを**一次変換**と呼びます．一次変換により平均や標準偏差の値がどのように変化するのでしょうか？

## 定数を引いてみる！

あるデータ$x_1,x_2,\cdots,x_n$に定数$a$を**引いたもの**を$u_1, u_2, \cdots, u_n$としましょう．式で表すと次のようになります．

```math
u_i=x_i-a~~(i=1,2,\cdots n)
```

この$u_i$の**平均** $\overline{u}$は次のようになりますね．

```math
\overline{u}=\frac{u_0+u_1+\cdots +u_n}{n}=\frac{1}{n}\sum^{n}_{i=1} u_i
```

この式を眺めると，次のように変形できるでしょう．

```math
\begin{align}
\overline{u}
&=\frac{1}{n}\sum^{n}_{i=1} u_i 
=\frac{1}{n}\sum^{n}_{i=1} (x_i-a) \\
&=\frac{1}{n}\left( \sum^{n}_{i=1} x_i- \sum^{n}_{i=1} a \right)
=\frac{1}{n}\left( \sum^{n}_{i=1} x_i- an \right) 
=\overline{x}-a \tag{1}
\end{align}
```

一方，$u_i$の**標準偏差**$s_u$は次のよう計算できます．

```math
s_u^2=\frac{1}{n-1} \left\{ (u_0-\overline{u})^2+(u_1-\overline{u})^2+ \cdots +(u_n-\overline{u})^2 \right\} =\frac{1}{n-1}\sum^{n}_{i=1} (u_i-\overline{u})^2
```

この式もまた，次のように変形できるでしょう．

```math
\begin{align}
s_u^2
&=\frac{1}{n-1}\sum^{n}_{i=1} (u_i-\overline{u})^2 \\
&=\frac{1}{n-1}\sum^{n}_{i=1} \{(x_i-a)-(\overline{x}-a)\}^2~~(\because 式(1)より\overline{u}=\overline{x}-a) \\
&=\frac{1}{n-1}\sum^{n}_{i=1} (x_i-\overline{x})^2 =s_x^2 \tag{2}
\end{align}
```


ここまでの性質を整理すると，

```math
\begin{align}
\overline{u}&=\overline{x}-a,~~s_u=s_x \\
&\rightarrow~\overline{x}=\overline{u}+a,~~s_x=s_u \tag{3}
\end{align}
```

ですね．




## 定数を掛けてみる！

あるデータ$x_1, x_2, \cdots ,x_n$に定数$b$を**掛けたもの**を$v_1, v_2, \cdots, v_n$としましょう．式で表すと次のようになります．

```math
v_i=bx_i~~(i=1,2,\cdots n)
```

この$v_i$の**平均**$\overline{v}$は

```math
\overline{v}=\sum^n_{i=1} b x_i
```

です．これを変形していくと次の関係が得られます．

```math
\begin{align}
\overline{v}
&=\frac{1}{n} \sum^n_{i=1} v_i
=\frac{1}{n} \sum^n_{i=1} bx_i \\
&=\frac{b}{n} \sum^n_{i=1} x_i
=b \overline{x} \tag{4}
\end{align}
```

また，**標準偏差**$s_v$は

```math
s_v^2=\frac{1}{n-1}\sum^{n}_{i=1} (v_i-\overline{v})^2
```

により得られます．これを変形していくと次の関係が得られます．

```math
\begin{align}
s_v^2
&=\frac{1}{n-1}\sum^{n}_{i=1}(v_i-\overline{v}) \\
&=\frac{1}{n-1}\sum^{n}_{i=1}(b x_i- b\overline{x})~~(\because 式(4)より\overline{v}=b\overline{x}) \\
&=\frac{b^2}{n-1}\sum^{n}_{i=1} (x_i-\overline{x})^2=b^2 s_x^2
\end{align}
```

ここまでの性質を整理すると，

```math
\begin{align}
\overline{v}&=b\overline{x},~~s_v=bs_x \\
&\rightarrow~\overline{x}=\frac{\overline{v}}{b},~~s_x=\frac{s_v}{b} \tag{5}
\end{align}
```

ですね．

# 平均の計算を簡易に？！

ここまで得られた関係，式(3)と式(5)は次の通りです．

```math
\begin{align}
\overline{x}&=\overline{u}+a,&~~s_x=s_u \tag{再掲3}\\
\overline{x}&=\frac{\overline{v}}{b},~~&s_x=\frac{s_v}{b} \tag{再掲5}
\end{align}
```

これらの関係から，次の性質を導き出せます．今，元のデータに定数$a,~b$を**掛けたり，引いたりすることで**

```math
z_i=(x_i-a) \times b \tag{6}
```

と変換します．$z_i$の平均$\overline{z}$と標準偏差$s_z$は，元のデータの平均$\overline{x}$および標準偏差$s_x$を用いて次のように与えられます．

```math
\overline{z}=(\overline{x}-a) \times b,~~s_z=bs_x
```
 
これを$\overline{x}$と$s_x$について変形すると次のようになります．

```math
\overline{x}=a+\frac{1}{b}\overline{z},~~s_x=\frac{1}{b}s_z \tag{7}
```

# 計算例

5日分の気温[$^\circ \mathrm{C}$]の観測値

```math
28.1,~~29.4,~~28.7,~~29.2,~~29.8
```

の平均値を計算してみます．

計算手順としては
　**Step1. 観測値を式(6)で変換
　Step2. 変換値に対する平均（標準偏差）を計算
　Step3. 式(7)でもとに戻す**
です．一見面倒に見えますが，この手順を踏むことでどうなるでしょうか・・？

観測値を眺めると，$29^\circ \mathrm{C}$くらいが観測値の真ん中の値くらいに見えますから，$a=29$とします．さらに，小数点以下1桁の数値ですから，10倍してあげれば整数になります．そのため，$b=10$とでもしてみます．

**Step1. 観測値を式(6)で変換**

$a,~~b$ を式(6)に代入すれば

$$z_i=(x_i-29.0) \times 10$$

となります．観測値と，式(6)で変換した値は下表のようになりますね．

| $$x_i$$ | 28.1 | 29.4 | 28.7 | 29.2 | 29.8 |
| --- | --- | --- | --- | --- | --- |
| $$z_i$$ | -9 | 4 | -3 | 2 | 8 |


**Step2. 変換値に対する平均（標準偏差）を計算**

この $z_i$ の平均は,

```math
\overline{z}=\frac{(-9)+4+(-3)+2+8}{5}=0.4
```

です．


**Step3. 式(7)でもとに戻す**

したがって，観測値$x$の平均$\overline{x}$は式(7)より以下のように求められます．

```math
\overline{x}=a+\frac{1}{b}\overline{z}=29.0+\frac{0.4}{10}=29.04
```

標準偏差$s_z$の値を計算するには，一次変換で得られた$z$の値についての標準偏差$s_z^2$を計算します．$z$の平均値は$\overline{z}=0.4$ですから，

```math
s_z^2=(-9-0.4)^2+(4-0.4)^2+(-3-0.4)^2+(2-0.4)^2+(8-0.4)^2 \tag{8}
```

を計算した後，式(7)を用いて観測値の標準偏差を求めます．これだけでも計算は楽になりました．しかし，**もっともっと計算を楽にしたい．．．**

# 標準偏差の計算をさらに簡易化しよう

$z$の標準偏差$s_z$を変形してみたいと思います．

```math
\begin{align}
s_z^2
&=\sum_{i=1}^{n} (z_i-\overline{z})^2
=\sum_{i=1}^{n} (z_i^2-2\overline{z}z+\overline{z}^2) \\
&=\sum_{i=1}^{n} z_i^2 -2\overline{z}\sum_{i=1}^{n} z_i +\sum_{i=1}^{n} \overline{z}^2 \\
&=\sum_{i=1}^{n} z_i^2 -2\overline{z} (n\overline{z})+\sum_{i=1}^{n}\overline{z}^2~~ \left(\because \overline{z}=\frac{1}{n}\sum_{i=1}^{n}z_i \leftrightarrow \sum_{i=1}^{n}z_i=n\overline{z} \right) \\
&=\sum_{i=1}^{n} z_i^2 -n\overline{z}^2 \tag{9}
\end{align}
```

この関係を用いると，式(8)はさらに簡単になり，

```math
s_z^2=\{(-9)^2 + 4^2 +(-3)^2+2^2+8^2 \}-5\times(0.4)^2=173.2
```

が得られます．これを用いて，一次変換$z$の標準偏差は

```math
s_z=\sqrt{\frac{s_z^2}{n-1}}=\sqrt{\frac{173.2}{5-1}}=6.58
```

となります．したがって，観測値の標準偏差は式(7)より

```math
s_x=\frac{1}{b}s_z=\frac{6.58}{10}=0.658
```

となり，ほぼ**整数の計算のみ**となっていることが分かります．

# まとめ

適当な定数 $a,~b$を掛けたり，引いたりして変換した

```math
z_i=(x_i-a) \times b \tag{再掲6}
```

に対して，その平均$\overline{z}$および標準偏差$s_z$を求める．この時，$s_z$は以下のようにして求めると簡単となる．

```math
s_z^2=\sum_{i=1}^{n} z_i^2 -n\overline{z}^2 \tag{再掲9}
```

この値（$\overline{z},~s_z$）を

```math
\overline{x}=a+\frac{1}{b}\overline{z},~~s_x=\frac{1}{b}s_z \tag{再掲7}
```

に代入して，元のデータの平均 $\overline{x} $ および $s_x$を求める．

# 参考
篠崎，竹内，統計解析入門，サイエンス社，2013年．