統計学のはじめの一歩：確率分布



[統計学勉強会（仮） # 1](https://connpass.com/event/190685/)で行ったLTの内容備忘録。

前提知識なしの状態の人に向けた統計の初期知識紹介という内容で「確率分布」を紹介した。
スライドを残すついでに説明も残しておく。

#内容

中学数学からはじめる確率統計

## 確率分布とはなにか



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/307b2d0d-0edd-56ee-08d1-925fc084c0ae.png)

そもそも確率分布という言葉はどんなところで出てくるのかというと、ほんとうにいろんなところで出てきます

その種類も複数あって覚えるのは大変なのですが、
この確率分布の性質を知っている前提で分析や調査の手法が作られていたりするので
徐々に覚えていっていただければと思います


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/e24b682d-3fa4-f5c3-70cd-9d4f1640ee4f.png)




## たとえ話



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/5a0afa7b-c288-eb17-b8af-7e215f159021.png)

この青い吹き出しのマークを池だと考えてください

手元に魚が1ひきいた時、池のどこで釣れたか推測してほしい
といわれても、勘と経験でしか回答できません

このままでは情報が少ないので、もう少し情報を集めるために実験を考えてみましょう



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/05e11bbd-a8f6-a96e-1a4e-8e852d7fab4e.png)


魚がどこから釣れたかを考えるために、
色々な釣り場から糸を垂らして、何匹釣れたかを数える実験を行ったとしましょう


つれた数を数えて積み上げてみると、図の積み上げ結果のようになりました。
これでどこで釣れたか聞かれても
良く釣れる場所を観測値から答えることができます




![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/145e0e13-1703-7042-3eeb-d4503271287b.png)






さて、このつれた数を合計数で割ってみると、合計が1になるような数字になります
この値は1以下の値で、確率のように考えられるようになりました。割合です。

確率分布は確率変数がどの程度の確率で現れるか、という定義だったので、
今回の場合、魚の釣れる地点が確率変数で、釣れる確率は積み上げた数を合計1になるように調節した値、という事ができそうです



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/00b168e7-f712-1f8f-b702-558a4a3fffc6.png)



もっと細かい地点で実験を行った場合は図のようにみっちりと結果が得られることでしょう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/3c0404e4-be71-b9d3-6256-990443893fe4.png)

















ここで追加として片側や両側といった言葉の説明をします

魚が逆に釣れることのない場所は？と聞かれた場合どうこたえるでしょうか？



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/ee8ddf5f-ec17-7264-f834-5e15d2f146cb.png)


確率分布が図のように両端がすぼんでいた場合、その地点の確率は非常に小さい値になるので、

「釣れる事が無いわけではないけれども、非常に釣れにくい地点」を答えることが可能になります

この釣れるなんて滅多にアリエナイ範囲を池の右側から選ぶのか、池の両側の地点から均等に選ぶのか
というのが片側や両側の考え方になります

最後の方で少しだけお話するので、なんとなく覚えておいてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/88d13768-0182-3bfa-c5e7-a8511cab9d48.png)


## 確率分布を知るとこんなことが考えられる

世の中には色々な確率分布があり、その性質を使って統計学の手法が成り立っているというお話をしました。


身近な例だと、
偏差値は正規分布の考えかたを元にランク付けされていますし
不良品の発生数はポアソン分布でよく表現することができたり、
ガチャやくじ引きの確率は二項分布で表現できます

コインの話が皆様にも親しみ深いかとおもい、確率分布の一つである二項分布を例として、二項分布の話をすこしだけ紹介します

こんな賭けをしたとしましょう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/b0e8cb11-2894-d089-d242-4794371a3d14.png)


ここで難しいのが、投げて得られる結果は1回だけなんですよね。
さらに、もしも裏表どちらも均等にでるコインだったとしても、
ピッタリ表10裏10にはならないですよね


このような現象を　ばらつく　と言いますが、
このバラツキの範囲を知って、
20回投げた結果、何回が表だったら賭けに乗るかを判断できるようになっていきましょう


## 平行世界を考える

もし、ある確率で表が出るコインを平行世界の自分たちも同じタイミングで投げていたら？
という考え方をするとしましょう


