この記事はR Advent Calendar2016 9日目の記事です
see : R Advent Calendar 2016
##Summary
とつぜんですが、ロト6をあててお金もちになりたいです!callmekohei
は!
で、R言語
を使ってロト6の予測をしてみたいと思います!
Method
ロト6をあてるために
当たりやすい数字を組み合わせたいと思います
で、過去の実績から当たりやすい数字を調べてみます
Past data
みずほ銀行のホームページから過去の出目が公開されているのでこれをゲット!
こんな感じのcsv
データーにします。
1,2000/10/05,02,08,10,13,27,30
2,2000/10/12,01,09,16,20,21,43
3,2000/10/19,01,05,15,31,36,38
...
...
1128,2016/12/01,03,15,21,29,30,35
1129,2016/12/05,06,11,19,28,30,43
1130,2016/12/08,01,11,37,38,39,42
###Vivid numbers
よく出る数字があるかどうか調べてみます
// 各数字ごとの当選回数をしらべる
~$ cat loto6.csv | csvcut -c 3,4,5,6,7,8 | tr ',' '\n' | sort -n | uniq -c | awk -F ' ' '{print $2 " " $1}' | column -c 50
01 145 09 137 17 152 25 161 33 150 41 143
02 155 10 164 18 156 26 153 34 149 42 157
03 157 11 153 19 159 27 181 35 158 43 160
04 151 12 173 20 160 28 158 36 159
05 154 13 158 21 165 29 145 37 169
06 174 14 157 22 163 30 162 38 175
07 143 15 163 23 167 31 164 39 165
08 159 16 158 24 145 32 156 40 147
// 各数字ごとの当選回数をグラフにしてみる
~$ cat loto6.csv | csvcut -c 3,4,5,6,7,8 | tr ',' '\n' | sort -n | uniq -c | awk -F ' ' '{print $2 " " $1}'|feedgnuplot --terminal 'dumb 60,25' --points --domain --unset grid --exit
185 +-+---+----+-----+----+-----+----+-----+----+---+-+
+ + + + + + + + + +
180 +-+ A +-+
| |
175 +-+ A A +-+
| A |
170 +-+ A +-+
| A |
165 +-+ A A A A +-+
| A A A |
160 +-+ A AA A A A-+
| A A A A A A A |
155 +-A A A A +-+
| A A A |
150 +-+ A AA +-+
| A |
145 +A+ A A +-+
| A A |
140 +-+ +-+
+ + A+ + + + + + + +
135 +-+---+----+-----+----+-----+----+-----+----+---+-+
0 5 10 15 20 25 30 35 40 45
うむむむ
ざっとみとくになさそう
Chaos
ランダムに出目がでてるか確認してみます
たとえば1から42の数字をテキトウに選ぶときの確率を調べてみます
~$ echo x | rio -e '1 - pchisq(10,42,lower.tail=T)'
0.9999999
実際の出目だとどうなのかテストしてみます
// 各数字ごとの当選回数をソートしたデーターを用意
freq='137,143,143,145,145,145,147,149,150,151,152,153,153,154,155,156,156,157,157,157,158,158,158,158,159,159,159,160,160,161,162,163,163,164,164,165,165,167,169,173,174,175,181'
// テストしてみる
echo x | rio -e 'chisq.test(c('$freq'))'
// 結果
Chi-squared test for given probabilities
data: c(137, 143, 143, 145, 145, 145, 147, 149, 150, 151, 152, 153, 153, 154, 155, 156, 156, 157, 157, 157, 158, 158, 158, 158, 159, 159, 159, 160, 160, 161, 162, 163, 163, 164, 164, 165, 165, 167, 169, 173, 174, 175, 181)
X-squared = 22.752, df = 42, p-value = 0.9933
ふむふむ。
理論上0.9999999
実際の出目は0.9933
これをどう捉えるかなんですが、、、
##Conclusion
たぶんでたらめに数字がでてるので、予想できない(かもしれない)
予想できんじゃん
はふーん