パチンコ回転数の推定

# 概要
**パチンコしてますか～？
負けてますか～！！！！？**

**私は負けてま～す**

ということで、パチンコの勝ち負けを考えていきます。
パチンコは基本的に**ボーダー回転数以上なら勝ち**です
一方で台の回転数は確率的に変動するため、**実際の平均回転数がわからないです**。

「**この台はボーダー回転数以上回っているのだろうか・・**」
「**最初は良く回ったんだけどな**」

というのが負けパターンです。

ということで、台の平均回転数（以降、母回転数と呼ぶことにする）を推定することを考えたいと思います。


# 仮定
まず、二項分布つまり

```math
X=
\left\{
\begin{array}{ll}
1 &  (へそが入る)\\
0 & (へそに入らない)
\end{array}
\right.

```
と確率変数を定め、へそに入る確率を$p$とすると、

```math
\begin{eqnarray}
P(X=1) &=& p\\
P(X = 0) &=& 1-p
\end{eqnarray}
```
となり、

```math
S_n = \sum_{i}^{n} X_i
```
と$n$回分の総和とすると、

```math
P(S_n = x) = {}_n C_{x} p^x(1-p)^{n-x} 
```
になります。これは二項分布と呼ばれます。

$S_n$の期待値は（計算法は知らないと解けない）

```math
E[S_n] = np\\
V[S_n] = np(1-p)
```
になります。

## 正規分布で近似する
一番簡単な方法は$S_n$が

```math
E[S_n] = np\\
V[S_n] = np(1-p)
```
を満たす正規分布に従っていると仮定することです。

この場合

```math
Z_n = \frac{S_n - np}{\sqrt{np(1-p)}} \sim N(0,1)
```
といえます。



# 検定問題

> $200$発出して$15$回へそに入りました。母回転数の$95$％信頼区間を求めよ

「$200$発出して、何回はいるか」を何度も繰り返し$S_{200}$を計測します。、$S_{200}$が95％の回数で入る範囲を求めよということです。

この範囲にボーダー回転数が入れば、まだボーダー回転数より回っていないとは言えないです。

ボーダー回転数　=　$np$と考えると

「帰無仮説$H_0$：$np = S_n$」

となります。

棄却域

```math
 Z_n < -1.65
```
となります。この数値以下ならこの台で毎日n発打つを繰り返せば、100日に95日は期待値的に負けます。


## 例
 エヴァのボーダーは$17.8回転/200個$
200発で15回転(ボーダー-2.8回転)だった場合、

```math
Z_n =  \frac{15 - 17.8}{\sqrt{17.8(1-\frac{17.8}{200})}} \\
= -0.695
```
まだ、負けとは限らない感じですね。

1000発で75回転だった場合、

```math
Z_n = -1.555
```

```math
Z_{kn}
 = \sqrt{k} \frac{S_n - np}{\sqrt{np(1-p)}} 
```
を使うと計算が楽です。

2000発で150回転だった場合、

```math
Z_n = -2.199
```
棄却域に入りましたね。毎日2000発打つを繰り返せば、100日に95日以上は期待値的に負けです。

つまり、2000発持っていって回転数を計算すれば確率的に期待値マイナスといえるようになります。

# 推定
パチンコはほとんど負けの台しか置いていないので、上記の検定は全く意味がありません。
ですが、それぞれボーダー-2ぐらいならまだ楽しめるみたいのがあると思います。
なので、打った時の回転数から、母回転数の信頼区間を求めてみようと思います。

母分散も母平均も未知です。

https://toketarou.com/binomial/

を参考にすると,母回転数$np$の95%信頼区間は

```math
S_n -1.96\sqrt{S_n(1-\frac{S_n}{n})} < np < S_n + 1.96\sqrt{S_n(1-\frac{S_n}{n})}
```
になります。


## 例:95%信頼区間

200発で15回転だった場合、

```math
7.669 < np <22.301
```

1000発75回転だった場合

```math
11.734<np<18.265
```

5000発で、15/200だった場合

```math
13.539<np < 16.46
```

区間幅はどんどん減っていきます。
200発の場合はほとんど役に立たない推定になります。
どのくらいの信頼率にすればいいのだろうかな。



# ボーダー回転数－２、－１、０、＋１、＋２に入る確率
95％信頼区間では範囲が広すぎてほとんど意味がありませんでした。
仕方ないので、

```math
Z_n = \frac{S_n - np}{\sqrt{np(1-p)}} \sim N(0,1)
```
を用いて、ボーダー-2,-1,0,+1,+2とした場合、$S_n$が計測される確率を計算します。

200玉使って、$S_{200}$回転回りました。
母回転数が「ボーダー回転数-3~-2」に入る確率を求めよ。

-----

```math
p_{-3}=ボーダー回転数-3\\
p_{-2}=ボーダー回転数-2\\
Z_{-3} = \frac{S_{200} - 200p_{-3}}{\sqrt{200p_{-3}(1-p_{-3})}} \\
Z_{-2} = \frac{S_{200} - 200p_{-2}}{\sqrt{200p_{-2}(1-p_{-2})}} \\
```
を計算し、

```math
P(Z_{-3} < Z < Z_{-2})\\
         (Z \sim N(0,1)とする)
```
を計算します。

### 17.8回/200玉の場合

#### 200玉


ボーダーが17.8回/200玉
200発打って、16回転だった（ボーダー -1.8）。この場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/7bb6abde-fcd7-5985-7ec8-78241fe898cc.png)


どの範囲も8%~10%ぐらいですね。

#### 400玉
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/b8517a2b-6b49-c753-b576-8adf3216394d.png)

#### 1000玉
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/fdf79082-ae28-aaa6-cf5d-7515192fe99e.png)


#### 2500玉
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/65e1ae5d-ea89-6c14-1875-3161315ed9e8.png)

これくらい打つとほとんど、打った時の回転数と母回転数が±2回転内ですね。


# 結論

1. 信頼率95%検定でボーダー回転数以下であることを示すには2000発ぐらいあれば可能であった（計測回転数とボーダーのずれの大きさによる、あと検定で棄却するまで繰り返すやり方は間違っていた気がする）。
1. 200玉での回転数の95%信頼区間幅は15回転と、信頼率が高いとほとんど意味のない推定になる
1. 200玉でボーダー+n回転である確率を計算しても、200玉では推定幅が広いためあまり役に立たない

難しいですね。
あと、打っていると200発当たりの回転数はここまでばらつかないので二項分布であるという仮定に問題がある可能性があります。