1000の平行世界でそれぞれ結果が少しずつばらついていた場合、その結果を見たら
表の出る確率が何となくわかるかと思います

仮に表が出る確率は0.5として、表裏偏りのないコインを投げた時にどのくらい値がばらつくのかを
このような図で積み上げて表現してみました




```r
#初回だけPCへパッケージをinstall
#install.packages("tidyverse")
#読み込み
library(tidyverse)
#世界線の数
n <- 1000
#投げる回数
size <- 20
#確率
prob <- 0.5
#平行世界の俺たちに投げさせる
res <- rbinom(n,size,prob)
res <- as.tibble(res)
  
ggplot(res, aes(x = value)) + 
  geom_histogram(aes(y=..count..),bins = 50)

res %>% 
  count(value)
```


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/ae5de251-10e6-190a-a740-9977c9d35960.png)



図から10回前後の場合が最も多くなっています。
運の悪い世界では2回しかでないなんてこともあったみたいです

ただ、2回しか出ないという現象は、滅多におこることではないのですが、
実際偏りのないコインでもばらついて2回しか表が出ない。ということは起こりえる、ということが確認できました。

つまりソシャゲガチャでなかなかレアが出ない人はこの運の悪い世界線にいるわけですね。




かたよりのあるコインの場合も確認しておきましょう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/eb3f65ce-e2ab-0a5f-9d10-3999a19f836b.png)



表が出やすいコインでは左の図のように多くの場合10以上表が出ているようですし、
表が出にくいコインでは10よりも小さい値が出るようです




さて、問題は賭けにのるかどうかでしたので、
少なくとも今20回投げた結果を見て、コインが公平な0.5よりも、
表がでる確率が高いようならば賭けに乗りたいところです


##賭けの話にもどる


試しにコインを投げた結果7回が表でした

結果からコインの表が出る確率を調べる方法に最尤推定がありますが、
今回ここはお話しません


複数の平行世界で表が出る確率の異なるコインを投げてもらい、
その結果から、いまの手元にあるコインの確率がどの確率に似ているのかを推定してみたいと思います。

```r
par(mfrow=c(3,3))

for(i in 1:9){
n <- 20
p <- 0.1 * i 
mu <- n*p
sigma <- sqrt(n*p*(1 - p))
x <- seq(0, 20)
y <- dbinom(x,n,p)

plot(x, y, lwd = 4, col = 'gray',las = 1, bty = 'l', yaxs = 'i', ylim = c(0, 0.3),type="n")
lines(x, dnorm(x, mean = mu,sd = sigma), col = 'gray', lwd = 2)
title(main =sprintf('n=%s, p=%.1f', n, p))
abline(v=7,col="red")
}
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/2a310b47-6c23-888c-aa9d-6438312abc64.png)


さっそく、いろんな確率で表がでるコインを平行世界の自分たちに投げてもらいました。
赤い線は7回の地点を表しています


図の左上を見ると、
表が出る確率0.1のコインでは20回投げても7回表が出ることは無さそうですね

0.2の場合では、大変に運がいい人は7回表がでることもあるようです。

0.3,0.4ではなかなか20回中7回表というのは妥当な値のようで

確率は0.6になると運が悪い人は7回しか出ないという情報も分かってきました。

このようにRをつかってシミュレーションしてみると、難しい数式を使わなくても推測ができたりするので便利です

しかし、もちろん確率分布の性質、ここでは二項分布の性質は理解しておかないとできないので、
それは初心者向けの統計学の本で大枠の理解だけはしておきましょう



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/428d4c15-f07d-2dde-3368-c36dce2f652b.png)



まとめると、0.2から0.6までの確率っぽいぞ、ということが言えました。



この結果をもとに、賭けに乗るかどうかはあなた次第ですが、
確率分布の考えがわかっていると、7回表、という情報からここまでかんがえることができるので、
便利ですね。



#以上

今回の全体の流れは、確率分布とはなにか、と、確率分布の使い方の紹介でした


その他紹介
[中学数学からはじめる確率統計](https://www.youtube.com/watch?v=K2cJofUJVO8)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/b854d08f-0140-1144-a30f-87392720dace.png)