계산할 것을 고르고 확률을 입력해 주세요. 아래 수식은 입력란과 연동되어 있어서 숫자 부분을 직접 고쳐도 계산할 수 있습니다.
목차
이 페이지에서 할 수 있는 것
- \(P(A)\)와 \(P(A \cap B)\)만 넣으면 조건부확률 \(P(B \mid A) = \dfrac{P(A \cap B)}{P(A)}\)를 바로 구할 수 있습니다
- 베이즈 정리 모드에서는 원인의 확률 \(P(A)\)와, 원인이 있을 때와 없을 때 각각 결과 B가 일어날 확률 \(P(B \mid A)\), \(P(B \mid A^{C})\)로 ‘결과 B가 일어났을 때 원인이 A일 확률 \(P(A \mid B)\)’를 거꾸로 구할 수 있습니다
- 전확률 공식으로 \(P(B)\)를 구하는 과정을 숫자가 들어간 풀이와 수형도, 넓이 그림으로 확인할 수 있습니다
- 답은 \(\dfrac{10}{109}\) 같은 기약분수(정확한 값)와 소수·백분율로 함께 보여 줍니다
- 확률은 0.3, 30%, 3/10 중 어떤 형태로도 입력할 수 있습니다. 공식의 쉬운 해설과 Excel, Google 스프레드시트, Python에 복사해 쓸 수 있는 수식도 함께 있습니다
이 계산은 어디에 쓰일까요?
‘정확도 90%인 검사에서 양성’이라고 들으면 90%의 확률로 해당한다고 생각하기 쉽습니다. 하지만 예를 들어 해당하는 사람이 전체의 1%라고 하면, 양성일 때 실제로 해당할 확률(양성 예측도)은 약 9%에 불과합니다. 해당하지 않는 많은 사람에게서 나오는 위양성에 적은 수의 진짜 양성이 묻혀 버리기 때문입니다.
베이즈 정리의 가장 유명한 예로, 의료 현장에서는 검사 결과를 사전확률과 함께 읽는 것이 기본입니다(실제 확률은 검사와 상황에 따라 다르므로 이 숫자는 계산 예일 뿐입니다).
메일 프로그램이 스팸을 판정하는 고전적인 바탕이 베이지안 필터입니다. ‘스팸 메일에 이 단어가 나올 확률’과 ‘일반 메일에 이 단어가 나올 확률’로, 베이즈 정리를 써서 ‘이 단어가 들어 있는 메일이 스팸일 확률’을 거꾸로 구합니다.
‘원인(스팸) → 결과(단어가 나옴)’의 통계로 ‘결과 → 원인’을 추정하는, 베이즈 정리의 교과서적인 응용입니다.
제품의 60%를 만드는 기계 X(불량률 2%)와 40%를 만드는 기계 Y(불량률 5%)가 있는 공장에서, 검사로 찾은 불량품이 기계 X에서 나왔을 확률은 베이즈 정리로 \(\dfrac{0.6 \times 0.02}{0.6 \times 0.02 + 0.4 \times 0.05} = \dfrac{3}{8}\)(37.5%)입니다.
‘불량이 나왔을 때 어느 라인부터 점검할까’를 감이 아니라 숫자를 근거로 정할 수 있습니다.
10개 중 3개가 당첨인 제비를 되돌려 놓지 않고 2개 뽑을 때, 2개 모두 당첨일 확률은 \(\dfrac{3}{10} \times \dfrac{2}{9} = \dfrac{1}{15}\)입니다. 첫 번째 결과에 따라 두 번째 확률이 바뀌므로(독립이 아님) 조건부확률과 확률의 곱셈정리가 필요한 상황입니다.
포커 같은 카드 게임에서 ‘이미 나온 카드’를 보고 남은 카드의 확률을 따지는 것도 완전히 같은 계산입니다.
자동차 보험료를 정할 때 보험사는 ‘사고를 낼 확률’을 모든 사람에게 똑같이 보지 않고, 나이·사고 이력·사는 지역 등 조건별 조건부확률로 어림해 보험료 차이에 반영합니다.
‘조건을 알면 확률이 바뀐다’는 조건부확률의 생각이 보험, 대출 심사, 신용 점수 같은 금융 시스템을 떠받치고 있습니다.
공식과 그림
용어·기호 해설
기호
| \(P(A)\) | 피 에이 | 사건 A가 일어날 확률입니다. P는 확률을 뜻하는 영어 Probability의 머리글자입니다. |
| \(P(B \mid A)\) | 피 비 바 에이 | A가 일어났다는 것을 알 때 B가 일어날 확률(조건부확률)입니다. 고등학교 ‘확률과 통계’ 교과서에서 쓰는 기호입니다. |
| \(\mid\) | 바(세로 막대) | \(P(\ \ )\) 안의 세로 막대입니다. 막대 오른쪽의 사건이 조건(이미 일어났다고 아는 것)입니다. \(P(B \mid A)\)와 \(P(A \mid B)\)는 서로 다른 뜻입니다. |
| \(A^{C}\) | 에이 여사건 | ‘A가 일어나지 않는다’는 사건(여사건)을 나타냅니다. \(P(A^{C}) = 1 - P(A)\)로 구합니다. 책에 따라 \(A^{c}\)나 \(\overline{A}\)로 쓰기도 합니다. |
| \(\cap\) | 캡(교집합) | ‘그리고’를 나타내는 기호입니다. \(A \cap B\)는 ‘A와 B가 둘 다 일어난다’는 사건입니다. 벤 다이어그램에서는 두 원이 겹친 부분에 해당합니다. |
| \(P(A \cap B)\) | 피 에이 교집합 비 | A와 B가 둘 다 일어날 확률(결합확률)입니다. 조건부확률의 분자가 됩니다. \(P(A)\) 이하의 값만 될 수 있습니다(둘 다 일어나는 경우는 A의 일부이기 때문입니다). |
용어
| 사건 | ‘주사위에서 짝수가 나온다’, ‘검사에서 양성이 나온다’처럼 일어나거나 일어나지 않거나가 정해지는 일을 말합니다. 수학에서는 이런 일을 ‘사건’이라고 부르고, A나 B 같은 이름을 붙여 다룹니다. |
| 조건부확률 | 어떤 사건 A가 일어났다는 것을 아는 조건에서 다른 사건 B가 일어날 확률입니다. \(P(B \mid A) = \dfrac{P(A \cap B)}{P(A)}\)로 계산합니다. ‘전체에서 A만으로 줄인 세계에서 B의 비율’입니다. |
| 확률의 곱셈정리 | \(P(A \cap B) = P(A) \times P(B \mid A)\)를 말합니다. 조건부확률 공식의 분모를 없앤 형태로, ‘먼저 A, 그다음 B’가 둘 다 일어날 확률을 순서대로 곱해서 구합니다. |
| 전확률 공식 | B가 일어날 확률을 ‘A를 거치는 경로’와 ‘A가 아닌 쪽을 거치는 경로’로 나누어 더하는 공식입니다. 식은 \(P(B) = P(A)\,P(B \mid A) + P(A^{C})\,P(B \mid A^{C})\)입니다. 베이즈 정리의 분모를 만들 때 씁니다. |
| 베이즈 정리 | ‘원인 → 결과’의 확률로 ‘결과 → 원인’의 확률을 거꾸로 구하는 정리입니다. 식은 \(P(A \mid B) = \dfrac{P(A \cap B)}{P(B)}\)입니다. 18세기 영국의 목사 토머스 베이즈의 이름을 딴 것으로, 스팸 메일 필터 등 현대 정보 기술을 떠받치고 있습니다. |
| 사전확률 | 결과(데이터)를 보기 전에 어림한 원인 A의 확률 \(P(A)\)를 말합니다. 검사의 예라면 ‘애초에 해당하는 사람이 얼마나 있는가’입니다. |
| 사후확률 | 결과 B를 본 뒤에 새로 고친 원인 A의 확률 \(P(A \mid B)\)를 말합니다. 베이즈 정리는 ‘관측한 것을 이용해 사전확률을 사후확률로 고치는 규칙’이라고도 할 수 있습니다. |
| 여사건 | 그 일이 ‘일어나지 않는’ 반대쪽 사건을 말합니다. 기호는 \(A^{C}\)이고 확률은 \(1 - P(A)\)입니다. 전확률 공식에서는 ‘A를 거치지 않는 경로’를 맡습니다. |
| 배반사건 | 두 사건이 동시에 일어나지 않는 것을 말합니다. ‘A를 거쳐 B가 일어나는’ 경우와 ‘A가 아닌 쪽을 거쳐 B가 일어나는’ 경우는 서로 배반사건이므로 전확률 공식에서 그냥 더할 수 있습니다. |
| 독립 | 한쪽의 결과가 다른 쪽이 일어날 가능성에 영향을 주지 않는 것을 말합니다. 조건부확률로 바꿔 말하면 \(P(B \mid A) = P(B)\)인 경우, 즉 A가 일어났다는 것을 알아도 B의 확률이 변하지 않는 경우가 독립입니다. |
| 위양성 | 실제로는 해당하지 않는데 검사에서만 ‘양성(해당 있음)’이 나와 버리는 것을 말합니다. 위양성률이 작아도 해당하지 않는 사람이 대다수라면, 위양성인 사람 수가 진짜 양성인 사람 수보다 많아질 수 있습니다. |
| 수형도 | 일어날 수 있는 경우를 나뭇가지처럼 갈라 그린 그림입니다. 가지에 확률을 적고 가지를 따라가며 곱하면 그 경로의 확률이 됩니다. 조건부확률이나 베이즈 정리를 눈으로 따라가기에 가장 좋은 그림입니다. |
먼저 알아 두면 좋은 내용
이 페이지의 계산을 ‘뜻을 알고’ 쓸 수 있도록, 먼저 알아 두면 좋은 내용을 정리했습니다.
막히는 부분이 있으면 이 표의 내용으로 돌아가 복습하는 것이 가장 빠른 길입니다.
| 확률의 기초(중학교 2학년, 13~14세) |
|
| 비와 비율·백분율(초등학교 6학년, 11~12세) |
|
| 분수의 곱셈과 나눗셈(초등학교 5~6학년, 10~12세) |
|
| 경우의 수와 수형도(중학교 2학년, 13~14세) |
|
| 집합과 벤 다이어그램(고등학교 1학년, 15~16세) |
|
Excel로 계산하는 방법
| 사건 A가 일어날 확률 P(A) | 0.5 |
| 둘 다 일어날 확률 P(A∩B) | 0.2 |
| 조건부확률 P(B|A) | =B2/B1 |
| 사건 A가 일어날 확률 P(A) | 0.5 |
| A일 때 B가 일어날 확률 P(B|A) | 0.4 |
| 둘 다 일어날 확률 P(A∩B) | =B1*B2 |
| 원인 A의 확률 P(A) | 0.01 |
| A일 때 B가 일어날 확률 P(B|A) | 0.9 |
| A가 아닐 때 B가 일어날 확률 P(B|Aᶜ) | 0.09 |
| B가 일어날 확률 P(B) | =B1*B2+(1-B1)*B3 |
| 원인 A의 확률 P(A) | 0.01 |
| A일 때 B가 일어날 확률 P(B|A) | 0.9 |
| A가 아닐 때 B가 일어날 확률 P(B|Aᶜ) | 0.09 |
| 둘 다 일어날 확률 P(A∩B) | =B1*B2 |
| B가 일어날 확률 P(B) | =B4+(1-B1)*B3 |
| B가 일어났을 때 원인이 A일 확률 P(A|B) | =B4/B5 |
수식 속의 ‘B1’, ‘B2’는 ‘그 셀에 들어 있는 숫자를 사용한다’는 뜻이고, ‘*’는 곱셈, ‘/’는 나눗셈 기호입니다.
첫 번째 표는 0.2 ÷ 0.5 = 0.4, 두 번째 표는 0.5 × 0.4 = 0.2가 됩니다.
세 번째 표는 0.01 × 0.9 + 0.99 × 0.09 = 0.0981로, 양성이 나올 확률을 경로별로 더합니다.
네 번째 표는 B4가 0.009, B5가 0.0981이 되고, 마지막 B6은 0.009 ÷ 0.0981 ≒ 0.0917(약 9.2%)입니다.
Google 스프레드시트로 계산하는 방법
| 사건 A가 일어날 확률 P(A) | 0.5 |
| 둘 다 일어날 확률 P(A∩B) | 0.2 |
| 조건부확률 P(B|A) | =B2/B1 |
| 사건 A가 일어날 확률 P(A) | 0.5 |
| A일 때 B가 일어날 확률 P(B|A) | 0.4 |
| 둘 다 일어날 확률 P(A∩B) | =B1*B2 |
| 원인 A의 확률 P(A) | 0.01 |
| A일 때 B가 일어날 확률 P(B|A) | 0.9 |
| A가 아닐 때 B가 일어날 확률 P(B|Aᶜ) | 0.09 |
| B가 일어날 확률 P(B) | =B1*B2+(1-B1)*B3 |
| 원인 A의 확률 P(A) | 0.01 |
| A일 때 B가 일어날 확률 P(B|A) | 0.9 |
| A가 아닐 때 B가 일어날 확률 P(B|Aᶜ) | 0.09 |
| 둘 다 일어날 확률 P(A∩B) | =B1*B2 |
| B가 일어날 확률 P(B) | =B4+(1-B1)*B3 |
| B가 일어났을 때 원인이 A일 확률 P(A|B) | =B4/B5 |
입력란의 숫자를 자신의 확률로 바꾸기만 하면 그대로 쓸 수 있습니다.
Python으로 계산하는 방법
from fractions import Fraction
# ===== 조건부확률 P(B|A) = P(A∩B) ÷ P(A) =====
p_a = Fraction(1, 2) # P(A): 조건이 되는 사건 A의 확률
p_a_and_b = Fraction(1, 3) # P(A∩B): 둘 다 일어날 확률
p_b_given_a = p_a_and_b / p_a
print(f"조건부확률 P(B|A): {p_b_given_a} = {float(p_b_given_a):.4f}")
# ===== 베이즈 정리(분모는 전확률 공식으로 만든다) =====
prior = Fraction(1, 100) # P(A): 원인 A의 확률(사전확률)
p_b_given_a2 = Fraction(90, 100) # P(B|A): A일 때 B가 일어날 확률
p_b_given_not_a = Fraction(9, 100) # P(B|Aᶜ): A가 아닐 때 B가 일어날 확률
p_joint = prior * p_b_given_a2 # P(A∩B)
p_b = p_joint + (1 - prior) * p_b_given_not_a # P(B)(전확률 공식)
posterior = p_joint / p_b # P(A|B)(사후확률)
print(f"B가 일어날 확률 P(B): {p_b} = {float(p_b):.4f}")
print(f"원인이 A일 확률 P(A|B): {posterior} = {float(posterior):.4f}")
LaTeX 등 수식 언어로 쓰는 법(복사 가능)
P(B|A) = P(A∩B) / P(A)
P(B \mid A) = \dfrac{P(A \cap B)}{P(A)}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>P</mi><mo>(</mo><mi>B</mi><mo>∣</mo><mi>A</mi><mo>)</mo>
<mo>=</mo>
<mfrac>
<mrow><mi>P</mi><mo>(</mo><mi>A</mi><mo>∩</mo><mi>B</mi><mo>)</mo></mrow>
<mrow><mi>P</mi><mo>(</mo><mi>A</mi><mo>)</mo></mrow>
</mfrac>
</mrow>
</math>
P(B | A) = P(A nn B) / P(A)
pAandB/pA
pBgivenA := pAandB/pA;
p_b_given_a = p_a_and_b/p_a;
P(B|A) = P(A∩B)/P(A)
P(A∩B) = P(A) × P(B|A)
P(A \cap B) = P(A) \times P(B \mid A)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>P</mi><mo>(</mo><mi>A</mi><mo>∩</mo><mi>B</mi><mo>)</mo>
<mo>=</mo>
<mi>P</mi><mo>(</mo><mi>A</mi><mo>)</mo>
<mo>×</mo>
<mi>P</mi><mo>(</mo><mi>B</mi><mo>∣</mo><mi>A</mi><mo>)</mo>
</mrow>
</math>
P(A nn B) = P(A) xx P(B | A)
pA*pBgivenA
pAandB := pA*pBgivenA;
p_a_and_b = p_a*p_b_given_a;
P(A∩B) = P(A) × P(B|A)
P(B) = P(A) × P(B|A) + P(Aᶜ) × P(B|Aᶜ)
P(B) = P(A)\,P(B \mid A) + P(A^{C})\,P(B \mid A^{C})
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>P</mi><mo>(</mo><mi>B</mi><mo>)</mo>
<mo>=</mo>
<mi>P</mi><mo>(</mo><mi>A</mi><mo>)</mo>
<mi>P</mi><mo>(</mo><mi>B</mi><mo>∣</mo><mi>A</mi><mo>)</mo>
<mo>+</mo>
<mi>P</mi><mo>(</mo>
<msup><mi>A</mi><mi>C</mi></msup>
<mo>)</mo>
<mi>P</mi><mo>(</mo><mi>B</mi><mo>∣</mo>
<msup><mi>A</mi><mi>C</mi></msup>
<mo>)</mo>
</mrow>
</math>
P(B) = P(A) xx P(B | A) + P(A^C) xx P(B | A^C)
pA*pBgivenA + (1 - pA)*pBgivenNotA
pB := pA*pBgivenA + (1 - pA)*pBgivenNotA;
p_b = p_a*p_b_given_a + (1 - p_a)*p_b_given_not_a;
P(B) = P(A)P(B|A) + P(A^C)P(B|A^C)
P(A|B) = P(A∩B) / P(B)
P(A \mid B) = \dfrac{P(A \cap B)}{P(B)} = \dfrac{P(A)\,P(B \mid A)}{P(A)\,P(B \mid A) + P(A^{C})\,P(B \mid A^{C})}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>P</mi><mo>(</mo><mi>A</mi><mo>∣</mo><mi>B</mi><mo>)</mo>
<mo>=</mo>
<mfrac>
<mrow><mi>P</mi><mo>(</mo><mi>A</mi><mo>∩</mo><mi>B</mi><mo>)</mo></mrow>
<mrow><mi>P</mi><mo>(</mo><mi>B</mi><mo>)</mo></mrow>
</mfrac>
</mrow>
</math>
P(A | B) = P(A nn B) / P(B)
pA*pBgivenA/(pA*pBgivenA + (1 - pA)*pBgivenNotA)
pAgivenB := pAandB/pB;
p_a_given_b = p_a_and_b/p_b;
P(A|B) = P(A∩B)/P(B)
ChatGPT 에게 물어서 계산하는 방법
당신은 확률(조건부확률·베이즈 정리) 계산 도우미입니다. 다음 계산은 반드시 Python 코드를 실제로 실행해서 하고, 실행 결과의 숫자만을 근거로 답해 주세요(암산이나 추측으로 답하지 마세요). 원인 A의 확률(사전확률)은 1%, A가 일어났을 때 결과 B가 일어날 확률 P(B|A)는 90%, A가 일어나지 않았을 때 B가 일어날 확률 P(B|Aᶜ)는 9%입니다. 다음 값을 각각 구해 주세요. 1. A와 B가 둘 다 일어날 확률 P(A∩B) 2. B가 일어날 확률 P(B)(전확률 공식을 쓰고, 경로별 내역도 보여 주세요) 3. B가 일어났을 때 원인이 A일 확률 P(A|B)(베이즈 정리. 기약분수와 소수로 모두 보여 주세요) Python에서는 표준 라이브러리의 fractions 모듈로 정확하게 계산하고, 사용한 공식과 실행 결과의 숫자를 표로 보여 주세요.
사용법
-
1숫자 입력계산하고 싶은 숫자를 입력란에 입력합니다
-
2계산‘계산’ 버튼을 누릅니다
-
3결과 확인계산 결과가 바로 표시됩니다. 계산의 원리와 공식 해설도 같은 페이지에서 확인할 수 있습니다
DataChef의 특징
전문 지식 없이도 직관적이고 간단하게 사용
개인정보를 등록하지 않고도 이용할 수 있습니다
"다운로드"를 누르면 파일이 자동으로 삭제됩니다
출처 표기 불필요
상업적 이용 허가 연락도 필요 없습니다