カイ二乗分布を実験的に確認する

#カイ二乗分布
https://manabitimes.jp/math/1083

こちらが非常にわかりやすいです。

```math
確率変数 X_1,X_2,\cdots,X_n
​
  が\\
互いに独立に標準正規分布 N(0,1)に従うとき，\\
X=X_1^2+X_2^2+\cdots +X_n^2
​
  は自由度 n のカイ二乗分布に従う

```

今回は正規分布に従う変数をn個用意し、二乗和のヒストグラムを作成する。

#プログラム

```python
import numpy as np
import matplotlib.pyplot as plt
 
from scipy.stats import norm
import matplotlib.pyplot as plt




n = 5
sample = 1000000


a = np.random.normal(
    loc   = 0,      # 平均
    scale = 1,      # 標準偏差
    size  = (sample ,n),# 出力配列のサイズ
)

b = np.power(a,2)     #要素二乗
b = np.sum(b,axis =1) #行で和を取る


plt.hist(b,bins=100)
plt.xlim(-3,20)

```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/3ab23d7e-870c-2007-228f-93735f44fde3.png)
ちゃんとカイ二乗分布が掛けました。これは自由度5のカイ二乗分布です。

#自由度nごとのカイ二乗分布
###1
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/72676c26-ef35-5fec-ae6c-b508ab2153d2.png)

###2
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/df376f9d-1d62-890e-c7ce-6a0f2006445d.png)

###3
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/83b41874-4fcc-0588-11c2-c9deb4d2db28.png)

###4
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/41977642-f086-b8ff-ef67-5887ef300152.png)

###5
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/831cb4ce-28cd-553f-5b03-760c150d4593.png)

###10
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/926e9789-4251-6877-75db-7804c8b9ab2c.png)

以上をまとめて、グラフにすると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/2d0191f7-3707-fda8-1fb3-9b5930f5d177.png)

ちょっとずつ右にずれていっているのがわかります。

```python
import numpy as np
import matplotlib.pyplot as plt
 
from scipy.stats import norm
import matplotlib.pyplot as plt



ans = []

for i in range(1,10,1):
    print(i)
    
    n = i
    sample = 1000000
    
    
    a = np.random.normal(
        loc   = 0,      # 平均
        scale = 1,      # 標準偏差
        size  = (sample ,n),# 出力配列のサイズ
    )
    
    """
    分散　　平均0
    """
    b = a - 0
    b = np.power(b,2)     #要素二乗
    b = np.sum(b,axis =1) #行で和を取る
    ans.append(b)


fig, ax = plt.subplots()

for i in range(1,10,1):
    ax.hist(ans[i-1],bins=100,alpha = 0.5,label = str(i))

ax.legend()
ax.set_xlim(-3,20)

plt.show()
```


#追記：自由度n-1はどこから来たか
今、サンプル（標本集団）を標準正規分布 N(0,1)から持ってきました。
つまり、母集団は標準正規分布 N(0,1)と考えてました。
平均が0だと考えているので、サンプルの分散は

```math
(x_1 - 0)^2 + \cdots (x_n - 0)^2 \\
=x_1^2 +\cdots +x_n^2
```
でした。

ここで、サンプル（標本集団）には母集団の平均がわからなかったとしましょう。
**そこで、分散を計算するのに、サンプルの平均を使うことにしました。**(ここがn-1の由来)


実際に、先ほどのプログラムを書き換えてみます。

```python

import numpy as np
import matplotlib.pyplot as plt
 
from scipy.stats import norm
import matplotlib.pyplot as plt




n = 3
sample = 1000000


a = np.random.normal(
    loc   = 0,      # 平均
    scale = 1,      # 標準偏差
    size  = (sample ,n),# 出力配列のサイズ
)

"""
分散　　平均0
"""
b = a - 0
b = np.power(b,2)     #要素二乗
b = np.sum(b,axis =1) #行で和を取る


"""
サンプル分散　平均：サンプル平均
"""
average = np.mean(a,axis = 1,keepdims=True)  #サンプル平均を計算
b2 = a - average         #サンプル平均を引く

b2 = np.power(b2,2)     #要素二乗
b2 = np.sum(b2,axis =1) #行で和を取る



fig, ax = plt.subplots()

ax.hist(b,bins=100,alpha = 0.5,label = "population average")
ax.hist(b2,bins=100,alpha = 0.5,label = "sample average")

ax.legend()
ax.set_xlim(-3,20)

plt.show()
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/a3bc0354-83a5-0b27-58ea-7e75f9869534.png)

こんな感じになり、ちゃんと分布が変わっていることがわかります。

###n=2(標本集合各要素数2)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/d5564787-56bc-8ef4-7021-19d75b70a856.png)

###3
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/fd8fe845-6677-d8a9-9535-cef124937c26.png)


###4
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/f0415dd6-a7f5-8292-4a93-cae6f9856bb9.png)

###5
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/02533f35-ba70-d1f6-11c6-98b6c8289b4c.png)

###6
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/30c95970-6422-aad1-268b-99d52de7b1d9.png)


数値実験でも、平均をサンプル平均で代用すると、二乗和の分布は(n-1)自由度のカイ二乗分布になることが確かめられました！