베타분포(Beta distribution)
베타분포는 두개의 양의 매개변수를 가지며 [0, 1] 구간에서 정의되는 연속확률 분포의 일종으로 비율, 확률, 백분율 등의 확률변수를 모델링하는데 사용되는 분포입니다.
베타분포의 PDF
$$\begin{align}& f(x; \alpha,\; \beta)=\frac{1}{B(\alpha, \,\beta)}x^{\alpha-1}(1-x)^{\beta-1}\\&0\le x \le 1,\; \alpha, \beta \ge 0\\ & B(\alpha,\, \beta): \text{beta function}\end{align} $$베타함수는 확률밀도 함수의 전체 면적으로 1로 만들기 위한 정규화 상수입니다.
numpy.random.beta(a, b, size=None) 함수로 베타분포를 따르는 표본을 추출할 수 있습니다. 이 표본을 시각화하기 위해 다음 UDF를 작성하여 사용합니다.
import numpy as np from scipy.stats import skew np.random.seed(3) plt.figure(figsize=(5, 3)) arg=[(5,5), (5,2), (2,5)] for i in arg: beta_Shape(i[0], i[1], size=100000) sam=np.random.beta(i[0], i[1], size=100000) print(f'beta({i[0]},{i[1]} )의 중앙값:{np.median(sam).round(5)}, 평균:{np.mean(sam).round(5)}, 왜도:{skew(sam).round(5)}') plt.show()
np.random.seed(3) plt.figure(figsize=(5, 3)) arg=[(5,5), (5,2), (2,5)] for i in arg: beta_Shape(i[0], i[1], size=100000) sam=np.random.beta(i[0], i[1], size=100000) print(f'beta({i[0]},{i[1]} )의 중앙값:{np.median(sam).round(5)}, 평균:{np.mean(sam).round(5)}') plt.show()
beta(5,5 )의 중앙값:0.49992, 평균:0.49959, 왜도:0.00144 beta(5,2 )의 중앙값:0.73664, 평균:0.71478, 왜도:-0.59299 beta(2,5 )의 중앙값:0.26613, 평균:0.287, 왜도:0.59411
- beta(5,5): 정규분포와 같이 좌우 대칭 분포를 보입니다.
- beta(5,2): 왼쪽으로 치우친 분포, 중앙값 > 평균으로 skew < 0
- beta(2,5): 오른쪽으로 치우친 분포, 중앙값 < 평균으로 skew > 0
위 결과와 같이 베타분포는 α와 β의 값에 따라 모양의 변화가 일어납니다.
- α=1,β=1: 균등 분포(Uniform distribution)와 동일한 형태를 가집니다.
- α>1,β>1: 종 모양과 유사한 분포를 가지며, α와 β 값이 클수록 평균 주변에 더 집중된 형태를 보입니다.
- α<1,β<1: U자 모양의 분포를 가집니다.
- α>β: 분포가 오른쪽으로 치우쳐집니다 (양의 왜도).
- α<β: 분포가 왼쪽으로 치우쳐집니다 (음의 왜도).
- α=β: 분포가 대칭적인 형태를 가집니다.
댓글
댓글 쓰기