기본 콘텐츠로 건너뛰기

라벨이 초기하분포인 게시물 표시

[matplotlib]quiver()함수

확률, 통계 관련 그래프

다음 그래프들은 전자책 파이썬과 함께하는 통계이야기 3 장에 수록된 그림들의 코드들입니다. import numpy as np import pandas as pd from scipy import stats import matplotlib.pyplot as plt import seaborn as sns sns.set_style("darkgrid") #fig 311 uni, p=[0, 1, 2],[0.25, 0.5, 0.25] fig, ax=plt.subplots(figsize=(4,3)) ax.bar(uni, p, color="g", alpha=0.3) ax.set_xlabel("# of head(H)") ax.set_ylabel("PMF") ax.set_yticks(p) ax.set_xticks(uni) plt.show() #fig 312 import itertools ca=list(itertools.product(range(1, 7), repeat=2)) S=[sum(i) for i in ca] uni, fre=np.unique(S, return_counts=True) fresum=sum(fre) p=[i/fresum for i in fre] fig, ax=plt.subplots(figsize=(4,3)) ax.bar(uni, p, color="g", alpha=0.3) ax.set_xlabel("Sum of number") ax.set_ylabel("PMF") ax.set_yticks(np.array(p).round(3)) ax.set_xticks(uni) plt.show() #fig 313 ca=list(itertools.product([0, 1], repeat=2)) S=[sum(i) for i in ca] uni, fre=np.unique(S, return_counts=True) re=pd.DataFrame([...

[data analysis] 초기하분포(Hypergeometric distribution)

초기하분포(Hypergeometric distribution) 초기하분포(Hypergeometric distribution) 란 N개 중에 n번 비복원 추출하는 경우 x번 성공확률의 분포이다. 예를 들어 5개의 파란공과 3개의 빨간공이 포함되어 있는 주머니에서 2개의 공을 선택하면 그 공이 모두 파란 공일 확률은식 1과 같이 계산할 수 있습니다. $$\frac{\binom{5}{0} \binom{3}{2}}{\binom{8}{2}}$$ (식 1) p=special.comb(5,0)*special.comb(3,2)/special.comb(8, 2) round(p, 3) 0.107 이 시행은 모집단에서 선택할 공의 수에 대한 조건과 최종 성공을 위한 조건을 만족하여야 합니다. 즉, 두 가지 조건에 따른 시행은 선택된 파란공의 수가 랜덤변수(X)로 하면 표본공간은 S x = {0, 1, 2}로 정의할 수 있습니다. 각 변수에 대응하는 확률의 변화는 초기하분포에 부합하며 식 2와 같이 나타냅니다. X ∼ hypergeom(N, m, n) (식 2) N : 모집단 수 m : 성공경우의 총수 n : 총 시행횟수 식 1에서 확률변수 x의 변화에 의해 생성되는 초기하 분포는 hypergeom(8, 3, 2)으로 나타낼 수 있습니다. 이 식을 확률변수 x에 대해 일반화한 초기하분포의 확률질량함수는 식 3과 같이 정의됩니다. \begin{align}f(x) &= P(X=x)\\&=\frac{\binom{m}{x} \binom{N-m}{n-x}}{\binom{N}{n}} \end{align} (식 3) 초기하분포의 통계량들은 scipy.stats 모듈의 hypergeom() 클래스로 계산할 수 있습니다. x=2; M=8; n=3; N=2 round(stats.hypergeom.pmf(x, M, n, N),3) 0.107 확률변수 x에 대해 PMF를 계산하면 다음과 같습니다. p=stats.hypergeom.pmf(...