r-statistics-fanの日記

統計好きの現場の臨床医の覚書のようなもの

探偵ファイルのロト6の攻略法!?を分析する

探偵ファイルのロト6の攻略法を分析する

探偵ファイル〜スパイ日記〜/ロト6の攻略法!?/松本企業博士

探偵ファイルで、統計的な記事を見た。 気になったので分析してみた。

#離散値なのでbarplotを使った表に書き直しました 

 

#2014.7.11追記

結構このページヘのアクセスが上位なので、一番言いたいことを

上に持ってきておきます。

ランダムであれば必勝法はあるはずがない。ダマされるな。

 ###追記終了

 

100000回のシミュレーションを行う。

## loto6

loto6 <- function() {
    sample(43, 6, replace = FALSE)
}

nsim <- 1e+05
res <- matrix(0, ncol = 6, nrow = nsim)
sabun <- matrix(0, ncol = 5, nrow = nsim)

for (i in 1:nsim) {
    res[i, ] <- sort(loto6())
    sabun[i, ] <- diff(res[i, ])
}

>第858回には「29、32、33」等の近い番号が偏っているし、
4以内に3つの数字が出ることはどのくらいの頻度でおこるか計算する。
29、32、33 4以内に3つの数字が出ることはどのくらいでおこるか

ninai <- function(x) {
    # 4以内に3つの数が出現するかどうか
    min(x[3:6] - x[1:4]) <= 4
}

sum(apply(res, 1, ninai))/nsim
## [1] 0.2846

29%の回で4以内に3つの数が出現している。全然珍しくない。

直近の高頻出数字は「42」だとも言えそうだ。

# >直近の高頻出数字は「42」だとも言えそうだ。 9回のうち42が4回でている
# 9回のうち、同じ数が4回以上出る率

# >直近の高頻出数字は「42」だとも言えそうだ。 9回のうち42が4回でている
# 9回のうち、同じ数が4回以上出る率

renzoku <- numeric(nsim - 8)
for (i in 1:(nsim - 8)) {
    renzoku[i] <- max(table(res[i:(i + 8), ]))  #一番かぶった回数
}
sum(renzoku >= 4)/length(renzoku)  #72%の確率で何かの数が9回中4回以上で観測される
## [1] 0.7292

barplot(table(renzoku))  #むしろ9回中4個の数字がかぶるのは当たり前

 

連続した9回を抽出した場合、72%の確率で何かの数が9回中4回以上で観測される。 つまりむしろ9回中で4個の数字がかぶるのは当たり前。

sabun.mean <- apply(sabun, 1, mean)
mean(sabun.mean)  #差分の平均値 6.3弱ってところか
## [1] 6.292
median(sabun.mean)
## [1] 6.4
summary(sabun.mean)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    5.40    6.40    6.29    7.20    8.40

barplot(table(sabun.mean))

 

table(sabun.mean)
## sabun.mean
##    1  1.2  1.4  1.6  1.8    2  2.2  2.4  2.6  2.8    3  3.2  3.4  3.6  3.8 
##    1    2    9   17   37   65   93  152  236  349  460  606  758  953 1210 
##    4  4.2  4.4  4.6  4.8    5  5.2  5.4  5.6  5.8    6  6.2  6.4  6.6  6.8 
## 1485 1751 1995 2445 2642 3135 3519 3872 4273 4658 4983 5612 5672 5913 6254 
##    7  7.2  7.4  7.6  7.8    8  8.2  8.4 
## 6164 6067 5736 5367 4769 4011 3071 1658
quantile(sabun.mean, p = c(0.025, 0.975))
##  2.5% 97.5% 
##   3.4   8.2
記事中に「差分の平均値は約7.1に収束」とあるが
平均の平均は6.292だしmedianは6.4のようで7.1と乖離が大きい。
しかし、飛び飛びの値しか取らないので表を見ると
7が6164回
7.2が6067回
であり、7又は7.2(7.1くらいと表現可能か)が最頻値になる。
しかし最頻値を”収束する”と表現するのにはやや違和感が残るところである。
 
# 差分が1-15の間で均等というが本当にそうか
barplot(table(sabun))

 


sabun.r <- sum(sabun <= 15)/length(sabun)
sabun.r  #1-15までの差分が観測される率
## [1] 0.9385

例では41連続で差分は15以下しか観測されていない。 一方、横に回数が書いてあり少なくともロト6では850回のデータが有る 連続した850回=850*5個の差分データが有れば、どの程度の確率で41連続15以下が続く部分を発見できるか。 ロケみつのサイコロの統計で自作した関数(

ロケミツのサイコロの統計その2(連続して1が出ないのが20回続いたらイカサマ?) - r-statistics-fanの日記

)を使用する

prenzoku <- function(m, q, r) {
    pren <- numeric(m - r + 1)

    pren[1] <- q^r
    pren[2:(r + 1)] <- (1 - q) * q^r

    for (i in (r + 2):(m - r + 1)) {
        pren[i] <- (1 - q) * q^r * (1 - sum(pren[1:(i - r - 1)]))
    }

    return(sum(pren))  #答えの確率
}

prenzoku(850, sabun.r, 41)
## [1] 0.9914
 

むしろ99%の確率で41連続差分15以下の部分を探すことが出来る つまり、このようなデータを恣意的に探して提示できるのはあたりまえ。

しかし、好意的に解釈すると恣意的ではなく、ランダムにこの部分のデータを 抽出したのかもしれない。 41連続で15以下が続く確率を求める

sabun.r^41
## [1] 0.07423

7%くらいで起こりうる。それなりに珍しいが、たまたまそういう部分が抽出されてもおかしくない程度。

## 差分の標準偏差とCV
sabun.sd <- apply(sabun, 1, sd)
sabun.cv <- sabun.sd/sabun.mean

hist(sabun.sd)  #差分の標準偏差

 

quantile(sabun.sd, p = c(0.025, 0.975))
##  2.5% 97.5% 
## 1.673 9.680
hist(sabun.cv)  #差分のCV

 

quantile(sabun.cv, p = c(0.025, 0.975))
##   2.5%  97.5% 
## 0.3353 1.3827

ということで、ランダムであれば、当たり前に観測されることを 色々と書いているに過ぎない。

ランダムであれば必勝法はあるはずがない。 必勝法があるとすれば、数字の選び方に何か欠格があり ランダムになっていない場合くらいだが、考えにくいだろう。

あとは、ラッキーにも当選した時に単独当選なら金額が有利になるらしいので、

他人が選びにくい組合せにするというのはある程度有効だろう。(そもそも当たらないだろうから意味が無いが)