포트폴리오 집중 리스크 측정하기
종목 수를 세는 것은 분산을 측정하는 것이 아닙니다. 서른 개 종목을 보유하고도 네 개를 보유한 것처럼 움직이는 포트폴리오가 있습니다. 이 가이드는 집중도를 실제로 설명하는 세 가지 숫자 — 최대 종목 비중, 허핀달-허시먼 지수, 유효 종목 수 — 를 각각 어떻게 계산하는지, 그리고 각각이 어디에서 오해를 부르는지 다룹니다.
종목 수를 세는 것이 통하지 않는 이유
종목이 많을수록 위험이 낮다는 직관은 대체로 맞고 정확히 쓸모없습니다. 각각 열 종목을 보유한 두 포트폴리오를 생각해 봅시다. 첫 번째는 자본을 10%씩 균등하게 나눕니다. 두 번째는 한 종목에 60%를 넣고 나머지 40%를 아홉 종목에 흩어 놓습니다.
두 포트폴리오 모두 보유 종목 수는 열 개입니다. 첫 번째는 실제로 분산되어 있지만, 두 번째는 한 회사에 대한 베팅에 장식을 조금 붙인 것입니다. 이 둘에 같은 답을 내놓는 지표는 여러분이 신경 쓰는 것을 측정하고 있지 않습니다.
정말로 알고 싶은 것은 포트폴리오의 결과가 얼마나 적은 수의 의사결정에 얼마나 크게 좌우되는가입니다. 그러려면 가중치가 필요합니다.
최대 종목 비중
가장 단순하면서 쓸모 있는 척도는, 단일 최대 종목이 전체 평가액에서 차지하는 비율입니다.
max_weight = max(valuei) / Σ valuei
이것을 가장 먼저 확인할 가치가 있는 이유는 가장 위험한 실패 유형을 즉시 잡아내기 때문입니다. 한 종목이 포트폴리오의 45%라면 나머지 분석은 크게 중요하지 않습니다. 나머지 배분이 아무리 정교해도 그 한 종목이 수익률, 낙폭, 변동성을 지배하게 됩니다.
약점은 종목 하나만 본다는 것입니다. 다섯 종목을 각각 20%씩 보유한 포트폴리오의 최대 비중은 20%로 합리적으로 들리지만, 실제로는 그 숫자가 시사하는 것보다 훨씬 집중되어 있습니다. 이를 잡으려면 분포 전체를 고려하는 척도가 필요합니다.
허핀달-허시먼 지수
HHI는 반독점 경제학에서 나온 개념으로, 규제 당국이 한 산업이 경쟁자들 사이에서 얼마나 집중되어 있는지 측정할 때 사용합니다. 같은 수학이 포트폴리오에도 깔끔하게 적용됩니다. 각 비중을 제곱한 뒤, 그 제곱값을 모두 더하면 됩니다.
HHI = Σ wi² 여기서 wi = valuei / total value
제곱이 바로 이 지표를 작동하게 만드는 장치입니다. 큰 비중에 불균형하게 큰 벌점을 매기죠. 40%짜리 종목은 합계에 0.16을 기여하지만, 10%짜리 네 종목은 같은 자본을 나타내면서도 합쳐서 0.04만 기여합니다. 작은 종목은 거의 보이지 않게 되는데, 실제로 영향이 작으니 올바른 처리입니다.
지수의 범위도 유용한 형태로 정해져 있습니다.
| 포트폴리오 | HHI | 해석 |
|---|---|---|
| 단일 종목 | 1.00 | 최대 집중 |
| 두 종목 동일 비중 | 0.50 | 매우 집중 |
| 열 종목 동일 비중 | 0.10 | 보통 수준의 분산 |
| 오십 종목 동일 비중 | 0.02 | 폭넓게 분산 |
패턴이 눈에 보입니다. N개 종목을 동일 비중으로 보유하면 HHI는 정확히 1/N이 됩니다. 바로 이 관계가 다음 지표를 가능하게 합니다.
유효 종목 수
HHI는 수학적으로는 깔끔하지만 감이 잘 오지 않습니다. HHI 0.3877이라는 값 자체는 직관적으로 아무것도 전달하지 않습니다. 역수를 취하면 의미가 곧바로 드러납니다.
Neffective = 1 / HHI
이는 정말 유용한 질문에 답합니다. 실제 보유와 같은 집중도를 만들려면 동일 비중 종목이 몇 개 필요한가? 서른 종목을 보유했는데 유효 종목 수가 여섯이라면, 그 포트폴리오는 여섯 종목짜리 포트폴리오처럼 움직인다고 분명히 말해 주는 것입니다. 나머지 스물네 종목은 잡음입니다.
통계에 익숙한 분이라면 생태학에서 종 다양성을 측정할 때 쓰는 역심프슨 지수임을 알아볼 것입니다. 다른 종류의 모집단에 같은 계산을 적용한 것이며, 해석도 그대로 옮겨 옵니다.
계산 예시
세 종목으로 구성된 기술주 포트폴리오를 봅시다.
| 종목 | 평가액 | 비중 | 비중² |
|---|---|---|---|
| AAPL | $25,000 | 45.45% | 0.2066 |
| MSFT | $22,000 | 40.00% | 0.1600 |
| NVDA | $8,000 | 14.55% | 0.0212 |
| 합계 | $55,000 | 100% | 0.3877 |
HHI가 0.3877이므로 유효 종목 수는 1 / 0.3877 = 2.58입니다. 세 종목을 보유하지만 실질적으로는 약 두 종목 반처럼 움직입니다. 15%에 못 미치는 NVDA는 전체 위험 프로필에 기여하는 바가 매우 작습니다.
최대 종목 비중은 45.45%로, 그 자체만으로도 이미 경고 신호입니다. 두 숫자를 함께 보면 일관된 이야기가 보입니다. 이것은 집중된 베팅이며, NVDA를 추가한 것으로 그 성격이 의미 있게 달라지지는 않았습니다.
이 지표들이 놓치는 집중
여기에 함정이 있습니다. 위의 모든 지표는 종목들이 서로 독립적이라고 전제합니다. 실제로는 그렇지 않습니다.
예시의 포트폴리오는 100% 기술주입니다. 세 종목을 완벽히 동일한 비중으로 재조정해 유효 종목 수를 건전한 3.0으로 올리고 최대 비중을 33%로 낮춘다 해도, 여전히 한 섹터의 운명에 대한 분산되지 않은 단일 베팅입니다. 종목 단위 지표는 개선되지만 실제 위험은 거의 움직이지 않습니다.
따라서 제대로 된 집중도 분석은 최소한 세 단계까지 들여다봐야 합니다.
- 종목 단위 — 최대 비중, HHI, 유효 종목 수
- 섹터 단위 — 개별 종목이 아니라 섹터 그룹에 같은 계산을 적용
- 팩터 단위 — 금리 민감도, 모멘텀, 단일 통화처럼 동일한 기저 동인에 대한 노출을 공유하는지 여부
대부분의 분석이 멈추는 곳이 세 번째 단계이고, 진짜 놀라움이 숨어 있는 곳도 거기입니다. 서로 다른 섹터의 두 종목이라도 같은 거시 요인에 반응한다면, 같은 섹터의 두 종목보다 훨씬 높은 상관을 보일 수 있습니다. 모든 섹터에 걸쳐 분산된 것처럼 보이면서도, 실제로는 금리 하락에 대한 레버리지 베팅인 포트폴리오도 존재합니다.
API로 계산하기
이 계산들은 직접 구현할 수 있을 만큼 단순합니다. HHI는 코드 세 줄이면 됩니다. 정말 어려운 부분은 그 다음입니다. 티커를 섹터와 팩터 노출로 연결하고, 그 참조 데이터를 여러 시장에서 최신으로 유지하며, 숫자를 판단으로 옮기는 일이죠.
PORTIQA API는 한 번의 요청으로 세 가지 집중도 지표를 섹터·팩터 분석과 함께 반환합니다.
curl -X POST https://portiqa.ai/evaluate \
-H "Authorization: Bearer $PORTIQA_KEY" \
-H "Content-Type: application/json" \
-d '{
"risk_level": "medium",
"positions": [
{ "ticker": "AAPL", "market_value": 25000 },
{ "ticker": "MSFT", "market_value": 22000 },
{ "ticker": "NVDA", "market_value": 8000 }
]
}'
응답에서 관련된 필드는 다음과 같습니다.
{
"score": 45.9,
"status": "Neutral",
"max_position_weight": 45.45,
"max_position_ticker": "AAPL",
"effective_positions": 2.58,
"top_sector": "Technology",
"top_sector_weight": 100,
"score_components": {
"diversification": 34.5,
"risk": 99.2,
"quality": 72.1
}
}
두 구성 요소 사이의 불일치에 주목하세요. 시사하는 바가 큽니다. risk는 99.2점입니다. 개별 변동성이 낮은 크고 안정적인 우량 기업들이기 때문입니다. diversification은 34.5점인데, 그 모든 우량함이 한 섹터에 몰려 있기 때문입니다. 하나로 뭉친 점수였다면 이 긴장은 감춰졌을 것입니다. 분리된 구성 요소는 어떤 문제를 풀어야 하는지 정확히 보여 줍니다.
전체 필드 문서는 API 레퍼런스에 있으며, Python·JavaScript·PHP 구현 예시는 코드 예제에 있습니다.