본문 바로가기

확률론과 수리통계

베타분포의 응용

지난 글에서 베타분포를 이해해보았다. 우리의 이해에 따르면, 베타분포는 확률을 확률변수로 놓고 모델링하는 분포이다. 즉, 베타분포의 확률밀도함수는 확률의 확률밀도함수이고, 결국 ‘확률의 확률’을 묘사하는 것이다. 베타분포가 묘사하는 것이 ‘확률의 확률’이라니, 뭔가 엄청난 응용가치가 숨겨져 있을 것 같다.

2022.10.02 - [확률론과 수리통계] - 베타분포의 이해

#1. 게임의 승률

실생활에서 확률은 결코 어떤 고정된 값이 아니라, 시시각각 변하는 모종의 확률변수이다.

예를 들어, 내가 어떤 게임을 하는데 ‘승률이 0.8이야!’라고 어느 상황에서든지 말할 수 있을까? 여기서 ‘승률’이란, 지금까지의 전적을 통해 계산한 승리 빈도수인 (승리 횟수/플레이횟수)가 아니라, 문자 그대로 지금 당장 내가 게임을 한 판 했을 때 이길 확률을 말한다.

내가 컨디션이 좋은 상황에서는 승률이 0.8이지만, 컨디션이 나쁠 때는 승률이 0.5로 내려갈 수도 있다. 승률은 나의 컨디션 뿐만 아니라, 게임 내 상황변수에 따라서도 영향을 받을 것이다. 격투게임을 한다고 하자, 적이 근접캐릭터인데 HP최대치가 낮고(유리몸) 딜도 시원치 않은 반면, 내가 원거리캐릭터인데 각종 회피기로 무장한 사기캐릭터의 경우, 당연히 승률은 올라간다. 그 반대의 경우, 승률은 내려간다.

note: (승리 횟수/플레이횟수)에서 플레이횟수를 무한대로 늘릴경우, 이 값은 문자 그대로의 승률에 수렴한다. 이른바 큰 수의 법칙(Law of Large Numbers, LLN; 大数定律)이다. 여기서는 그렇게 게임을 많이 하지 않았다고 하자.

하지만 사람들이 흔히 언급하는 승률은 고정된 값인 (승리 횟수/플레이횟수)이다. 이렇게 승률을 고정된 값으로 표현하는 것은 상황에 따라 일리가 있다. 예를 들어 플레이어 A의 전적이 1578승 2097패라고 하자. 승리빈도는 0.42이다. 이때, 이 플레이어의 승률도 0.42라고 표현하는 것이 대체 무슨 문제가 있단 말인가? 이 전적을 얻기 위해 A는 충분히 많은 게임을 거쳤다. 그러므로 A의 이 전적은 믿음직스럽다. 이럴 때는 승률이 0.42가 아니라고 하는 것이 오히려 이상하지 않을까?

또 다른 예를 들어보자. 플레이어 B의 전적이 2승 3패라고 하자. 우리의 경험에 비추어 보면, 이럴 때는 승률이 0.4라고 단언하는 것이 오히려 더 이상하다. B는 충분히 많은 게임을 하지 않았다. 단 5판의 플레이로 무엇을 판단하는 것은 우리의 경험에 비추어 볼 때 믿음직스럽지 못하다.

이렇듯 승률을 이야기하려면 믿음직스러운 전적이 기본이며, 전적이 믿음직스럽지 못할 때는 전적을 가지고 승률을 이야기 할 수는 없는 노릇이다. 그렇다면 믿음직스러운것과 그렇지 않은 것은 수학적으로 어떻게 나타낼 수 있을까?

우선 믿음직스럽다고 생각되는 전적인 1578승 2097패를 지난 글(베타분포의 이해)에서 설명한 베타분포로 모델링해보자. 이러한 전적을 가진 플레이어의 승률을 확률변수 X라고 놓겠다. 또, 각 게임은 독립적으로, 서로 다른 게임간 승률에 영향을 미치지 않는다고 가정하겠다. 이렇게 가정하면, $X \sim \mathrm{Beta}(1579, 2098)$임을 알 수 있다.

