マルコフ連鎖とは

マルコフ連鎖とは ひとつ前の過去から次に起こる出来事の確率 が計算できる確率過程(この確率過程をマルコフ過程と呼ぶ)のことを言う。

分析手法ではなく状態や概念のことだが、マルコフ連鎖を使うと 確率の掛けあわせで未来を予測する(未来の確率を計算する) こともできる。


ナンバーズの予想に使うには

ナンバーズの予想では、 前回の数字が今回の数字を決定する(単純マルコフ過程)と仮定して推移確率を割り出す ことで次回の数字を予測する。

本書の説明では1回先の未来までしか予想しないが、理論的には2回先、3回先の予想数字の確率を求めることが可能。

推移確率

ナンバーズ予想をやっている人なら「連鎖の回数」みたいな言葉を聞いたことがあるかもしれません。 1 の次に 2 が出た回数や、5 の次に 0 が出た回数のことです。 この「連鎖の回数」を確率に置き換えるのです。

1 の次に 2 が出る確率や、5 の次に 0 が出る確率を 推移確率または遷移確率 と言います。

推移確率を計算するために抽せん数字を100の位、10の位、1の位に分けて分析すると良いと思います。 (もちろん「100の位から10の位」「1の位から100の位」とクロスさせた推移確率も計算できます。)

具体的な連鎖の回数と推移確率の表を下記に掲載します。

100の位における数字の連鎖の回数

表は遷移元の数字が 0 であった場合、遷移先の数字が 0 であった回数は30回と読み取ります。0 の次に 0 が出た回数が30回ということです。

第1回から第4170回: 100の位の数字別 連鎖回数(単位:回)
遷移先の数字 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['遷移先の数字'])

100の位における数字の連鎖の確率(推移確率)

表は遷移元の数字が 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)
第1回から第4170回: 100の位の数字別 推移確率 (単位:%) 小数点第2位未満を四捨五入
遷移先の数字 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日(日)


目次

プロローグ

統計解析

データマイニング

資料集

Back to top