파이썬에서 알파(α)와 베타(β) 매개변수를 사용하여 감마 분포(Gamma Distribution)를 시각화하려면 SciPy의 gamma.pdf() 함수를 활용하면 됩니다. 이 함수는 확률 밀도 함수(PDF) 값을 계산해 주며, Matplotlib와 함께 사용하면 손쉽게 분포 곡선을 그릴 수 있습니다.
구현 단계
그림 크기(figsize)를 설정하고, 서브플롯 주변 및 사이의 여백을 자동으로 조정합니다.
NumPy의 linspace()로 x축 데이터를 생성하고, gamma.pdf() 함수에 x 값과 매개변수(a, scale)를 전달하여 y값을 계산합니다.
plot() 메서드를 사용해 x, y 데이터를 그래프로 그립니다.
legend() 메서드로 범례를 추가하여 그래프의 매개변수 정보를 표시합니다.
show() 메서드를 호출하여 최종 그래프를 화면에 출력합니다.
예제 코드
import numpy as np import scipy.stats as stats from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.linspace(0, 10, 10) y = stats.gamma.pdf(x, a=5, scale=0.333) plt.plot(x, y, "ro-", label=(r'$\alpha=0, \beta=3$')) plt.legend(loc='upper right') plt.show()
실행 결과
위 코드를 실행하면 빨간색 원형 마커와 실선으로 연결된 감마 분포 곡선이 출력되며, 오른쪽 상단에는 알파와 베타 값을 나타내는 범례가 함께 표시됩니다. 여기서 매개변수 a=5는 형상 매개변수(alpha)에 해당하고, scale=0.333은 척도 매개변수로 베타의 역수(1/β) 역할을 합니다.
참고 사항
SciPy의 감마 분포 함수는 일반적으로 척도(scale) 매개변수를 사용하므로, 베타 형태의 비율(rate) 매개변수를 쓰고 싶다면 scale=1/beta처럼 변환하여 입력하면 됩니다. 또한 np.linspace(0, 10, 10) 대신 더 많은 포인트(예: 1000개)를 사용하면 곡선이 훨씬 부드럽게 표현됩니다.