note: 베타분포 $\mathrm{Beta}(\alpha, \beta)$에서, 성공과 실패의 횟수를 $(\alpha -1,\beta -1)$로 정의했음을 상기하자. 그러므로 $X \sim \mathrm{Beta}(1578, 2097)$이 아니고, $X \sim \mathrm{Beta}(1577, 2096)$은 더더욱 아니다. 실수하기 쉬우니 주의하자. 헷갈린다면 아무 게임도 하지 않은 상태가 $X \sim \mathrm{Beta}(1, 1)$임을 기억하자. 아무 게임도 하지 않았으므로, 이 상태에서 성공과 실패의 횟수는 모두 0이다.

이제 이에 해당하는 PDF를 그리자.

https://homepage.stat.uiowa.edu/~mbognar/applets/beta.html

이 분포의 PDF를 관찰하면 $X = 0.4$근처에서 확률밀도가 매우 높음을 알 수 있다. 즉 플레이어 A의 승률이 0.42 근처에 있을 확률이 비교적 높고, 오히려 다른 값에 있는 경우가 극단적인 경우에 속한다. 데이터는 평균인 0.42 근처에 집중적으로 관찰되며, 분산은 0.0001로 매우 작다. 그러므로 이 플레이어가 자신의 승률이 0.42정도라고 말한다면 그 말이 믿음직스러운 것이다.

이제 믿음직스럽지 않은 전적인 2승 3패도 모델링해보자. 승률을 확률변수 $X$라고 놓으면, $X \sim \mathrm{Beta}(3,4)$이고, PDF는 다음 그림과 같다.

https://homepage.stat.uiowa.edu/~mbognar/applets/beta.html

PDF를 보면 플레이어 B의 승률이 특정한 값에 밀집되어있다고는 할 수 없고, 대략 0.2~0.6사이에 비교적 많이 분포한다고 할 수 있다. 승률이 0.2일 수도 있고, 0.6일 수도 있다는 것이다. 그러므로 이 플레이어가 자신의 승률이 0.4라고 한다면 믿음직스럽지 못하다.

그렇다면 믿음직스럽지 않은 전적이 믿음직스러워지려면, 어떻게 해야할까? 정답은 플레이 횟수를 충분히 늘리는 것이다. 이기든 지든, 판수를 늘린다면, 베타분포는 점점 특정한 하나의 값에 밀집되어있는 형태를 갖는다. 플레이어 B는 판수를 늘려 자신의 승률을 충분히 변화시킬 기회가 있다. 이것은 우리의 직관과도 일치한다.

이와 같이 시행횟수를 늘려 베타분포를 변화시키는 것은 베이즈 추정법(Bayesian Estimation; 贝叶斯估计)의 전형적인 예시이다. 흔히 베타분포의 통계학에서의 응용가치를 논하라고 하면 이 베이즈 추정법을 많이 언급한다. 지금은 이해가 되지 않더라도 다음과 같은 문장을 기억하자.

$$
\mathrm{“베타분포는\enspace베이즈\enspace추정법에서\enspace이항분포의\enspace켤레사전분포로\enspace쓰인다.”}
$$

#2. 승산없는 가챠

나는 모바일 게임을 즐기는 편인데, 모바일 게임은 대부분 가챠(랜덤뽑기)를 포함하고 있다. 내가 하는 어떤 게임은 게임사의 표기가 사실이라면, 가챠를 돌릴 때 50%의 확률로 원하는 픽업 캐릭터를 얻을 수 있고, 50%의 확률로 원하지 않는 꽝 캐릭터를 얻게 된다.

내가 가챠를 총 10번 돌렸는데 10번 모두 원하지 않는 꽝 캐릭터를 얻었다. 이에 나는 게임사가 표기한 이 50%의 확률이 거짓이라고 생각하며, 친구들에게 물어보았다. 친구들은 A, B, C의 3명이고, 내가 10번의 가챠를 해서 10번 모두 꽝을 뽑았다는 사실을 모르며, 이에 대해 다음과 같은 의견들을 제시하였다.

$\space$


A: 몰?루 아무튼 확률은 0에서 1사이 아닐까?

B: 아무튼 확률이 50%가 맞다. 게임사가 미쳤다고 그걸 조작하겠냐?

C: 당연히 주작이지 ㅋㅋ 원래 가챠는 천장칠 때까지 하는거야.


$\space$

나는 베이즈 추정법으로 가챠가 실제로 성공할 확률을 추정하려고 한다. 가챠성공률을 확률변수 $\Theta$로 놓자. 본격적인 분석에 들어가기 전에, 베이즈 추정법을 정리하고 넘어가자.

