Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 Matplotlib로 알파·베타 매개변수를 활용해 감마 분포 그래프 그리는 방법

파이썬에서 알파(α)와 베타(β) 매개변수를 사용하여 감마 분포(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개)를 사용하면 곡선이 훨씬 부드럽게 표현됩니다.