統計の基礎!平均値と正規分布の話【平均値の罠と嘘。平均値を安易に信じてはいけないという話】


今回は数学のお話です。誰もが知っている「平均値」の話。

 

 

普段何気なく使っている言葉ですが、株やFXのシストレで平均値を使う場合は注意が必要です。

 

 

というのも、我々が日常使う「平均値」のイメージって「真ん中」とか「確率が高い」とかそんなイメージが強いですが、話はもう少し複雑だからです。何も考えずに平均値を過信してシステムを運用してしまうと大損する可能性すらあります。

 

 

結論を先に言ってしまうと、平均値を感覚的に信じて良いのは分布が正規分布の時だけです。

 

 

それ以外の時は、平均値を安易に信用したらダメです。・・・と言うわけで今回は、平均値と正規分布について備忘録的な感じで整理しておきます。(厳密な数学定義とは異なる部分があるかもしれませんので、ご承知おきください)

スポンサーリンク
スポンサーリンク

平均値の定義

まず、平均値の定義を数式で確認しておきましょう。

$$平均値(μ)=\frac{x_1+x_2+・・・+x_n}{n}\\=\frac{1}{n}\sum_{k=1}^{n} x_i$$

 

 

さっそく上の数式を参考にしながら、平均値を使ってはダメな例を挙げてみます。教科書的な例だと、身長とかテストの点数が例として用いられることが多いみたいですが、ここでは株価を例に挙げてみます。

 

 

2つの銘柄があるとします。

 

1つは、仕手株の新興銘柄。値動きが超激しい。A株とします。

 

もう1つは内需系の安定株。値動きは小さめ。B株とします。

 

ここで2つの銘柄の始値と終値の値幅を変動率(パーセント)で比べてみます。+なら、寄りで買って大引けで売ればプラスの収益になります。

日付A株B株
6/1-10%+1.4%
6/2+15%-0.4%
6/3-13%+1.3%
6/4+8%+1.7%
6/5+5%+1%
平均値1%1%

 

実際は、こんな激しい値動きをすることは滅多にないですが、参考例ということで。

 

 

この2つの株。どちらも平均値を計算すると1%ですが、値動きはまるで違いますね。

 

 

「平均値が1%ってことは、ほとんどの場合おおむね1%前後の値動きになるんでしょ」って思いがちですが、A株についてはそうなってはいません。というか、1%台の値動きすらありません。

 

一方で、B株は「平均値1%=1%前後の値動きが多い」になっています。B株では平均値を根拠にして取引しても良さそうに見えます。

 

 

A株とB株で何が違うのかというと、株価の変動率が正規分布に近いかどうかという点です。

世に満ち溢れている正規分布(せいきぶんぷ)

いきなり登場した「正規分布」という言葉。

正規分布とは、

横軸にデータの数値(身長・テストの点数・株価とか色々)
縦軸にその頻度

 

としてヒストグラムを書いたときに上記のような左右対称の山なりの分布になるような分布のことを言います。

 

 

世の中の自然現象の多くはこの正規分布に従うと言われています。それこそ、統計学でよく例題として用いられる身長なんかは良い例です。年間の降水量とか晴れた日の数とかも年ごとにヒストグラムを作ると山なりの形になります。(激しい気候変動がなければ)

 

 

歴史の話をすると、元々は天体観測の精度誤差を調べたりする際に使われていました。

 

 

正規分布の平均値は上の図で言うところの真ん中、山の頂点が平均値になります。つまり一番頻度の高いところがそのまま平均値になるんです。

 

 

「平均値=統計を取ったら一番多く出てくる値」って言う直感的な平均値のイメージは、まさに正規分布における平均値そのものなんですね。

 

 

つまり!「平均値=一番出やすい数字」と考えるには、その対象についてヒストグラムを描いた時に正規分布っぽい形になっているかどうかを必ず確認しないといけないのです。

 

非現実的な激しい値動きをしていたA株の場合、大きいマイナスになる頻度と大きいプラスになる頻度に偏っていて、ヒストグラムを書くとフタコブラクダみたいな形になります。

このヒストグラムの平均値は真ん中の頻度が少ない場所を示すので、平均値はあまり意味のない数字を示すことになります。

 

まとめると

 

平均値が意味ある数字かどうかは確認するには、ヒストグラムが山なり(正規分布っぽい形)になっているかを必ず確認する。

 

と言うことです。

トヨタ株の始値ー終値の変動率をヒストグラムにしてみた

「じゃあ、実際の株価の動きはどうなのよ?」ってわけで、トヨタを例に実際にヒストグラムを書いてみました。

一応、コードを載せておきます。(pythonでjupyter notebookを利用しています。)

%matplotlib inline
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

DATA_PATH='株価データがあるディレクトリ'
code=7203

df=pd.read_csv(DATA_PATH+str(code)+'.csv',index_col=0)
df['ratio']=(df['close']-df['open'])/df['open']*100
his_df=df['ratio']
plt.title('toyota')
plt.xlabel('Rate of change')
plt.ylabel('count')
plt.hist(his_df,bins=100)
plt.savefig('figure.png')

 

結果はこんな感じ!横軸は変動率(%)で縦軸は頻度です。

 

2010年1月1日〜2019年3月1日で計2236日分のデータを使いました。山なりの形になっていることがわかりますね。これなら平均値もある程度は意味のある数字になりそうです。

 

 

ちなみに、分布が正規分布と近似するか否かは、統計学の世界では「山なりっぽいから正規分じゃね?」とか曖昧ではなくて、もっと厳格なチェックをするのですが、ここでは割愛します。

 

 

トヨタ株の場合、平均値を計算してみると約-0.009%でした。毎日、始値で買って、終値で売り続けたらちょっとだけマイナスになります。(陰線になる確率がわずかに高い)

 

 

アベノミクスの期間もしっかり入っているのに、陰線の確率の方が高いのは不思議に感じるかもしれません。ちなみに、日本株は昔から陽線よりも陰線の方が多い傾向があると言われています。

平均値と株価データ

上の例は、システムトレードにも応用できます。

 

例えば、以下はセブン&アイ(3382)のヒストグラム。

 

比較的綺麗な山なりで、平均値は-0.021%でした。この平均値を根拠にして、セブン&アイは空売りを基本に、始値で売って終値で返済する売買条件を考えてみよう!って感じで、アイデアを考えるために使ったりできます。(0.02%じゃ誤差の範囲内かもしれませんがね・・・)

 

 

なお、対象期間を変えると結果が大きく変わったりするので、実運用上はもっと検証をする必要があります。例えば、上の例ではリーマンショックが反映されておらず、この期間をベースに売買条件を作ると暴落局面で悲惨な目に会う可能性があるかもしれません。

 

 

しかし、「ヒストグラムが綺麗な山なりか確認して、平均値を計算する」という手法自体は、統計の王道的な手法であり、株価に限らず日常においても活用できる場面があるように思います。

 

コメント