베이즈 추정법에서, 관찰된 데이터 $X$를 보고 확률변수 $\Theta$의 분포를 추정하는 식은 다음과 같다.

$$
f_{\Theta \mid X}(\theta \mid x) = \frac{f_{X \mid \Theta}(x \mid \theta)f_{\Theta}(\theta)}{f_{X}(x)}
$$

식에서 각 부분의 의미를 살펴보자:

표에 제시된 식의 순서는 베이즈 추정의 작업순서와 같다. 즉, 사전확률, 가능도를 정의하고 증거를 수집한 후, 사후확률을 추정한다. 이제 베이즈 추정을 본격적으로 시작해보자.

$\space$

Step1. 사전확률

베이즈 추정법의 출발점은 사전확률을 정의하는 것이다. 가챠성공률을 확률변수 $\Theta$로 놓았을 때, 데이터를 관측하기 전, 우리는 이 $\Theta$에 대해 어떤 정보를 알고 있는가? 아마도 친구 A의 사전지식인 $\Theta \in [0,1]$은 모두가 동의할 것이다. 하지만 구체적으로 이 $\Theta$가 어떤 분포를 따르는지는, 모두 의견이 분분하다. 친구 A에 따르면, $\Theta \sim U(0,1)$이다. 친구 B는 확률밀도값이 0.5근처에서 가장 크다고 여긴다. 친구 C는 확률밀도 값이 0근처에서 가장 크다고 여긴다.

가챠를 돌리기전, 즉 데이터를 관측하기 전의 나는 친구 B의 입장과 가까웠다. 그런데 가챠를 돌린후 친구 C의 입장과 비슷해졌다. 이를 수학적으로 어떻게 모델링할 수 있을까? 우선 각 입장을 묘사하는 PDF를 그려보자.

<hide/>
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import beta

x=np.linspace(0,1.5,1000)

a1, b1 = 1, 1
rv1 = beta(a1, b1)
frv1 = rv1.pdf(x)

a2, b2 = 5, 5
rv2 = beta(a2, b2)
frv2 = rv2.pdf(x)

a3, b3 = 1, 5
rv3 = beta(a3, b3)
frv3 = rv3.pdf(x)

plt.plot(x,frv1,label='친구 A의 사전믿음',color='r')
plt.plot(x,frv2,label='친구 B의 사전믿음',color='b')
plt.plot(x,frv3,label='친구 C의 사전믿음',color='g')
plt.xlabel('$\\theta$')
plt.ylabel('$f(\\theta)$')
plt.grid()
plt.legend()

import matplotlib.font_manager as fm
font_list = [font.name for font in fm.fontManager.ttflist]
plt.rcParams['font.family'] = 'NanumGothic'

A는 확률이 0~1사이라고 믿기 때문에 그 구간에서 수평선이다. B는 0.5라고 믿기 때문에 그 지점에서 확률밀도가 제일 높고, 멀어질 수록 낮아진다. C는 0에 가깝다고 믿기 때문에 그 지점에서 확률밀도가 제일 높고, 멀어질 수록 낮아진다.

이렇게 분포의 형태가 다양한데, 한 종류의 분포로 이를 묘사할 수 있을까? 놀랍게도, 그럴 수 있다. 바로 우리가 공부한 베타분포를 써먹는 것이다. 베타분포의 모수인 $\alpha$와 $\beta$의 값이 변화함에 따라, 베타분포의 PDF는 평평한 직선, U형 곡선, 정규분포와 비슷한 곡선 등 놀랍도록 다양한 형태를 갖는다. 즉, 베타분포는 모수만 달리하면 각종 사전확률분포를 커버할 수 있다. 이 사실은 분석에 엄청난 이점을 가져다준다.

결국 친구 A, B, C의 가챠에 대한 태도는 각각 $\mathrm{Beta}(1,1)$, $\mathrm{Beta}(5,5)$, $\mathrm{Beta}(1,5)$로 모델링할 수 있다. 즉, 태도는 상이하지만 분포는 다음과 같이 한 종류로 정의할 수 있는 것이다.

$$
f(\theta) = \frac{1}{B(\alpha, \beta)} \theta^{\alpha-1} (1-\theta)^{\beta-1}
$$

