확률로 돈을 번다
수익률은 정규분포로, 타이밍은 지수분포로 본다
1) 연속 분포란?
“확률은 점이 아니라, 구간으로 본다.”
우리가 세상을 볼 때, 숫자는 늘 끊겨 있다고 생각하기 쉽습니다.
주사위를 던지면 1, 2, 3처럼 결과가 딱 떨어지니까요.
이건 이산적인 세계입니다.
정해진 칸 안에서 움직이는 셈이죠.
하지만 현실의 데이터는 훨씬 더 부드럽습니다.
사람의 키는 170cm, 170.1cm, 170.11cm처럼
끝없이 이어지고, 그 사이에는 무한히 많은 값이 존재합니다.
주가의 하루 수익률도 마찬가지입니다.
0.5%와 0.51% 사이에도 셀 수 없는 가능성이 숨어 있습니다.
그래서 연속 분포에서는
‘정확히 0.5%일 확률’ 같은 건 거의 의미가 없습니다.
대신 “0.5%에서 1% 사이에 있을 확률”처럼 구간 전체를 보는 것이 핵심입니다.
그래프 위에 그려진 곡선 아래의 면적이 바로 확률입니다.
점이 아닌 면적을 본다는 것, 그게 바로 연속 분포의 시작입니다.
2) 정규분포 — “평균 근처가 가장 많다”
세상에는 평균 쪽에 사람이 몰리는 현상이 많습니다.
누군가는 180cm, 또 누군가는 160cm지만, 대부분의 사람은 그 중간 어딘가 있습니다.
이런 패턴을 수학적으로 그려낸 것이 바로 정규분포(normal distribution) 입니다.
그래프를 그리면 가운데가 봉긋 솟은 종 모양이 나타납니다.
이 중심이 바로 ‘평균(μ)’이고, 좌우로 퍼진 폭은 ‘표준편차(σ)’로 표현합니다.
표준편차가 클수록 곡선이 넓게 퍼지고, 작을수록 날씬한 종이 됩니다.
정규분포는 말 그대로
“평균 근처에 값이 가장 많고, 멀리 벗어날수록 드물다”는 세상의 질서를 보여줍니다.
사람의 키, 시험 점수, 하루 주가 수익률이 그 대표적인 예입니다.
주가를 보면 대부분의 날은 0% 근처에서 머뭅니다.
-5%, +5%처럼 크게 출렁이는 날은 그리 자주 오지 않습니다.
그래서 정규분포는 ‘평범한 날이 대부분이고, 극단은 예외적이다’라는 현실을 닮아 있습니다.
다만, 극단이 0은 아니라는 사실도 중요합니다.
이 분포에는 재미있는 규칙이 있습니다.
평균 ±1σ 범위 안에 약 68%
평균 ±2σ 범위 안에 약 95%
평균 ±3σ 범위 안에 약 99.7%
표준편차가 1%라고 가정하면,
“내일 수익률이 -1%에서 +1% 사이일 확률은 68% 정도”라고 할 수 있습니다.
이 단순한 숫자 하나로 우리는 리스크의 폭을 시각적으로 이해하게 됩니다.
3) 지수분포 — “다음 사건까지 기다리는 시간”
이번에는 시간의 흐름으로 시선을 옮겨봅니다.
어떤 일이 다시 일어날 때까지 걸리는 시간을 설명하는 분포가 지수분포(exponential distribution) 입니다.
그래프를 그리면 처음엔 높게 시작해 오른쪽으로 갈수록 점점 낮아지는 곡선이 나타납니다.
처음엔 사건이 금방 일어날 확률이 높지만, 시간이 지날수록 그 확률은 점차 줄어드는 모습입니다.
이 분포를 결정짓는 핵심 변수는 λ(람다)입니다.
λ는 ‘단위 시간당 사건이 일어나는 비율’을 뜻합니다.
그래서 평균적으로 한 번 일어나는 데 걸리는 시간은 1 ÷ λ로 계산됩니다.
λ가 클수록 자주 일어나고, 작을수록 오래 기다려야 합니다.
지수분포에는 재미있는 성질이 하나 있습니다.
바로 “기억이 없다”는 점입니다.
오랫동안 기다렸다고 해서 앞으로 금방 일어날 가능성이 커지는 건 아닙니다.
버스를 예로 들어볼까요?
만약 버스가 정해진 시간 간격으로 온다면, 10분을 기다렸다면 이제 곧 도착할 확률이 커지겠죠. 이건 규칙이 있는 세계입니다. ‘9분이 지났으니 이제 거의 올 때가 됐다’는 예측이 성립하죠.
하지만 지수분포는 그런 규칙적인 버스가 아닙니다.
버스가 언제 올지 전혀 알 수 없고, 다만 “평균적으로 10분마다 한 대 정도 온다”는 것만 알고 있는 상황을 가정합니다. 이때 10분 동안 버스가 오지 않았더라도, 앞으로 1분 안에 올 확률은 여전히 처음 기다리기 시작했을 때와 같습니다. 기다린 시간은 아무 의미가 없습니다. 과거의 기다림이 미래의 확률을 바꾸지 않기 때문입니다. 이게 바로 지수분포의 핵심 성질, “기억 없음(memoryless)”입니다.
마치 동전을 열 번 던져 모두 앞면이 나와도, 열한 번째에 뒷면이 나올 확률이 여전히 50%인 것과 같은 이치입니다.
투자에서도 이 원리는 그대로 적용됩니다.
“요즘 시장이 조용하니, 이제 큰 변동이 올 때가 됐다”는 생각은 사실 확률적으로 아무 근거가 없습니다.
지수분포의 세계에서는, ‘다음 큰 움직임’의 가능성은 언제나 일정하기 때문입니다.
이 개념은 투자에도 그대로 적용됩니다.
예를 들어 “절대수익률이 ±2%를 넘는 큰 변동일”을 하나의 사건으로 본다면, 한 달(20거래일)에 평균 4번 일어난다면 λ는 0.2/day입니다.
지수분포로 확률을 계산하면,
내일 또 큰 변동이 생길 확률은 18%
3일 안에 생길 확률은 45%가 됩니다.
지수분포를 알면 “다음 큰 파도가 언제 다시 올까?”를 수학적으로 가늠할 수 있습니다.
투자자는 이 분포를 통해 ‘언제 기다려야 하고, 언제 움직여야 하는가’를 배웁니다.
4) 엑셀로 해보는 간단 실습
NORM.DIST 함수는 정규 분포(Normal Distribution)의 확률을 계산하는 데 사용됩니다. 정규 분포는 자연 현상이나 통계적 데이터에서 가장 흔하게 나타나는 연속 확률 분포입니다.
NORM.DIST(x, 평균, 표준_편차, 누적_여부)
x (x) 확률을 구하려는 값입니다. (예: 특정 키, 시험 점수) 필수
평균 (mean) 데이터 집합의 산술 평균(μ)입니다. 필수
표준_편차 (standard_dev) 데이터 집합의 표준 편차(σ)입니다. 필수
누적_여부 (cumulative) 계산 방식을 결정하는 논리값입니다. 필수
FALSE 0 확률 밀도 함수 (PDF) 값 x 지점에서의 상대적인 확률 밀도 (곡선 높이)를 반환합니다. 이 값 자체는 확률이 아닙니다.
TRUE 1 누적 분포 함수 (CDF) 값 x 이하의 값이 나올 누적 확률을 반환합니다. (곡선 아래 왼쪽 면적)
예제 1. “내일 수익률이 +1% 이하일 확률”
지난 1년간의 코스피 하루 수익률을 계산했더니 평균 = 0.0005 (0.05%), 표준편차 = 0.012 (1.2%) 였다고 합시다.
수식: =NORM.DIST(0.01, 0.0005, 0.012, TRUE)
결과는 약 0.84 (84%) 정도로 나옵니다.
즉, “내일 수익률이 +1%를 넘지 않을 확률은 약 84%”란 뜻입니다.
예제 2. 내가 가진 종목의 “하루 손실이 -2% 이하일 확률”
평균 = 0%, 표준편차 = 1.5% (0.015) 인 종목이 있다고 가정해 봅니다.
수식: =NORM.DIST(-0.02, 0, 0.015, TRUE)
결과는 약 0.091 (9.1%)가 나옵니다.
즉, “이 종목은 하루에 -2% 이상 하락할 가능성이 약 9%”란 뜻입니다.
리스크 관리 기준선을 잡는 데 유용합니다.
예제 3. “수익률이 -1%~+1% 사이일 확률”
평균 = 0%, 표준편차 = 1% (0.01)인 ETF의 하루 수익률을 가정합니다.
수식: =NORM.DIST(0.01, 0, 0.01, TRUE) - NORM.DIST(-0.01, 0, 0.01, TRUE)
결과는 약 0.6826 (68.26%)가 나옵니다.
즉, “이 ETF의 하루 수익률은 약 68%의 확률로 -1%~+1% 사이에 머문다.”란 뜻입니다.
신기한건 이 수치는 정규분포의 1σ의 값입니다.
EXPON.DIST 함수는 지수 분포(Exponential Distribution)의 확률을 계산할 때 사용됩니다. 지수 분포는 어떤 사건이 발생하기까지 걸리는 시간이나 간격을 모델링하는 데 쓰입니다. 이는 포아송 분포와 관련이 깊은데, 포아송 분포가 '단위 시간당 사건 횟수'를 다룬다면, 지수 분포는 '사건과 사건 사이의 시간'을 다룹니다.
EXPON.DIST(x, 람다, 누적_여부)
x (x) 확률을 구하려는 시간 또는 간격 값입니다. (x≥0) 필수
람다 (lambda) 사건이 발생하는 평균 비율(λ)입니다. 이는 단위 시간당 평균 사건 발생 횟수(1/평균 간격)입니다. 필수
누적_여부 (cumulative) 계산 방식을 결정하는 논리값입니다. 필수
FALSE 0 확률 밀도 함수 (PDF) 값 x 시간(간격)에서의 상대적인 확률 밀도를 반환합니다.
TRUE 1 누적 분포 함수 (CDF) 값 사건이 발생하기까지 걸리는 시간이 x 시간 이하일 확률을 반환합니다.
예제 1. 고객 서비스센터 대기 시간
한 고객 서비스센터에서 평균적으로 1시간에 12건의 문의 전화가 걸려온다고 합니다. (즉, λ=12회/시간)
다음 전화가 걸려오기까지 5분 이하로 걸릴 확률은 얼마일까요?
수식: =EXPON.DIST(0.0833,12,TRUE)
결과는 약 63.2%가 나옵니다. 다음 통화까지 5분의 여유도 갖기 힘들다고 생각할수 있겠네요.
예제 2. 웹사이트 서버 오류 간격
어떤 웹사이트 서버에 평균적으로 하루에 0.5회의 치명적인 오류가 발생한다고 가정합니다. (즉, λ=0.5회/일)
마지막 오류 발생 후 정확히 2일이 지났을 때의 확률 밀도 값은 얼마일까요?
수식: = EXPON.DIST(2,0.5,FALSE)
결과는 약 18.4%가 나옵니다.
2일안에 발생할 확률로 계산하려면, FALSE를 TRUE로 바꿔주면 됩니다.
결과는 약 63.2%가 나옵니다.
발생할 면적이기 때문에 누적할 수록 값은 당연히 커지고, 시간이 지날수록 해당 구간의 밀도값은 줄어듭니다.
예제 3. ATM 고장 간격 �
한 은행의 ATM 기계가 평균적으로 100시간에 1번 고장이 납니다. (즉, λ=1/100=0.01회/시간)
이 ATM 기계가 200시간을 초과하여 고장 없이 작동할 확률은 얼마일까요?
수식: =EXPON.DIST(200,0.01,TRUE)
결과는 86.5%가 나옵니다. 200시간 안의 발생할 확률갑이므로 100-86.5 = 13.5
즉 200시간을 초과해도 고장 나지 않을 확률은 13.5%입니다. 생각보다 고장률이 크네요.
앞서 공부했던 포아송 분포도 비슷한 개념이었던것 같습니다.
포아송 분포는 정해진 시간안에 몇번인가를 계산하고, 지수분포는 얼마나 시간이 지나서 발생할까를 계산합니다.
카페에서 손님이 오는 상황으로 비교해 보겠습니다.
어떤 카페에 손님이 평균적으로 1시간에 0.9명꼴로 들어옵니다.
“3시간 동안 몇 명이 올까?”
수식: =POISSON.DIST(3, 0.9, TRUE)
결과는 약 98.6%가 나옵니다. 높다고 생각할 수도 있지만, FALSE 값을 넣어보면, 4.9%가 나옵니다. 정말 손님이 드물게 오는 카페라는 생각이 듭니다.
이번엔 시간에 집중합니다.
수식: =EXPON.DIST(3, 0.9, TRUE)
결과는 약 93.2%가 나옵니다. 3시간 안에 손님이 올 확률을 의미합니다.
포아송 분포는 “지금까지 몇 명 왔지?”
지수 분포는 “다음 손님은 언제 오지?”
결국 두 분포는 같은 세상을 서로 다른 눈으로 본 것입니다.
하나는 ‘빈도’를 세고, 다른 하나는 ‘기다림’을 잽니다.
핵심 정리
연속 분포 — 확률은 ‘점’이 아니라 ‘구간’으로 본다. (면적 = 확률)
정규분포 — 수익률의 기본 모델. 평균과 표준편차로 하루 변동폭을 관리한다.
지수분포 — 사건 간의 대기시간을 설명한다. 평균 대기시간은 1/λ.
“확률은 예측의 언어가 아니라, 준비의 언어다.”
하루의 변동폭을 가늠하고, 다음 변동이 찾아올 때를 기다릴 줄 아는 것. 투자의 첫걸음입니다.