今回は、不偏分散・不偏標準偏差について解説してみます。内容は以下の記事の続きとなっています。
分散と標準偏差とは?株価を使いながらわかりやすく解説してみる
「不偏」分散・標準偏差と分散・標準偏差の違い
いきなりですが、まず分散と不偏分散の数式を比べてみます。
$$s^2=\frac{1}{n-1}\sum_{k=1}^{n} {(x_i-μ)^2}$$
違うのは分母にnを使うかn-1を使うかの違いだけ。
標準偏差も同じです。
$$s=\sqrt{\frac{1}{n}\sum_{k=1}^{n} {(x_i-μ)^2}}$$
$$s=\sqrt{\frac{1}{n-1}\sum_{k=1}^{n} {(x_i-μ)^2}}$$
nと(n-1)の違いとは一体何なんでしょうか。
理論値と実測値にはズレが生じる
その違いを知るヒントは、「理論値と実測値にはズレが生じる」という事実にあります。
pythonを使って実例を見てみます。
import numpy as np
x=np.array([[0,0]])
for i in range(1000):
rand=np.random.randn(100)
a=rand.var()#分散
b=rand.var(ddof=1)#不偏分散
x=np.append(x, np.array([[a,b]]), axis=0)
x=np.delete(x,0, 0)
#分散が理論値1より小さくなった回数
print(len(x[x[:,0]<1]))
numpyモジュールのrandn関数を使って、平均値0、分散1の正規分布に従う100個の乱数を作ります。そして、その乱数の分散と不偏分散を求めます。
さらに、「100個の乱数で分散・不偏分散を求める」という行為を1000回繰り返します。
この時、分散の理論値は1です。そして実測値は1000個の分散になります。
すると、この理論値と実測値にはある傾向が見られます。(ここ重要)
その傾向とは、「実測値は理論値1より小さくなる傾向がある」という傾向です。
実際にやってみると、
1000回中、分散が1より小さくなった回数は545回となります。(乱数なので処理ごとに数値は変わりますが、何回やってもだいたい500回より多くなります)
なぜ実測値の方が理論値よりも小さくなる傾向があるのでしょうか。これは決して偶然ではなくて、実は数式により証明することが可能です。(詳しくは触れませんが)
そして、この「理論値より実測値の方が小さくなる傾向がある」というのを補正して、実測値を理論値に近づけるために用いられるのが不偏分散・不偏標準偏差なのです。
分母をnではなく、n-1にすることで計算結果を少し大きくするわけですね。
ちなみに、サンプルの数(n)が大きくなればなるほど、不偏分散・標準偏差と分散・標準偏差の差は小さくなっていきます。これはnとn-1の比がnが大きくなればなるほど小さくなるからです。
これは、「サンプル数が少ない方が、理論値と実測値の誤差が大きい」ということを言っています。サンプル数が少ない場合には、不偏分散・標準偏差を使うことを検討した方が良いかもしれません。
投資の世界では、不偏標準偏差がよく使われている
投資の世界では不偏標準偏差が頻繁に使われています。
一番有名なのはヒストリカルボラティリティだと思います。株価の値動きの激しさを表す指標です。
$$s=\sqrt{\frac{1}{n-1}\sum_{k=1}^{n} {(x_i-μ)^2}}$$
この不偏標準偏差の式の解釈を
とすれば、そのままヒストリカルボラティリティになります。ボラティリティは、値動きが荒くなってくると大きくなり、狭いレンジ相場なると小さくなります。
この他、ボリンジャーバンドにもこの不偏標準偏差が用いられます。(もしかすると、不偏ではなく普通の標準偏差で計算しているケースもあるかもしれません)
ボリンジャーバンドは不偏標準偏差を求めて、正規分布の次の性質を利用しています。
株価の動きは厳密に正規分布に従わないので、株価の値動きが±3sを超えることも頻繁にありますが、それでも有効なテクニカル指標として多くの方が利用しています。
標準偏差と正規分布について知っておくと、ボリンジャーバンドの活用パターンも増えるかもしれません。
コメント