$\space$

Step2. 가능도

사전확률을 정의했으니, 다음은 가능도를 정의하자. 성공확률이 $\Theta$인 가챠를 $n$번 돌렸을 때 관측되는 성공횟수를 $X$라고 하자. 그러면 $X \sim \mathrm{Bin}(n,p)$이고, 가능도는 다음과 같이 정의된다.

$$
f(x \mid \theta) = {n \choose x} \theta^{x} (1-\theta)^{n-x}
$$

$\space$

Step3. 증거

증거 $f(x)$는 사후확률 $f(\theta \mid x)$의 입장에서 그냥 상수, 즉 주어진 조건이다. 그러므로 생략가능하다. 정비례기호를 이용하여 사후확률을 다음과 같이 나타내자.

$$
f(\theta \mid x) \propto f(x \mid \theta) f(\theta)
$$

여기서 $f(x \mid \theta) f(\theta) = {n \choose x} \theta^{x} (1-\theta)^{n-x} \cdot \frac{1}{B(\alpha, \beta)} \theta^{\alpha-1} (1-\theta)^{\beta-1}$이다. 그런데 ${n \choose x}$와 $\frac{1}{B(\alpha, \beta)}$는 또 상수취급할 수 있고, 그러면 다음과 같이 나타낼 수 있다.

$$
\begin{split}
f(\theta \mid x)
& \propto
\theta^{x} (1-\theta)^{n-x} \cdot \theta^{\alpha-1} (1-\theta)^{\beta-1}
\\
f(\theta \mid x)
& \propto
\theta^{\alpha +x -1} (1-\theta)^{\beta -x +n -1}
\end{split}
$$

결국 데이터 관측 후의 사후확률의 분포는 $\mathrm{Beta}(\alpha +x,\beta -x +n)$이고, 사후확률도 사전확률과 마찬가지로 베타분포라는 사실을 알 수 있다.

이것이 바로 위에서 언급했던 켤레사전분포(Conjugate Prior; 共轭先验)의 개념이다. 즉, 가능도를 이항분포로 모델링했을 때, 사전확률분포와 사후확률분포가 모두 같은 베타분포이다. 이를 두고 ‘베타분포는 이항분포의 켤레사전분포’라고 표현한다. 이는 분석과 계산을 매우 편리하게 한다. 같은 분포이기 때문에 새로 무언가를 계산할 필요 없이, 모수만 업데이트 해주면 된다.

note1: 실제로는 가능도와 사전확률의 곱이 무슨 분포인지조차 모르는 경우가 많다고 한다. 이럴 때는 어떤 방법을 써야할까?

note2: 정규분포는 그 자신의 켤레사전분포이다.

$\space$

Step4. 사후확률

이제 분석 준비가 끝났다. 사전확률의 분포를 $\mathrm{Beta}(\alpha,\beta)$이라 하면 사후확률의 분포는 $\mathrm{Beta}(\alpha +x,\beta -x +n)$이 된다. 즉, 나와 친구들의 원래 믿음인 $\alpha$, $\beta$, 그리고 가챠횟수 $n$과 관측된 성공횟수 $x$를 대입하면 된다. 친구들에게 나의 가챠 결과인 $n=10, x=0$을 제시했을 때, 베이즈 추정법에 의한 분석은 다음 그림과 같이 요약될 수 있다.

<hide/>
from matplotlib import rc
import matplotlib.font_manager as fm

font_path = r"ttf 파일의 절대경로"
font_name = fm.FontProperties(fname=font_path).get_name()
rc("font", family=font_name)

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import beta

theta = np.linspace(0, 1.5, 1000)
trial = 10
success = 0
failure = trial - success

a_alpha, a_beta = 1, 1
a_prior = beta(a_alpha, a_beta).pdf(theta)
a_posterior = beta(a_alpha + success, a_beta + failure).pdf(theta)

b_alpha, b_beta = 5, 5
b_prior = beta(b_alpha, b_beta).pdf(theta)
b_posterior = beta(b_alpha + success, b_beta + failure).pdf(theta)

c_alpha, c_beta = 1, 5
c_prior = beta(c_alpha, c_beta).pdf(theta)
c_posterior = beta(c_alpha + success, c_beta + failure).pdf(theta)

