분산투자 몇 종목이면 될까 — 코스피 24종목의 실질 분산을 숫자로 재봤습니다
분산투자 몇 종목이 적당하냐는 질문에 보통 "20~30개"라고 답합니다. 그래서 코스피 시가총액 상위 24종목을 같은 비중으로 담고 2015년 1월부터 2026년 8월까지 2,855거래일을 직접 계산해봤습니다. 종목 수만 보면 충분히 분산된 포트폴리오인데, 위험 요인을 기준으로 센 유효 베팅 수(ENB)는 1.06이었습니다. 이 글은 그 숫자가 어떻게 나왔는지, 그리고 본인 포트폴리오로 같은 계산을 어떻게 하는지 정리합니다.
1. "몇 종목이면 분산되나"가 놓치는 것
한 줄 답: 분산은 종목 개수가 아니라 종목들이 서로 다르게 움직이는 정도로 결정됩니다. 개수는 셀 수 있지만 그것만으로는 분산이 됐는지 알 수 없고, 그래서 위험 쪽에서 세는 지표가 따로 있습니다.
극단적인 예를 들어보겠습니다. 삼성전자를 10주 사고, 분산하겠다며 삼성전자를 10주 더 삽니다. 종목 수는 늘지 않았죠. 그럼 삼성전자와 SK하이닉스는 어떨까요. 분명 다른 회사이고 종목 코드도 둘입니다. 그런데 반도체 업황이라는 공통 요인의 영향을 같이 받습니다. 종목 코드는 두 개인데 위험의 원천은 상당 부분 겹쳐 있는 겁니다.
실제로 2015년 이후 데이터에서 삼성전자–SK하이닉스의 상관계수는 0.67, 삼성전자–셀트리온은 0.19였습니다. 둘 다 "2종목"이지만 분산 효과는 전혀 다릅니다. 같은 변동성이라 가정하고 반반 섞었을 때 위험이 줄어드는 폭은 각각 약 8.5%와 22%로 두 배 넘게 차이 납니다.
2. 종목을 늘리면 위험은 실제로 얼마나 줄까
코스피 24종목에서 N개를 무작위로 골라 같은 비중으로 담았을 때의 연변동성을 전부 계산해봤습니다. (N=1과 N=24는 가능한 조합이 적어 전수로, 나머지는 조합을 충분히 많이 뽑아 평균냈습니다.)
| 보유 종목 수 | 1 | 2 | 5 | 10 | 20 | 24 | 이론 하한 |
|---|---|---|---|---|---|---|---|
| 연변동성 | 40.7% | 32.4% | 26.4% | 23.9% | 22.6% | 22.4% | 21.5% |
1종목에서 2종목으로 갈 때는 8%포인트 넘게 떨어집니다. 여기까지는 효과가 확실합니다. 그런데 10종목에서 24종목으로 두 배 넘게 늘렸는데 23.9% → 22.4%, 1.5%포인트밖에 줄지 않았습니다. 그리고 아무리 더 담아도 21.5% 아래로는 내려가지 않습니다. 종목마다 제각각인 위험은 섞으면 사라지지만, 모두가 함께 짊어진 시장 위험은 남기 때문입니다.
이론적으로도 같은 결론이 나옵니다. 평균 상관을 ρ, 개별 변동성을 σ라 하면 등가중 N종목의 변동성은
대략 σ√(ρ + (1-ρ)/N)이고, N을 무한히 키워도 σ√ρ가 남습니다.
코스피 24종목의 평균 상관은 0.28이었고, 그 하한이 21.5%입니다.
3. 그래서 분산은 상관관계 문제다
상관계수는 두 자산이 얼마나 함께 움직이는지를 −1에서 +1 사이로 나타낸 값입니다. +1이면 완전히 같은 방향, 0이면 선형적인 관계가 없고, −1이면 완전히 반대입니다. 변동성이 같은 두 자산을 반반 섞을 때 위험이 줄어드는 폭은 이렇게 갈립니다.
| 상관계수 | +1.0 | +0.5 | 0.0 | −0.5 | −1.0 |
|---|---|---|---|---|---|
| 위험 감소 | 0% | 약 13% | 약 29% | 약 50% | 100% |
상관이 +1이면 두 개를 섞어도 위험이 전혀 줄지 않습니다. 똑같이 움직이는 것을 두 번 산 것과 비슷하니까요. 분산의 재료는 종목 수가 아니라 '서로 다른 움직임'이라는 뜻입니다. 참고로 상관계수는 쓰임에 따라 다르게 읽어야 하는데, 페어트레이딩처럼 두 종목의 관계를 이용하는 전략에서는 상관계수만으로는 부족하고 공적분을 봐야 합니다 — 페어트레이딩 짝 고르기 — 상관계수가 아니라 공적분에서 따로 다뤘습니다.
4. 유효 베팅 수(ENB) — 위험을 몇 갈래로 나눴는지 세는 법
"위험이 얼마나 줄었나"와 별개로 한 가지 질문을 더 할 수 있습니다. 이 포트폴리오의 위험은 몇 가지 서로 다른 요인이 만들고 있을까? 이걸 숫자 하나로 요약한 것이 ENB(Effective Number of Bets, 유효 베팅 수)입니다. Meucci가 제안한 지표로, 계산은 세 단계입니다.
- 포트폴리오의 공분산 구조를 주성분분해(PCA)해서 서로 직교하는 위험 요인을 뽑는다.
- 각 요인이 포트폴리오 분산에서 차지하는 비중
p를 계산한다. - 그 비중이 얼마나 고르게 퍼져 있는지를 엔트로피 지수
ENB = exp(−Σ p·ln p)로 환산한다.
한 요인이 위험의 대부분을 차지하면 ENB는 1에 가까워지고, 여러 요인이 비슷한 비중으로 나눠 가지면 커집니다. 비중만 보고 세는 ENC(등가중 N종목이면 그냥 N)와 나란히 놓고 보면, "장부상 몇 개"와 "위험 기준 몇 갈래"의 차이가 드러납니다.
5. 코스피 24종목 = 1.06
세 가지 유니버스에 같은 계산을 돌린 결과입니다.
| 항목 | 코스피 24종목 | 암호화폐 19종목 | 멀티에셋 5자산 |
|---|---|---|---|
| 평균 상관계수 | 0.28 | 0.59 | 0.07 |
| 개별 연변동성 평균 | 40.6% | 80.2% | 17.1% |
| 등가중 포트 연변동성 | 22.4% | 62.4% | 10.6% |
| ENC (비중만) | 24.0 | 19.0 | 5.0 |
| ENB (유효 베팅 수) | 1.06 | 1.01 | 2.31 |
| 최대 요인의 위험 비중 | 99.3% | 99.9% | 65.0% |
코스피는 종목이 24개인데 ENB는 1.06이었습니다. 최대 요인 하나가 포트폴리오 위험의 99.3%를 설명합니다. 암호화폐는 더 심해서 19종목에 1.01, 평균 상관이 0.59나 됩니다. 반면 주식·채권·금·원유·단기채권 5자산은 자산이 다섯 개뿐인데 ENB가 2.31이었습니다. 자산 개수는 코스피의 5분의 1인데 위험 구조는 두 배 넘게 다양한 셈입니다.
계산 방법을 바꿔도 결론은 비슷했습니다. 상하위 1%를 잘라낸 윈저화 후에도 1.06, 공분산 대신 상관 기준으로 회전하면 1.11, 2015~2026년을 연도별로 나눠 계산하면 1.03~2.37(중앙값 1.22)이었습니다.
6. 흔한 오해 두 가지
① "ENB 1.06이면 사실상 1종목 아닌가?" — 아닙니다. ENB는 종목 수가 아니라 위험이 요인에 얼마나 집중돼 있는지를 재는 값입니다. 1.06은 "한 종목만 가지고 있다"가 아니라 "균등하게 분산된 24개의 독립적인 베팅과는 거리가 멀다"는 뜻입니다. 24종목을 팔고 1종목만 사도 된다는 얘기가 결코 아닙니다.
② "최대 요인 99.3%면 가격이 99.3% 똑같다는 뜻인가?" — 아닙니다. 99.3%는 포트폴리오 위험(분산)에서 그 요인이 차지하는 비중입니다. 개별 종목의 가격이 서로 99.3% 일치한다는 의미가 아닙니다. 실제로 평균 상관은 0.28로 그리 높지 않은데도 ENB가 1.06인데, 이건 평균 상관 하나와 전체 상관 구조가 같은 정보가 아니기 때문입니다. 평균은 모든 쌍의 관계를 숫자 하나로 압축한 값이고, ENB는 위험이 어느 방향에 몰렸는지를 봅니다.
7. 내 포트폴리오의 ENB 직접 계산하기
계산 코드와 데이터를 전부 공개했습니다. 종목 코드만 바꾸면 본인 계좌로 같은 계산이 됩니다.
pip install finance-datareader pandas numpy # 등가중 python enb_calc.py 005930 000660 035420 051910 005380 # 비중이 다르면 코드:비중 python enb_calc.py 005930:40 000660:30 035420:30
코드 전문·데이터·실행 결과는 분산투자 ENB 계산기 페이지에 있습니다. 내려받지 않아도 페이지에서 코드를 그대로 읽고 검증하실 수 있게 펼쳐 뒀습니다.
읽는 법: ENC는 비중만 보고 센 유효 종목 수(등가중 N종목이면 N), ENB는 위험 요인 기준 유효 베팅 수입니다. ENB가 ENC보다 한참 작다면 늘린 것은 종목 수이지 위험의 원천이 아닙니다. 다만 ENB 2 이하가 위험하다는 식의 절대 기준은 없습니다 — 기간·종목·계산 방식에 따라 달라지므로 상대 비교로만 쓰세요.
8. 이 분석의 한계
숫자만 가져가지 마시고 이것도 같이 보셨으면 합니다.
- 생존편향 — 오늘 기준 시총 상위 종목을 골라 과거로 거슬러 계산했습니다. 2015년에 실제로 이 종목들만 골라 투자했다는 상황을 재현한 것이 아닙니다. 다만 이 분석의 목적은 수익률이 아니라 상관 구조와 위험 집중도를 보는 것이라는 점은 감안해야 합니다.
- 30종목 중 24개만 사용 — 나머지는 10년 이상의 과거 데이터가 없어 제외했습니다.
- 등가중 가정 — 실제 계좌는 비중이 다릅니다. 특정 종목에 몰려 있다면 집중도는 더 커질 수 있습니다.
- 암호화폐는 약 2년치 — 업비트 상장 이력 때문에 거래대금 상위 37개 중 17개가 데이터 부족으로 빠졌습니다. 코인의 1.01은 코스피의 1.06보다 더 조심스럽게 해석해야 합니다.
- 분산은 위기를 막는 방패가 아닙니다 — 이번 데이터에서 하락 상위 10% 구간의 평균 상관은 0.28→0.25로 크게 오르지 않았지만, 역사적으로 금융위기 때 상관이 높아지는 현상은 반복적으로 관찰돼 왔습니다. 분산은 평상시 위험을 낮추는 도구로 이해하는 편이 안전합니다.
9. 자주 묻는 질문
Q. 그래서 몇 종목이 정답인가요?
개수로 답하기 어려운 질문입니다. 이 데이터에서는 1종목 → 몇 종목 구간의 효과가 크고,
10종목을 넘어가면 같은 시장 안에서는 추가 효과가 빠르게 작아졌습니다.
개수를 더 늘리는 것보다 서로 다른 이유로 움직이는 자산을 섞는 쪽이 ENB를 더 크게 움직였습니다.
Q. 전략을 여러 개 돌리는 것도 분산인가요?
층위가 다른 분산입니다. 이 글은 종목·자산 층위를 다뤘고, 한 계좌에서 여러 자동매매 전략을 함께 돌릴 때의
상관관계·자금 배분은 전략 하나에 몰빵하지 마세요 — 여러 자동매매 전략을 한 계좌에서 돌리는 법에서 정리했습니다.
두 층위 모두 "같이 움직이면 분산이 아니다"라는 원리는 같습니다.
Q. 팩터 투자와는 무슨 관계인가요?
팩터는 수익률을 특성별로 분해하고, ENB는 위험을 통계적 주성분으로 분해합니다.
분해 대상이 다릅니다. 팩터 쪽은 퀀트의 심장 '팩터'란 무엇인가를 참고하세요.
Q. 이 계산을 자동으로 돌려볼 수 있나요?
공개한 코드는 한 번 실행해 숫자를 보는 스크립트입니다. 보유 종목이 바뀔 때마다 자동으로 계산하거나
리밸런싱까지 연결하려면 별도 프로그램이 필요합니다.
※ 이 글의 수치는 널리 공개된 포트폴리오 이론을 과거 데이터로 검증한 교육·검증 목적의 예시입니다. 알고랩(퀀트웍스)은 투자자문업·투자일임업을 영위하지 않으며, 특정 종목·비중·매매 시점에 관한 개별 자문이나 추천을 제공하지 않습니다. 언급된 종목은 계산에 쓴 데이터일 뿐 매수·매도 권유가 아닙니다. 과거 데이터로 측정한 값이며 미래의 분산 효과를 보장하지 않습니다. 모든 투자 판단과 그에 따른 책임은 이용자 본인에게 있습니다.