기본 콘텐츠로 건너뛰기

라벨이 감마분포인 게시물 표시

[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] 감마분포(Gamma Distribution)

감마분포(Gamma Distribution) 확률은 전체 경우의 수 중에서 특정 시건의 비율이므로 확률을 계산하는데 있어 전체 경우의 수를 산정하는 것이 중요합니다. 이산변수의 경우 전체 경우의 수는 계승(factorial)을 사용하여 계산합니다. 연속변수의 경우에서 랜덤변수는 셀수 있는 수가 아니므로 계승을 직접적으로 사용할 수 없습니다. 대신에 계승에 대응하는 적분식을 사용하는데 이 부분을 감마함수 (식 1)로 대체할 수 있습니다. 감마함수를 기본으로 하는 감마분포는 지수 분포와 정규분포와 관련된 분포입니다. 감마함수 Γ(x)로 나타내는 감마함수는 양의 정수 영역에서 factorial 함수의 형태를 가지며 식 1과 같이 정의합니다. 이 식의 첫번째는 이산변수, 두번째는 연속변수를 위한 함수입니다. \begin{align}\tag{1} \Gamma(n)&=(n-1)! , \quad\quad n \in \{1,2,3, \cdots \}\\ &=(n-1)\Gamma(n-1)\\ &=\int^n_0 x^{n-1}e^{-x} ,\quad n > 0 \end{align} (식 1) 예 1) n = 10인 이산변수와 연속변수의 factorial과 감마함수를 계산합니다. factorial은 numpy 또는 scipy의 math 모듈의 factorial() 함수로 계산할 수 있으며 위의 감마함수는 scipy.special의 gamma() 함수로 계산할 수 있습니다. 또한 이 계산은 sympy 패키지의 symbol() 함수와 intergrate() 함수를 사용하여 수행할 수 있습니다. import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy import stats from sympy import * np.math.factorial(10-1) 362880 from scipy import specia...