fig, ax = plt.subplots(1, 3)
fig.set_figwidth(1000 / fig.dpi)
fig.set_figheight(200 / fig.dpi)

ax[0].plot(theta, a_prior, color="r", label="사전: Beta(1,1)=몰?루")
ax[0].plot(theta, a_posterior, color="r", alpha=0.3, label="사후: Beta(1,11)=강한 의심")
ax[0].set_xlabel(r"$\theta$")
ax[0].set_ylabel(r"f($\theta$)")
ax[0].set_title("A")
ax[0].legend(fontsize=8, frameon=False, loc="upper center")
ax[0].set_xlim(0, 1.5)
ax[0].set_ylim(0, 15)

ax[1].plot(theta, b_prior, color="b", label="사전: Beta(5,5)=반반일 가능성 큼")
ax[1].plot(theta, b_posterior, color="b", alpha=0.3, label="사후: Beta(5,15)=실패확률이 더 큼")
ax[1].set_xlabel(r"$\theta$")
ax[1].set_title("B")
ax[1].legend(fontsize=8, frameon=False, loc="upper center")
ax[1].set_xlim(0, 1.5)
ax[1].set_ylim(0, 15)

ax[2].plot(theta, c_prior, color="g", label="사전: Beta(1,5)=확률조작 의심")
ax[2].plot(theta, c_posterior, color="g", alpha=0.3, label="사후: Beta(1,15)= 확률조작 매우 의심")
ax[2].set_xlabel(r"$\theta$")
ax[2].set_title("C")
ax[2].legend(fontsize=8, frameon=False, loc="upper center")
ax[2].set_xlim(0, 1.5)
ax[2].set_ylim(0, 15)

plt.savefig("mind change.jpg", dpi=1000)

모든 친구들이 데이터가 제시되자, $\Theta$에 대한 믿음을 바꾸었다. 정도의 차이는 있을지언정, 이전의 모호한(분산이 큰, 한산한 분포) 믿음보다는 좀 더 확실한 믿음(분산이 작은, 밀집된 분포)을 가지게 되었다. 아무것도 모르던 친구 A는 이제 확률조작을 의심하게 되었다; 확률조작을 의심하던 C는 그 믿음이 확고해졌다. 확률이 50%라고 믿던 친구 B는 그보다 낮은 값인 20%정도로 믿음을 수정했다.

note1: 아무것도 모르던 친구A가 게임사를 믿던 친구 B보다 오히려 더 게임사를 의심하게 되었다는 사실이 재미있다. 애초에 조작인지 조작이 아닌지 어느 쪽도 믿지 않은 순수한 상태에서 데이터를 보았기 때문일까?

note2: 흔히 베이즈 추정에서 친구 A와 같이 $\Theta$에 대한 지식이 아무 것도 없을 때 가정하는 $f(\theta)$를 무정보사전분포(Non-informative Prior; 无信息先验)라고 한다. 그리고 무정보사전분포로서 $\mathrm{Beta}(1,1)$이 많이 이용된다. 이는 아직 성공도, 실패도 경험해보지 않은 상태를 의미한다.

note3: $\mathrm{Beta}(1,1) = \mathrm{U}(0,1)$이다. 베타분포는 표준균등분포(Standard Uniform Distribution; 标准均匀分布)도 나타낼 수 있다.

이는 우리의 직관과 비슷하다. 동전던지기 내기를 한다고 해보자. 동전 10번을 던졌을 때, 단 한번도 앞면이 나오지 않았다는 사실을 알고서도 이 동전이 평범한 동전이라고 생각하는 사람은 거의 없을 것이다. 문자 그대로의 확률이 나타날 것이라 믿고, ‘어쨌든 동전던지기의 확률은 1/2니까 좀만 더 해보면 앞면이 나오겠지.’라고 생각하기 보다는, ‘상대방이 동전에 뭔 짓을 했구나!’라고 생각하는 것이 합리적이다.

마찬가지로 확률이 50%인 가챠를 10번이나 돌렸는데 10번 모두 꽝을 뽑았으면, ‘내가 운이 없는건가?’라고 여기기 보다는 ‘게임사가 확률조작을 했다!’라고 믿는 편이 더 합리적이다. 애초에 승산이 없는 싸움이었던 것이다. 마치 게임사는 각종 회피기로 무장한 원거리딜러이고, 나는 물몸에 딜도 약한 근접딜러인 게임을 하고 있었던 것과 같다.

