이 블로그 검색
Korea Industry Intelligence는 반도체, 이차전지, 석유화학, 건설기계, 제약바이오, 방위산업 등 한국 주요 산업의 구조를 공개 자료로 분석합니다.
추천 가젯
[13.분석 플랫폼] 모델 검정 공부하기 - 백분위
우연인가를 묻다가, 어디쯤 서 있나를 묻습니다.
앞의 다섯 편은 질문이 전부 같았습니다. "이게 우연인가." t검정도 카이제곱도 이항검정도, 결국 우연으로 설명되는지를 물었지요.
오늘은 질문이 바뀝니다. "이게 어디쯤 서 있나."
그래서 엄밀히 말하면 오늘 다루는 건 검정이 아닙니다. 가설도 없고 p값도 없어요. 그냥 줄을 세우는 일입니다. 그런데 이게 저희 플랫폼에서 매일 돌아가는 자입니다. 저평가 스크리너가 상장사 1,500곳을 줄 세우는 방식이 바로 이거거든요.
검정만 배우고 이걸 안 배우면 이상한 일이 생깁니다. 유의성은 따질 줄 아는데 "그래서 이게 싼 건가"에는 답을 못 하는 상태가 되지요. 실무에서 훨씬 자주 받는 질문이 되겠지요.
길어질 것 같아 지도를 먼저 그려 두겠습니다.
하나, 오늘 풀 문제
어떤 회사의 PBR이 0.8입니다. 싼 건가요? 1보다 작으니까 장부가보다 싸게 거래되는 건 맞습니다. 그런데 그것만으로는 판단이 안 됩니다. 업종을 보면 이렇거든요.
같은 0.8인데 뜻이 정반대입니다. 반도체에서 0.8이면 업종 평균의 3분의 1도 안 되니 아주 싼 겁니다. 은행에서 0.8이면 업종 평균의 두 배니 오히려 비싼 거고요.
이 "몇 등인지"를 숫자로 만든 게 백분위입니다.
왜 업종마다 배수가 다른가
곁다리인데 짚고 가면 좋습니다. 배수가 업종마다 다른 건 시장이 이상해서가 아니라 이유가 있습니다.
은행이 PBR 0.4 근처인 건 자본을 많이 쌓아야 하는 규제 산업이기 때문이고, 2차전지가 3배가 넘는 건 성장 기대가 붙어 있기 때문이지요. 구조가 다른 것을 같은 자로 재면 안 됩니다.
둘, 백분위는 값이 아니라 순위입니다
반도체 업종에 회사가 20곳 있다고 해봅시다. PBR을 낮은 순으로 줄 세우면 이렇게 됩니다.
반도체 20곳 · PBR 낮은 순 (예시 자료)
1등 PBR 0.6 2등 PBR 0.7 3등 PBR 0.8 ← 우리 회사 4등 PBR 0.8 5등 PBR 0.9 6등 PBR 1.0 7등 PBR 1.2 8등 PBR 1.4 9등 PBR 1.6 10등 PBR 1.9 11등 PBR 2.1 12등 PBR 2.4 13등 PBR 2.7 14등 PBR 2.9 15등 PBR 3.2 16등 PBR 3.4 17등 PBR 3.9 18등 PBR 4.6 19등 PBR 5.8 20등 PBR 8.0 ← 이상치?
산식과 계산
산식에 원래 값이 한 번도 등장하지 않습니다. 세는 것은 개수뿐이에요. PBR이 0.8이든 0.08이든 상관없습니다. 자기보다 작은 게 몇 개냐만 봅니다.
그런데 계산 방식이 여럿입니다
여기가 실무에서 실제로 걸리는 부분입니다. 같은 데이터인데 백분위가 다르게 나올 수 있어요. 동점 처리를 어떻게 하느냐 때문입니다.
차이가 커 보이진 않지만, 1,500개 종목을 점수로 줄 세울 때는 순위가 실제로 갈립니다. 그리고 어느 방식을 쓰는지 안 밝히면 남이 재현할 수가 없어요.
저희는 방식 B를 씁니다. 동점을 절반씩 나눠 갖는 방식인데, 같은 값에 같은 백분위를 주면서도 분포의 가운데가 50에 맞아떨어지거든요. 파이썬이나 엑셀에서 함수 이름이 조금씩 다르니 무엇을 쓰는지는 적어두는 편이 낫습니다.
동점 처리 같은 값이 여럿일 때 순위를 어떻게 나눌지. 방식에 따라 결과가 달라집니다.
순위 척도 값의 크기가 아니라 순서만 쓰는 척도. 백분위가 여기 속합니다.
셋, 중앙값, 사분위, 그리고 IQR
백분위 중에 특히 자주 쓰는 지점들이 있습니다. 이름이 따로 붙어 있어요.
위 반도체 20개사로 실제로 구해 보면 이렇습니다.
IQR이 하는 일 · 이상치 걸러내기
IQR을 쓰는 가장 흔한 용도가 이상치 판정입니다. 관례적인 규칙이 하나 있어요.
20개 중 PBR 8.0짜리 회사 하나가 걸립니다. 이 회사를 빼고 볼지 넣고 볼지가 판단이고요.
1.5라는 숫자는 수학적 필연이 아니라 관례입니다. 더 엄격하게 보려면 3.0을 쓰기도 하고요. ④편의 0.05와 같은 성격입니다. 누가 정한 선이지 자연법칙이 아니에요.
평균과 중앙값이 갈리는 이유
평균과 중앙값을 비교해 보면 차이가 분명합니다. 이게 실무에서 평균 얼마냐고 묻지만, 그 분포를 점검하는 경우가 많지 않지요. 여기서 많은 데이터 오류가 생기게 됩니다. 그래서 습관적으로 중앙값을 한번 같이 보면, 이 분포가 어떤지 감이 오게됩니다.
이처럼 평균 110억이라고 하면 이 다섯 곳을 완전히 잘못 설명하는 겁니다. 네 곳이 평균 근처에도 못 가니까요.
배수, 시가총액, 영업이익, 딜 규모. 전부 아래는 0에서 막히고 위로는 열려 있는 구조입니다. 그래서 오른쪽으로 긴 꼬리가 생기고, 평균이 그 꼬리에 끌려갑니다. 재무 데이터에서 중앙값을 기본으로 쓰는 이유가 이겁니다.
IQR Q3 − Q1. 가운데 절반이 차지하는 폭이며, 이상치 판정에 씁니다.
이상치 다른 관측과 동떨어진 극단값. 평균은 흔들지만 중앙값은 잘 안 흔듭니다.
치우침(왜도) 분포가 한쪽으로 쏠린 정도. 재무 데이터는 대개 오른쪽으로 치우쳐 있습니다.
넷, 대신 거리를 버렸습니다
공짜는 없지요. 백분위는 값을 안 쓰는 대신 값들 사이의 거리 정보를 통째로 버립니다.
먼저 좋은 점부터
단위가 사라진다 PBR도 0~100, ROE도 0~100, 부채비율도 0~100. 단위가 다른 지표를 같은 눈금에 올려 합칠 수 있습니다.
분포 모양을 안 탄다 정규분포든 치우친 분포든 상관없습니다. 순서만 매기면 되니까요. 재무 데이터처럼 치우친 자료에 특히 잘 맞습니다.
그런데 대가가 있습니다
순위가 한 칸 차이라고 값도 조금 차이나는 게 아닙니다. 어디에 있느냐에 따라 완전히 달라져요.
실무로 옮기면 이런 이야기입니다. 저평가 점수 82점과 85점은 사실상 같은 종목입니다. 그런데 95점과 98점은 다를 수 있어요. 꼬리 쪽 3점이 훨씬 무겁거든요.
다섯, 평균 하나로 말하면 사라지는 것
분위수 회귀
여기서 한 걸음 더 갑니다. 분포를 평균 하나로 누르면 안 보이는 게 생깁니다.
집값 상승률을 예로 들겠습니다. "집값이 연 9% 올랐다"고 하면 깔끔하지요. 그런데 분위별로 나눠서 재보면 이렇게 나옵니다.
전용 84㎡ 실거래 중앙값 · 분위별 연 상승률 (플랫폼 실측, 2024-09 ~ 2026-08, 19개 지역)
τ = 0.1 하위 10% 6.6 억 → 7.8 억 연 +8.9 % τ = 0.25 7.9 억 → 9.6 억 연 +10.9 % τ = 0.5 중앙값 13.9 억 → 16.4 억 연 +8.9 % τ = 0.75 17.9 억 → 24.1 억 연 +16.8 % τ = 0.9 상위 10% 26.3 억 → 33.1 억 연 +12.8 %
평균 한 줄로는 '9%'인데, 상급지와 중위는 4%p 가까이 갈립니다. 어디가 얼마나 올랐는지는 분위로 나눠야 보입니다.
여기서 쓰는 τ(타우)는 분위를 가리키는 기호입니다. τ=0.5면 중앙값, τ=0.9면 상위 10% 경계고요.
일반 회귀와 뭐가 다른가
계산 방식 · 비대칭 손실
일반 회귀는 오차를 제곱해서 더합니다. ①편의 최소제곱법 OLS이지요. 위로 틀리든 아래로 틀리든 벌이 같습니다. 분위수 회귀는 오차에 방향별로 다른 가중치를 줍니다.
τ=0.9에서는 아래로 틀리는 걸 아홉 배 무겁게 벌합니다. 그러면 선이 위쪽으로 밀려 올라가고, 결과적으로 관측의 90%가 선 아래에 놓이게 되지요. 그게 곧 90분위 선입니다.
집값을 예로 들어, 해마다 중앙값을 구하면 5억, 5.5억, 6억 같은 점 세 개가 나오지요. 그런데 "연간 몇 % 오르는가"를 알려면 이 점들을 관통하는 선을 그어야 합니다. 그 선을 긋는 게 분위수 회귀고, 그래서 기울기가 나온 겁니다.
분위수 회귀 평균이 아니라 특정 분위가 어떻게 움직이는지를 추정하는 회귀.
비대칭 손실 위로 틀린 것과 아래로 틀린 것에 다른 벌을 주는 방식.
최소제곱 오차를 제곱해 더한 값을 최소로 만드는 방식. 일반 회귀가 쓰는 계산법입니다.
여섯, 점수로 합치기
스크리너가 도는 방식
저평가 스크리너가 매주 시총 상위 1450개 종목을 0에서 100점으로 줄 세웁니다. 여기서 백분위가 실제로 하는 일을 단계별로 보겠습니다.
② 방향을 맞춘다는 게 뭔가
이걸 놓치면 점수가 통째로 뒤집힙니다. 지표마다 좋은 방향이 다르거든요.
그래서 ROE 같은 지표는 100에서 빼서 뒤집어 놓습니다. 그래야 "점수가 높을수록 좋다"로 통일되니까요. 단순한 처리인데 실수하기 쉽습니다.
③ 왜 백분위로 바꿔야 합치나
원래 값 그대로는 더할 수가 없습니다. 단위가 제각각이거든요.
이게 백분위를 쓰는 실질적인 이유입니다. 서로 다른 지표를 하나의 점수로 만들려면 먼저 눈금을 통일해야 하는데, 백분위가 그 일을 합니다.
①번의 "업종 내"가 핵심입니다
전체 1,500개를 한 줄로 세우면 은행이 전부 저평가 상위에 몰립니다. PBR이 원래 낮은 업종이니까요. 그러면 스크리너가 아니라 업종 분류기가 됩니다.
업종 안에서만 줄 세워야 "같은 은행들 중에서 유독 싼 은행"을 찾을 수 있습니다. 맨 앞에서 본 반도체 0.8과 은행 0.8 이야기가 이거였고요.
일곱, 여기서 한계점을 알고 가긴 해야 합니다
이게 제일 자주 놓치는 지점입니다. 백분위는 그 집단 안에서의 위치일 뿐이에요.
업종 전체가 고평가 구간에 있으면, 그 안에서 백분위 5인 종목도 절대 기준으로는 비쌀 수 있습니다. 반에서 1등인데 전국 평균 이하인 상황이지요.
그래서 저희는 업종 내 분위수와 별개로 절대 수준 지표를 같이 봅니다. 순위만 믿으면 업종 전체가 무너질 때 같이 무너집니다.
백분위 49와 51은 사실상 같은 종목입니다. 그런데 "상위 절반"이라는 선을 그으면 하나는 안에, 하나는 밖에 있게 되지요.
데이터가 조금만 바뀌어도 순위가 뒤집힙니다. 다음 주에 종목 하나가 상장폐지되기만 해도요. 분위 경계에 걸친 종목은 그렇다고 표시하는 게 정직합니다.
④편에서 p값 0.049와 0.051 이야기를 했던 것과 같은 문제입니다. 어디서든 선을 그으면 경계가 생기고, 경계는 늘 불안정합니다.
종목이 다섯 곳뿐인 업종을 생각해 보세요. 백분위가 0, 20, 40, 60, 80 다섯 개밖에 안 나옵니다. 중간값이 존재하지 않는 거지요.
그리고 한 종목만 빠져도 나머지 순위가 통째로 흔들립니다. 20곳이면 한 곳이 5%p를 움직이는데, 5곳이면 20%p를 움직이거든요.
이게 계층 모형과 축소 추정이 다루는 문제입니다. 표본이 적은 그룹은 자기 데이터만 믿지 말고 전체 평균 쪽으로 당겨 읽으라는 것이요. 지금은 소형 업종을 인접 업종과 묶어 처리하고 있습니다.
이걸 밸류트랩이라고 부릅니다. PBR 백분위가 하위 5%인 종목이 있다고 해봅시다. 아주 싸 보이지요.
그런데 싼 데는 이유가 있는 경우가 많습니다. 사양산업이거나, 회계에 문제가 있거나, 장부상 자산이 실제로는 가치가 없거나요.
순위는 "왜 싼지"를 알려주지 않습니다. 그건 순위표 밖에서 확인해야 할 일입니다. 저희 스크리너가 밸류트랩 감점 항목을 따로 두는 이유이기도 하고요.
여덟, 플랫폼에서 이렇게 씁니다
집값 분석에서는 분위수 회귀를 씁니다. 평균만 보면 "집값이 올랐다" 한 문장으로 끝나는데, 분위로 나누면 어디가 얼마나 올랐는지가 갈립니다. 이 차이가 정책 이야기로 이어지지요. 다만 동행이지 인과가 아니라는 것은 명시해서 씁니다. 그 이야기가 바로 다음 편이고요.
M&A 배수에도 같은 자를 댑니다
유사 딜 배수를 뽑을 때도 똑같은 문제가 나옵니다. 전략적 인수 한 건이 20배에 거래되면 평균이 통째로 끌려가거든요.
단일 배수 하나보다 범위로 제시하는 편이 정직합니다. 표본이 30건이면 그 정도 불확실성은 당연히 있는 거고요. 이 이야기는 재무와 통계를 합치는 편에서 따로 다루겠습니다.
남는 생각
이 편을 쓰면서 좀 이상했습니다. 검정 시리즈에 검정이 아닌 게 하나 끼어 있는 셈이니까요. 그런데 실무에서 제일 많이 쓰는 게 이겁니다. 화면에 매일 뜨는 숫자도 이거고요. p값을 계산할 일은 한 달에 몇 번인데, 줄 세우는 일은 매일 합니다.
그리고 순위표를 만들다 보면 자꾸 잊게 되는 게 있어요. 1등이 좋다는 뜻이 아니라는 것. 그냥 이 집단에서 제일 앞이라는 것뿐인데, 화면에 1등이라고 찍히면 그게 좋아 보이거든요. 스크리너를 만들면서 제일 조심하는 부분입니다.
이게 인생에도 적용되는게, 중요한 결정을 돌이켜 생각해보면 우리가 얼마나 표본에 대한 생각없이 의사결정을 할 수 있는지를 보게 됩니다. 비교가 의미가 없는게, 얼마나 적은 수의 표본에 의존해서 우리의 의사결정을 내리기도 하지요. 행복과 불행은 상대적이라는 걸 우리는 잊어버리곤 합니다. 1과 2사이의 거리가 상대적으로 다 다를텐데, 그저 1 차이라고 해석하는 경우.
지금이 불행해 보여도 사실 상위 10%였다면, 지금이 행복해 보여도 하위 10%였다면 이런식으로 상시 비교하며 행복의 잣대를 들이대는 경우. 결국 인생 앞에 이런 비교가 무슨 의미가 있겠습니까? 통계적으로도 아무 의미가 없습니다. 그저 내 눈 앞에 구덩이를 피하고만 싶어하지요. 그리고 저 역시도 이런 오류에 빠지고 그러곤 합니다. 운명이라는 이름으로 선택을 하지요. 항상 겸허하고 감사하며 살아야겠다고 생각하는 이유이기도 합니다.
https://k-valuechain.com/companies/screener
작성: 2026. 8. 이알렉산드로
댓글
댓글 쓰기