기본 콘텐츠로 건너뛰기

라벨이 포아송분포인 게시물 표시

[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] 포아송분포(Poisson distribution)

포아송분포(Poisson distribution) 고정된 시간이나 공간에서 일어날 수 있는 사건의 확률을 표현하는 이산분포이며 가장 많이 사용되는 분포 중의 하나로서 확률변수 X는 사건의 수가 됩니다. 그러므로 이 분포는 전체 발생 사건수를 결정할 수 없으므로 전체에 대한 대상 사건의 발생의 비율 즉, 일반적인 확률 개념을 사용할 수 없습니다. 대신에 대상 시간 또는 공간에서의 평균적인 발생횟수를 알 수 있다면 식 1과 같은 분포함수를 적용할 수 있습니다. $$P(X = x) = \frac{e^{-\lambda}\lambda^x}{x!}$$ (식 1) 식 1에서 λ는 사건의 평균발생수를 나타냅니다. 위 식의 확률질량함수를 가지는 포아송 분포는 다음의 전제조건을 갖습니다. 특정한 시간 또는 공간에서 발생하는 사건은 다른 시간, 공간에서 발생하는 결과와 독립이어야 합니다. 단위 시간 또는 공간에 발생하는 사건의 횟수는 동일하여야 합니다. 매우 짧은 시간 또는 매우 작은 공간에서 두 개 이상의 결과가 동시에 발생할 확률은 0이어야 합니다. 모든 범위에서 포아송분포의 확률질량함수는 1이 되어야 하며 식 2와 같이 증명할 수 있습니다. \begin{align}\sum^\infty_{i=1}\frac{e^{-\lambda}\lambda^i}{i!}&=e^{\lambda}\sum^\infty_{i=1}\frac{\lambda^i}{i!}\\&=e^{-\lambda}e^\lambda\\&=1\\ \because\, \sum^\infty_{x=1}\frac{\lambda^x}{x!}&=1+\lambda+\frac{\lambda^2}{2!}+\frac{\lambda^3}{3!}+\cdots\\&\text{Taylor series}\end{align} (식 2) 위 전개과정에서 적용한 테일러 급수 를 sympy의 series() 와 Sum() 함수를 사용하여 확인해 봅니다. l, x = symbols(...