#3. 중요한 사실들, 생각해볼 점

#3-1. 베타분포에서 모수가 증가하는 것의 의미

베타분포에서 두 모수가 증가할 수록 평균은 실제확률에 근접하고, 분산은 작아지는데, 이는 우리의 원래 믿음이 많은 데이터를 관찰함으로써 변해가는 모습을 수학적으로 표현한다. 플레이어의 전적은 믿음직스럽게 변하며, 우리의 의심은 확고해진다. 물론 다른 성격의 데이터가 관찰된다면 믿음을 수정해야 할 것이다. 성공횟수가 늘어나는 것이 관찰된다면, 게임사를 믿는 쪽으로 분포가 수정된다.

베이즈 추정법에서 베타분포의 두 모수를 늘리는 방법은 시행횟수와 성공횟수를 늘리는 것이다. 그런데 모수가 아주 클 때, 베타분포의 개형은 대부분 비슷하다(특정 지점에서 뾰족한 모습). 다만 어느 근방에서 밀도가 높은지만 다를 뿐이다. 즉, 어떤 사전분포를 가정하는지에 상관없이 같은 데이터를 계속 관찰하다보면 모두 1가지의 결과로 수렴한다. 순진하던 A든, 중립적이던 B든, 의심이 많던 C든 수많은 가챠를 돌리고, 계속 꽝이 나온다면, 결국 게임사를 의심하는 쪽으로 분포를 수정하게 된다.

그런데 이미 큰 모수를 가지고 있는 베타분포는 시행횟수가 조금 늘어난다고 해서 크게 바뀌지 않는다. 예를 들어, 내가 이미 많은 가챠를 돌린 소위 고인물이라면, 나는 이 게임의 가챠확률이 결코 0.5가 아님을 수 많은 경험으로 알 수 있다. 이 믿음, 즉 분포의 형태는 가챠를 10번 더 돌려서 10번 모두 꽝이 나오더라도 크게 변하지 않을 뿐더러, 설령 10번 모두 당첨이더라도 우연한 해프닝으로 여기고, (제발 부탁이니까 한 번만이라도 이랬으면 좋겠다!) 믿음이 크게 수정되지는 않을 것이다. 이미 많은 경험을 통해 베타분포의 모습을 확정했기 때문이다.

반면에, 가챠 경험이 비교적 적은 초보자라면, 적은 횟수의 시행으로도 베타분포는 빠르게 변모한다. 특히 어떤 가챠경험도 없는 $\mathrm{Beta}(1,1)$가 충격에 취약함을 알 수 있었다.

note: 베타분포의 평균은 $\frac{\alpha}{\alpha+\beta}$이고, 분산은 $\frac{\alpha\beta}{(\alpha+\beta)^{2}(\alpha+\beta+1)}$이다.

$\space$#3-2. 베타분포의 응용가치

베타분포는 베이즈 추정법에서 사전분포로 자주 이용되며 그 이유는 크게 두 가지이다.

$\space$


(1) 모수에 따라 형태가 천차만별이다. 즉, 다양한 사전 믿음을 한 가지의 분포로 묘사할 수 있다.

(2) 베타분포는 이항분포의 켤레사전분포이다. 사전분포와 사후분포가 같은 분포이기 때문에 계산과 분석이 편리하다.


#3-3. 베타분포의 업데이트 공식

$\mathrm{Beta}(\alpha +x,\beta -x +n)$에서 $(-x +n)$은 실패횟수를 의미한다. 그러므로 베이즈 추정법에서 베타분포의 업데이트 공식은 다음과 같이 깔끔하게 고쳐쓸 수 있다.

$$
\mathrm{Beta}(\alpha_{\mathrm{posterior}},\beta_{\mathrm{posterior}}) = \mathrm{Beta}(\alpha_{\mathrm{prior}}+성공횟수,\beta_{\mathrm{prior}}+실패횟수)
$$

'확률론과 수리통계' 카테고리의 다른 글

이항분포  (0) 2022.10.06
베르누이 분포  (0) 2022.10.06
이산확률변수와 이산분포  (0) 2022.10.05
베타분포의 이해  (1) 2022.10.02
확률밀도와 확률질량의 이해  (0) 2022.10.02