'중심 극한정리'시뮬레이션(두 가지 분포)
2926 단어 통계학
※ "대다수의 법칙"에 대한 시뮬레이션은 여기.을 참조하십시오.
책에 두 가지 분포와 지수 분포의 시뮬레이션 결과가 실렸는데 이번에 우리는 두 가지 분포를 시뮬레이션하여 여기에 실었다.
■ Python 샘플 코드
# 統計学入門(東京大学出版会)の「中心極限定理」シミュレーション
# [0,1)の乱数を発生させ、0.1未満なら成功(1)、0.1以上なら失敗(0)とする。
# 繰り返し回数n(5,10,20,30,50,100)の二項乱数を250個生成し、標準化した確率分布が
# 正規分布に法則収束するかシミュレーションする。
import numpy as np
import pandas as pd
n_list = [5, 10, 20, 30, 50, 100] # ベルヌーイ試行の回数(n)
N = 250 # 試行回数
p = 0.1 # ベルヌーイ試行の成功確率
z = np.array([]) # 標準化後の確率変数値の格納用リスト
E_list, V_list = [], [] # 平均値、分散の格納用リスト
E_t_list, V_t_list = [], [] # 期待値(理論値)、分散(理論値)の格納用リスト
x = {} # データ可視化用ディクショナリ
for n in n_list:
r_n = np.random.rand(N, n) # 250×n の一様分布を生成
r_n = np.vectorize(lambda x: 1 if x<p else 0)(r_n)
r = np.sum(r_n, axis=1)
E = np.sum(r)/N # 平均値
V = np.sum((r-r.mean())*(r-r.mean()))/N # 分散
E_t = n*p # 期待値(理論値)
V_t = n*p*(1-p) # 分散(理論値)
#z = (r-E_t)/np.sqrt(V_t) # 標準化(理論値)
z = (r-E)/np.sqrt(V) # 標準化
E_list.append(E)
E_t_list.append(E_t)
V_list.append(V)
V_t_list.append(V_t)
x[n] = z
fig, axes = plt.subplots(3, 2, figsize=(10, 8), sharex=True, sharey=False)
# グラフ出力
for ax, n in zip(axes.ravel(), n_list):
ax.set_title('Distribution after standardization - Bi('+str(n)+','+str(p)+')', fontsize = 10)
ax.set_xlabel('Random variable(Z)')
ax.set_ylabel('Frequency')
ax.set_xlim(-4, 4)
ax.grid()
ax.hist(x[n], bins=40)
fig.suptitle('Central limit theorem - Simulation', fontsize = 14)
fig.tight_layout()
plt.show()
# 平均、分散出力
E_V = []
E_V.append(E_list)
E_V.append(E_t_list)
E_V.append(V_list)
E_V.append(V_t_list)
df = pd.DataFrame(E_V, columns=n_list, index=['平均','平均(理論値)','分散','分散(理論値)'])
display(df)
■ 결과
<두 가지 분포 상황에서의 실험 결과>
<평균과 방차>
■ 요약
반복 횟수는 5회→10회→···에서 100회로 늘려 정규 분포된 형태로 변하는 것을 확인했다.책의 평균치와 방차도 그대로 출력했지만 이 수치는 기본적으로 이론치와 같다.확률론은 수학이 증명한 정리이지만 두 가지 분포된 데이터를 모방하여 실제적으로 정규 분포의 느낌을 얻을 수 있고 이해할 수 있다.
Reference
이 문제에 관하여('중심 극한정리'시뮬레이션(두 가지 분포)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sin-nakamura/items/c8f749f34cc930b31425텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)