本ページには広告・プロモーションが含まれています。
マルコフ連鎖とは ひとつ前の過去から次に起こる出来事の確率 が計算できる確率過程(この確率過程をマルコフ過程と呼ぶ)のことを言う。
分析手法ではなく状態や概念のことだが、マルコフ連鎖を使うと 確率の掛けあわせで未来を予測する(未来の確率を計算する) こともできる。
ナンバーズの予想では、 前回の数字が今回の数字を決定する(単純マルコフ過程)と仮定して推移確率を割り出す ことで次回の数字を予測する。
本書の説明では1回先の未来までしか予想しないが、理論的には2回先、3回先の予想数字の確率を求めることが可能。
ナンバーズ予想をやっている人なら「連鎖の回数」みたいな言葉を聞いたことがあるかもしれません。 1 の次に 2 が出た回数や、5 の次に 0 が出た回数のことです。 この「連鎖の回数」を確率に置き換えるのです。
1 の次に 2 が出る確率や、5 の次に 0 が出る確率を 推移確率または遷移確率 と言います。
推移確率を計算するために抽せん数字を100の位、10の位、1の位に分けて分析すると良いと思います。 (もちろん「100の位から10の位」「1の位から100の位」とクロスさせた推移確率も計算できます。)
具体的な連鎖の回数と推移確率の表を下記に掲載します。
表は遷移元の数字が 0 であった場合、遷移先の数字が 0 であった回数は30回と読み取ります。0 の次に 0 が出た回数が30回ということです。
遷移先の数字 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|---|
遷移元の数字 | ||||||||||
0 | 30 | 38 | 52 | 34 | 37 | 44 | 42 | 32 | 37 | 43 |
1 | 50 | 46 | 46 | 53 | 43 | 39 | 30 | 33 | 44 | 36 |
2 | 37 | 45 | 41 | 51 | 45 | 36 | 35 | 41 | 49 | 42 |
3 | 43 | 31 | 51 | 41 | 31 | 42 | 59 | 37 | 39 | 36 |
4 | 37 | 37 | 40 | 39 | 48 | 38 | 40 | 44 | 35 | 54 |
5 | 38 | 37 | 29 | 41 | 31 | 34 | 41 | 38 | 52 | 49 |
6 | 44 | 53 | 32 | 40 | 51 | 38 | 41 | 47 | 47 | 36 |
7 | 40 | 42 | 40 | 36 | 44 | 34 | 41 | 38 | 44 | 43 |
8 | 41 | 39 | 52 | 32 | 40 | 51 | 55 | 40 | 43 | 53 |
9 | 29 | 51 | 40 | 43 | 42 | 34 | 45 | 52 | 56 | 57 |
上の表は 前準備 で用意した python のデータフレームを使って、作成しています。
# 回号を1回分ずらしたデータフレームを作成
p100_shifted = pd.DataFrame(data={'遷移元の数字': df.place100.astype(int),
'遷移先の数字': df.place100.shift(-1)
},
index=df.index)
p100_shifted.dropna(inplace=True)
p100_shifted = p100_shifted.astype(np.int)
# 連鎖回数の表を pandas.crosstab で作成
pd.crosstab(index=p100_shifted['遷移元の数字'], columns=p100_shifted['遷移先の数字'])
表は遷移元の数字が 0 であった場合、遷移先の数字が 0 になる確率は 7.71% と読み取ります。0 の次に 0 が出た確率が 7.71% あるということです。
p100_chain = pd.crosstab(index=p100_shifted['遷移元の数字'], columns=p100_shifted['遷移先の数字'])
p100_chain.apply(lambda x: np.around(x / x.sum() * 100, decimals=2), axis=1)
遷移先の数字 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|---|
遷移元の数字 | ||||||||||
0 | 7.71 | 9.77 | 13.37 | 8.74 | 9.51 | 11.31 | 10.80 | 8.23 | 9.51 | 11.05 |
1 | 11.90 | 10.95 | 10.95 | 12.62 | 10.24 | 9.29 | 7.14 | 7.86 | 10.48 | 8.57 |
2 | 8.77 | 10.66 | 9.72 | 12.09 | 10.66 | 8.53 | 8.29 | 9.72 | 11.61 | 9.95 |
3 | 10.49 | 7.56 | 12.44 | 10.00 | 7.56 | 10.24 | 14.39 | 9.02 | 9.51 | 8.78 |
4 | 8.98 | 8.98 | 9.71 | 9.47 | 11.65 | 9.22 | 9.71 | 10.68 | 8.50 | 13.11 |
5 | 9.74 | 9.49 | 7.44 | 10.51 | 7.95 | 8.72 | 10.51 | 9.74 | 13.33 | 12.56 |
6 | 10.26 | 12.35 | 7.46 | 9.32 | 11.89 | 8.86 | 9.56 | 10.96 | 10.96 | 8.39 |
7 | 9.95 | 10.45 | 9.95 | 8.96 | 10.95 | 8.46 | 10.20 | 9.45 | 10.95 | 10.70 |
8 | 9.19 | 8.74 | 11.66 | 7.17 | 8.97 | 11.43 | 12.33 | 8.97 | 9.64 | 11.88 |
9 | 6.46 | 11.36 | 8.91 | 9.58 | 9.35 | 7.57 | 10.02 | 11.58 | 12.47 | 12.69 |
注意点としては、推移確率はどの行も総和は 1 (100%) である ということです。 ※四捨五入の関係で 100% ではない行もあります。
推移確率の計算式:
連鎖回数 ÷ 行の総和 = 推移確率 例: 遷移元「0」遷移先「0」の場合 30 ÷ 389 = 0.07712082262210797
推移確率の表に基づいて未来の数字を予想するのですが、「遷移元の数字を最新回号の数字として、遷移先の数字で確率が最も高いものを次回の予想抽せん数字とする」ことです。
例えば第4175回の抽せん数字は「086」でした。100の位の数字は「0」なので、遷移先の確率が 13.37% と最も高い「2」が次回の予想数字となります。
最終更新日: 2020年01月19日(日)