기본 콘텐츠로 건너뛰기

추천 가젯

[스크리너 톱700-640] 포스코엠텍 - 리튬 테마가 만든 자리, 사업은 여전히 철강 포장

밸류체인 플랫폼의 저평가 스크리너를 순서대로 뜯어보는 연재, 601~700위 구간입니다. 601~700위는 전부 저평가 컷(67.2점)에 못 미친 '적정' 판정이고, 이 연재를 통틀어 컷에서 가장 먼 구간입니다. 640위 포스코엠텍(009520). 기준일 2026-08-28, 스크리너 점수 52.9점 — 저평가 컷에 14.3점 모자란 적정 판정입니다. 가치함정 주의 깃발(yellow) 이 떠 있습니다. 포스코 제철소의 포장 용역사, 이름과 달리 리튬 회사가 아니다 포스코엠텍의 한국거래소 업종 분류는 '1차 철강 제조업'이고, 공시된 주요 제품은 철강포장용역과 알루미늄 탈산제다. 포항·광양제철소에서 나오는 냉연제품 포장 작업을 도맡고, 포스코의 마그네슘·페로망간 설비 일부를 위탁운영한다. 원래 하던 페로실리콘(합금철) 사업은 2019년 심팩(SIMPAC)에 매각해 지금은 남아 있지 않다. 최대주주는 포스코(지분 48.85%)이고, 2026년 7월 포스코와 1,781억원 규모(최근 매출액 대비 49.8%) 포장 외주계약을 다시 맺었다 — 매출의 절반이 사실상 단일 계약에서 나오는 구조다. 흥미로운 건 2026년 대법원 판결이다. 포스코 사내하청 다수가 불법파견으로 인정돼 직접고용 대상이 됐지만, 포스코엠텍 소속 냉연포장 근로자 4명은 예외였다 — 법원이 "포스코엠텍이 독립적인 기술과 전문성을 갖춘 업체"라고 판단했기 때문이다. 사업 존속성 관점에서는 이 판결이 오히려 이 회사의 아웃소싱 지위를 지켜준 셈이다. 연도 매출(억원) 영업이익(억원) 순이익(억원) 2022 3,422 64 48 2023 3,414 45 49 2024 3,466 14 6 2025 3,574 10 14 매출은 3,400억대에서 정체된 채 영업이익만 4년 연속 쪼그라들었다(64억→45억→14억→10억). 2025년은 순이익(14억)이 영업이익(10억)보다 많은 역전이 나오는데, 원인은 리서치로 확인되지 않는다 — 영업외 손익 ...

[12.분석 플랫폼] 모델 검정 공부하기 - 표준오차

한 번만 쟀는데도, 눈금이 틀려 있는 경우.

지난 편은 여러 번 측정하면서 생기는 문제였습니다. 여섯 번 긁으면 하나쯤 걸린다는 이야기였죠.

오늘은 다릅니다. 딱 한 번만 측정하는데도 답이 틀립니다. 자를 잘못 대서가 아니라, 자에 새겨진 눈금 자체가 어긋나 있어서요.

솔직히 이 편이 제일 재미없습니다. 새로운 걸 발견하는 자가 아니라 이미 나온 발견을 깎아내리는 자거든요. 이름도 뉴이-웨스트니 클러스터니 딱딱하고요.

그런데 제 경험상 결론을 가장 자주 뒤집는 게 이겁니다. 실제로 제 플랫폼에서 PBR 계수가 이 보정 하나로 유의에서 경계로 내려앉았습니다. 데이터를 바꾼 것도, 모델을 바꾼 것도 아닌데요.

길어질 것 같아 미리 지도를 그려 두겠습니다.

① 표준오차가 정확히 무엇인가 ← 여기부터 다시 ② 왜 얽히면 표준오차가 커지는가 ← 손으로 계산 ③ 얽힘에는 두 종류가 있다 ← 이분산 · 자기상관 ④ 그래서 이름이 셋이다 ← White · Newey-West · 클러스터 ⑤ 어느 걸 언제 쓰나 ← 결정표 ⑥ 한계점과 실측

그런데 ANOVA는 뭔가요?? 반드시 만나는 그 이름 ANOVA

본론 가기 전에 하나 짚고 가겠습니다. 다중검정을 검색하면 ANOVA(분산분석)가 꼭 같이 나오거든요. 왜 붙어 다니는지 알아두면 좋습니다.

집단이 셋 이상일 때 t검정을 쓰면 이렇게 됩니다.

세 집단 A-B, A-C, B-C → 3 번 네 집단 짝이 6 개 → 6 번 다섯 집단 짝이 10 개 → 10 번

이거 기억이 나실 것 같습니다. 어릴적 배웠던 컴비네이션이지요. 4개중에 2개를 선택하는 경우, (4!/(2!×2!)) 이거 조합 계산하는거 다들 기억이 상기가 되실런지요.

즉, 이 놈을 이용해서 짝을 지어 t검정을 반복하면 그게 바로 지난 편의 다중검정입니다. 집단이 늘수록 검정 횟수가 확 늘고요.

ANOVA는 이걸 한 번에 처리합니다. "세 집단 평균이 전부 같은가"를 검정 하나로 물어서, 짝짓기로 생기는 다중검정을 애초에 안 만드는 거지요.

ANOVA가 쓰는 측정도구 · F통계량

여기서 F통계량이라는 게 나옵니다. 이 시리즈에서 처음 나오는 자라 짚고 가겠습니다. 산업 세 곳의 영업이익률을 비교한다고 해봅시다. 회사가 세 곳씩 있습니다.

산업 A 8 10 12 평균 10 산업 B 13 15 17 평균 15 산업 C 18 20 22 평균 20 세 산업의 이익률이 정말 다른가?

평균이 10, 15, 20이니 달라 보이긴 합니다. 그런데 회사마다도 값이 다르잖아요. 산업 A 안에서도 8부터 12까지 흩어져 있고요. 그러니 이렇게 물어야 합니다.

★ 산업끼리의 차이가, 산업 안에서의 흩어짐보다 충분히 큰가?

이 질문을 그대로 나눗셈으로 만든 게 F입니다.

F = 집단 간 흩어짐 / 집단 내 흩어짐 집단 간 산업 평균들이 서로 얼마나 벌어져 있나 10, 15, 20 이 전체 평균 15 에서 얼마나 떨어졌나 집단 내 같은 산업 안에서 회사들이 얼마나 흩어졌나 8, 10, 12 가 자기 평균 10 에서 얼마나 떨어졌나

이게 결국은 다 같은 구조입니다. 신호를 잡음으로 나누는 것. 요즘 우리 세상을 바꾸고 있는 AI도 뿌리는 여기 닿아 있습니다. 신경망이 학습하는 것도 예측과 정답 사이의 거리를 줄이는 일이니까요. 회귀가 잔차 제곱합을 최소화하는 것과 같은 발상입니다.

실제로 계산해 보면

집단 간 제곱합 = 3 × [ (10−15)² + (15−15)² + (20−15)² ] = 3 × 50 = 150 자유도 2 (집단 3 개 − 1) → 집단 간 흩어짐 = 150 ÷ 2 = 75 집단 내 제곱합 = 각 산업 안의 편차 제곱을 다 더함 = 8 + 8 + 8 = 24 자유도 6 (관측 9 개 − 집단 3 개) → 집단 내 흩어짐 = 24 ÷ 6 = 4 F = 75 / 4 = 18.75

아 참고로, 자유도는 데이터에서 정보를 하나 빌려 쓰면 자유도가 하나 줄어듭니다. 분자는 전체 평균 하나를 빌려 씀 → 3 − 1 = 2. 분모는 집단 평균 셋을 빌려 씀 → 9 − 3 = 6.

이걸 표현해 보자면, F(2, 6) 분포에서 오른쪽 꼬리 넓이가 정확히 5%가 되는 지점이 5.14인데(이건 정해져 있어서 계산하지 않아도 됩니다), 우리의 결과값인 18.75는 한참 그 지점을 넘으니 산업에 따라 이익률이 다르다고 말할 수 있습니다.

F(2, 6) 분포 · 여기부터 오른쪽 넓이가 5%

█
█▆
█▆▄        세 산업이 정말 같다면
█▆▄▃▂      F 는 대개 이 근처
█▆▄▃▂▂▁▁▁▁▁│▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
0    2    4  5.14  7         9  →  우리 값 F = 18.75 는 화면 밖 저 오른쪽

집단 내 흩어짐이 커지면 어떻게 되나

평균은 그대로 두고 회사별 편차만 넓혀 보겠습니다. 평균 10, 15, 20은 똑같습니다.

산업 A 2 10 18 평균 10 (그대로) 산업 B 7 15 23 평균 15 (그대로) 산업 C 12 20 28 평균 20 (그대로) 집단 간 흩어짐 75 ← 변화 없음 집단 내 흩어짐 64 ← 4 에서 64 로 F = 75 / 64 = 1.17

평균 차이는 똑같은데 F가 이만큼 갈립니다

산업 내 편차 좁음  ████████████████████████████████   F = 18.75
산업 내 편차 넓음  ██                                 F = 1.17

기준선은 5.14. 위는 유의하고 아래는 유의하지 않습니다. 평균이 얼마나 벌어졌느냐만으로는 판단할 수 없다는 뜻이지요.

앞의 편들에서 계속 나온 이야기입니다. 벗어난 거리만 봐서는 모르고, 원래 흔들리는 폭과 견줘 봐야 판단이 됩니다.

F에 관해 알아둘 것 셋

자유도가 두 개다 분자 자유도(집단 수 − 1)와 분모 자유도(관측 수 − 집단 수). 그래서 F(2, 6)처럼 두 숫자를 함께 씁니다. 기준값도 두 자유도에 따라 달라지고요.

기각역이 오른쪽만 F는 흩어짐끼리 나눈 값이라 음수가 나올 수 없습니다. ②편의 카이제곱과 같은 이유예요. 0에 가까우면 집단 차이가 없다는 뜻이라 의심할 일이 없고, 커질수록 이상해지니 오른쪽에만 선을 긋습니다.

두 집단이면 F = t² 집단이 둘뿐이면 t검정과 완전히 같은 검정이 됩니다. 위 데이터에서 산업 A와 B만 비교하면 t = −3.06, t² = 9.375이고 F도 정확히 9.375예요. 1.96² = 3.84와 같은 관계입니다.

회귀 결과표에도 F가 나옵니다

①편에서 OLS 결과표에 계수, 표준오차, t, p값, R²가 나온다고 했었죠. 거기 F통계량도 같이 찍힙니다. 회귀에서 F가 묻는 건 이겁니다. "이 모형에 넣은 변수들이 전부 쓸모없는 건 아닌가." 변수 하나하나는 t로 보고, 모형 전체는 F로 봅니다.

혹시 여기까지 보시고 아래 문장을 읽고 고개를 끄덕이신 분이 계시다면, 뇌피셜 상위 5%의 직장인이 되실 유의한 결과가 나오실 거라 추정합니다.

t 값 이 변수 하나가 쓸모 있나 F 값 넣은 변수들이 전부 다 쓸모없는 건 아닌가 R² 그래서 설명이 얼마나 되나

자 이제 새로 배웠으니, 앞으로는 회귀분석을 돌린 후에 F가 유의하지 않으면 개별 t가 몇 개 유의하게 나와도 의심해야 합니다. ④편의 다중검정과 이어지는 이야기거든요. 변수를 많이 넣으면 그중 하나쯤은 t가 크게 나오기 마련이니까요.

원래 하려던 내용으로 돌아가서, 오늘의 주인공인 통계에서의 분모에 집중해 보겠습니다. F든 t든 분모는 "원래 흔들리는 폭"이라고 해석할 수 있고, 오늘 다룰 표준오차 보정은 정확히 그 분모를 다시 재는 일입니다. 자유도 사례에서 보았지만 분모를 잘못 재면 F도 t도 통째로 틀리지요.

F통계량 집단 간 흩어짐을 집단 내 흩어짐으로 나눈 값. 클수록 집단 차이가 뚜렷합니다.

제곱합 편차를 제곱해 다 더한 것. 부호를 없애려고 제곱하는 건 카이제곱과 같은 이유입니다.

평균제곱 제곱합을 자유도로 나눈 값. F의 분자와 분모가 각각 이것입니다.

모형 유의성 회귀에 넣은 변수들이 전부 무의미한 건 아닌지 보는 것. F로 판정합니다.

하나, 오늘 풀 문제

저평가 팩터를 검정하다 이런 일이 있었습니다. PBR 계수의 t값이 이렇게 움직였어요.

보정 전 t = −2.65 1.96 을 넘음 → 유의 보정 후 t = −1.90 1.96 아래 → 경계 데이터 그대로, 모델 그대로, 계수도 그대로

바뀐 건 표준오차 하나뿐입니다. ①편에서 t = 계수 ÷ 표준오차라고 했었죠. 분자는 손도 안 댔는데 분모가 커지니 t가 줄어든 겁니다.

그래서 오늘 질문은 이겁니다. 표준오차를 왜 다시 재야 했나. 처음 계산은 뭘 빼먹었던 걸까요.

둘, 그런데 표준오차가 정확히 뭔가요

①편에서 이렇게 적었습니다. "같은 조사를 다시 했을 때 추정치가 흔들리는 폭." 틀린 설명은 아닌데, 여기서 바로 이상한 점이 생깁니다.

★ 우리는 조사를 한 번밖에 안 했잖아요.

다시 안 했는데 어떻게 "다시 하면 얼마나 달라지는지"를 알죠?

이게 표준오차를 이해할 때 제일 막히는 지점입니다. 잔차랑도 헷갈리고 적어도 저한테는 그랬습니다 ㅎㅎ

답을 말하자면, 흩어짐을 재서 계산합니다

또 엄청 시간 쓰면서 다시 조사하지는 않고, 대신 지금 가진 데이터가 얼마나 흩어져 있는지를 재고, 거기서 이론적으로 계산합니다.

표준편차 (s) 지금 데이터가 흩어진 정도 실제로 측정할 수 있는 값 표준오차 (SE) 다시 재면 평균이 흔들릴 폭 s 에서 계산으로 얻는 값 SE = s / √n

키를 100명 재봤다고 해봅시다. 개인의 키는 들쭉날쭉해서 표준편차가 7cm쯤 나옵니다. 그런데 또 무작위로 100명을 뽑아서 평균 키를 측정하면 그렇게 큰 변화는 없겠지요. 그리고 또 다시 100명을 뽑아도 평균은 비슷하게 나옵니다.

개인 키의 흩어짐 s = 7 cm 100명 평균의 흔들림 SE = 7 / 10 = 0.7 cm

왜 √n 으로 나누나? 이게 오늘의 핵심입니다

여기를 제대로 짚고 가야 뒤가 이해됩니다. 평균을 내면 왜 덜 흔들릴까요. 오차가 서로 상쇄되기 때문입니다. 어떤 사람은 평균보다 크고 어떤 사람은 작은데, 여럿을 더하면 그 위아래가 서로 지워집니다.

표본이 늘면 평균의 흔들림이 이렇게 줄어듭니다

n = 1    ████████████████████████████████   SE = s
n = 4    ████████████████                   SE = s/2
n = 16   ████████                           SE = s/4
n = 64   ████                               SE = s/8

표본이 4배가 되면 흔들림은 절반. 그래서 √n 입니다.

★ 그런데 오차가 상쇄되려면 조건이 하나 있습니다. 오차들이 서로 무관해야 합니다.

한 사람이 크면 다른 사람도 크게 나오는 구조라면요? 상쇄가 안 됩니다. 같이 위로 몰리니까요. 그러면 100명을 재도 평균이 생각만큼 안정되지 않습니다.

√n 이라는 공식 자체가 "관측이 서로 독립이다"라는 가정 위에 서 있는 겁니다. 오늘 편은 그 가정이 깨졌을 때 무슨 일이 생기는지에 관한 이야기고요.

표준편차 (s) 데이터가 흩어진 정도. 직접 측정합니다.

표준오차 (SE) 추정치(평균이나 계수)가 흔들리는 폭. 표준편차에서 계산합니다.

잔차 (ε) 실제 값에서 모델이 예측한 값을 뺀 나머지. 회귀에서는 이 흩어짐으로 s를 구합니다.

독립 한 관측의 값이 다른 관측에 영향을 주지 않는 상태. √n 공식의 전제입니다.

셋, 같은 반 학생 서른 명

설문을 서른 명에게 돌렸다고 해봅시다. 그런데 알고 보니 전부 같은 반 학생이었어요. 이 서른 명의 의견은 서로 독립적인 서른 개의 표본일까요?

아니겠지요. 같은 담임에게 배웠고, 같은 교실에 앉아 있었고, 쉬는 시간마다 서로 이야기했을 테니까요. 의견이 닮을 수밖에 없습니다.

그러면 오차가 상쇄되지 않습니다. 한 명이 어떤 방향으로 치우치면 다른 스물아홉 명도 같은 방향으로 치우치거든요. 서른 명을 모아도 한 명분의 오차가 거의 그대로 남습니다.

같은 반 학생 30명을 30개 표본으로 세면

실제 정보량   █████                              5 명 정도
계산이 쓴 값   ████████████████████████████████   30 명

없는 확신이 만들어집니다. 그리고 이 오차는 언제나 나에게 유리한 쪽으로만 생깁니다.

③편의 5,000건 이야기가 이거였습니다. 같은 달 예측들이 함께 맞고 함께 틀리니, 5,000개의 정보가 아니라 240개월의 정보에 가까웠던 거지요.

넷, 손으로 한번 계산해 봅시다

공분산이 왜 분산을 키우나

말로만 하면 안 와닿으니 관측 두 개로 직접 계산해 보겠습니다. 숫자는 단순하게 잡았습니다.

관측 A 의 분산 4 관측 B 의 분산 4 질문 : A + B 의 분산은?

케이스 1, 서로 무관하다면

Var(A + B) = Var(A) + Var(B) = 4 + 4 = 8 표준편차 = √8 = 2.83

그냥 더하면 됩니다. 하나가 위로 튀면 다른 하나는 아래로 튈 수도 있으니, 상쇄가 일어나거든요.

케이스 2, 같이 움직인다면

A가 클 때 B도 크다고 해봅시다. 이 "같이 움직이는 정도"를 공분산이라 하고, 값이 3이라고 두겠습니다.

Var(A + B) = Var(A) + Var(B) + 2 × Cov(A, B) = 4 + 4 + 2 × 3 = 14 표준편차 = √14 = 3.74

같은 데이터인데 가정에 따라 이만큼 차이납니다

무관하다고 가정    ████████████████████████           2.83
실제 (공분산 3)    ████████████████████████████████   3.74

1.32배 차이입니다. 표준오차가 1.32배 커지면 t는 그만큼 작아지지요.

이제 배운 것들을 연결해서 보면,

분산을 실제보다 작게 봄 → 표준오차를 실제보다 작게 봄 → t를 실제보다 크게 봄 → 유의하지 않은 것이 유의해 보임

★ 이렇게 보정을 빠뜨리면 결과가 항상 실제보다 좋아 보입니다.

실수가 우연이라면 반반이어야 하잖아요. 어떨 땐 나쁘게, 어떨 땐 좋게. 그런데 이 실수는 한 번도 나에게 불리한 쪽으로 나지 않습니다. 그래서 발견하기가 어렵습니다. 결과가 잘 나오면 그냥 좋아하고 넘어가게 되거든요.

이렇게 인간은 실수를 반복하면서도 살 수 있는 힘을 갖게 되는 것 같습니다. 매번 너 실수했어 지적한다면 우리의 정신건강은 얼마나 무너질까요. 그래서 나도, 너도 모두 스스로의 실수에는 관대한 사람이니, 타인의 실수에도 그럴 수 있다는 시선을 가져보는 건 어떨까요?

참고, 공분산이 음수일 수도 있나

있습니다. 하나가 오르면 다른 하나가 내려가는 구조면 공분산이 음수고, 그러면 분산이 오히려 작아집니다. 보정하면 t가 커지는 거지요.

그런데 실무 데이터에서는 이런 경우가 드뭅니다. 같은 달·같은 기업·같은 지역처럼 함께 묶이는 구조가 대부분이라 공분산이 양수거든요. 그래서 "보정하면 나빠진다"고 기억해 두셔도 대체로 맞습니다.

다섯, 그래서 표본이 몇 개인가

뭔가 데이터가 서로 얽힘을 반영하면 관측 개수와 실질 정보량이 달라집니다. 이 차이를 숫자로 만들 수 있습니다.

보정 계수 = 1 + (묶음 크기 − 1) × 묶음 안의 상관 유효 표본 수 = 관측 수 ÷ 보정 계수

③편의 SVM 사례로 넣어 보겠습니다. 한 달에 예측이 20건 있고, 같은 달 예측들의 상관이 0.3이라고 가정하면,

보정 계수 = 1 + (20 − 1) × 0.3 = 1 + 5.7 = 6.7 유효 표본 = 5,000 ÷ 6.7 ≈ 746 건 표준오차 배수 = √6.7 = 2.59 배

그래서 묶음 안의 상관을 보니까 유효한 표본이 정리가 된다는 말이 되지요. 이렇게 묶음 안의 상관을 재는 이유는 내가 가진 정보가 얼마나 부풀려져 있었는지를 알아내려는 것입니다. 그리고 그 부풀림을 걷어내면 746건짜리 확신이 남는다는 뜻이고요.

5,000건이라고 믿었던 표본의 실체

관측 개수   ████████████████████████████████   5,000 건
유효 표본   █████                              746 건

표준오차는 2.59배로 커지고, t는 그만큼 줄어듭니다.

상관이 0이면 보정 계수가 1이 되어 아무 일도 안 일어납니다. 상관이 클수록, 묶음이 클수록 계수가 커지고요. 묶음 크기가 20인데 상관이 0.3만 돼도 표본이 7분의 1로 줄어든다는 게 이 계산의 무서운 점입니다.

공분산 (Cov) 두 값이 같이 움직이는 정도. 함께 오르내리면 양수, 무관하면 0.

상관계수 공분산을 −1에서 1 사이로 표준화한 값. 방향과 세기를 함께 봅니다.

유효 표본 수 얽힘을 반영했을 때 실질적으로 남는 정보량. 관측 개수보다 작습니다.

여섯, 얽힘에는 두 종류가 있습니다

여기서 정리를 한번 하고 가겠습니다. 표준오차가 틀어지는 이유가 실은 두 가지인데, 이름이 비슷해서 자꾸 섞이거든요.

이분산 관측마다 흔들리는 폭 자체가 다른 경우. 대기업 잔차는 크게 튀고 소기업 잔차는 작게 튀는 식입니다.

자기상관 관측끼리 같이 움직이는 경우. 이번 달과 다음 달이 닮아 있거나, 같은 기업의 여러 해가 닮아 있는 식입니다.

이분산이 뭔지..

회귀선을 긋고 잔차가 어떻게 흩어지는지를 보면 이렇게 갈립니다.

이분산이 없을 때 (등분산) · · · · · · · · ────────────────────────── 회귀선 · · · · · · · · 폭이 어디서나 일정 이분산이 있을 때 · · · · · · · ────────────────────────── 회귀선 · · · · · · · 왼쪽은 촘촘, 오른쪽은 넓게 벌어짐

오른쪽으로 갈수록 부채꼴로 벌어지는 모양입니다. 기업 규모가 커질수록 수익률 변동이 커진다든가 하면 이렇게 나오지요. 기본 계산은 폭이 어디서나 같다고 가정합니다. 그 가정이 깨진 게 이분산입니다.

둘은 따로 생길 수도, 같이 생길 수도 있습니다

이분산만 규모별로 변동성이 다름 자기상관만 겹치는 기간을 매달 계산함 둘 다 패널 데이터. 대부분 여기 해당

그리고 이 두 가지에 각각 대응하는 도구가 있습니다. 이름이 셋인 이유가 여기 있어요.

일곱, 이름이 요상한 검증 방법을 씁니다

① White : 표준오차 · 이분산만 잡습니다

가장 기본입니다. 로버스트 표준오차라고 부르면 대개 이걸 가리킵니다. 관측마다 흔들리는 폭이 다르다는 걸 인정하고 다시 계산해요. 그리고 거의 항상 이걸 한다 생각하는게 맞습니다. 등분산이 정확히 성립하는 실무 데이터를 본 적이 없거든요.

다만 White는 자기상관은 못 잡습니다. 관측이 시간축으로 얽혀 있거나 덩어리로 묶여 있으면 이것만으로는 부족해요.

② Newey-West : 시간축 얽힘까지 잡습니다

HAC 표준오차라고도 부릅니다. Heteroskedasticity(이분산) and Autocorrelation(자기상관) Consistent의 약자예요. 이름에 둘 다 들어 있습니다. 시계열에서 관측이 얽히는 가장 흔한 이유는 겹침입니다.

3개월 수익률을 매달 계산하면 1월 관측 : [ 1월 2월 3월 ] 2월 관측 : [ 2월 3월 4월 ] 3월 관측 : [ 3월 4월 5월 ] 1월 관측과 2월 관측은 두 달을 공유합니다 새 정보는 한 달치인데 표본은 세 개로 셉니다

1월 관측과 2월 관측이 독립일 수가 없지요. 세 달 중 두 달이 같은 데이터니까요. 2월과 3월도 마찬가지고, 그렇게 줄줄이 얽혀 있습니다.

Newey-West가 하는 일 : 가중해서 되돌립니다

몇 시차까지 겹치는지를 정해 주면, 그만큼의 공분산을 분산에 다시 더해 줍니다. 그런데 그냥 더하는 게 아니라 가중치를 줍니다.

시차별 가중치 (시차 3으로 지정했을 때)

1 시차 전과의 공분산   ████████████████████████   × 0.75
2 시차 전과의 공분산   ████████████████           × 0.50
3 시차 전과의 공분산   ████████                   × 0.25

가까운 관측일수록 무겁게, 먼 관측일수록 가볍게 반영합니다. 지난달과는 많이 닮았고 석 달 전과는 덜 닮았을 테니까요.

이 가중 방식을 Bartlett 커널이라고 부릅니다. 이름은 몰라도 되는데, 왜 가중하는지는 알아두면 좋습니다. 먼 시차까지 같은 무게로 더하면 분산 추정이 불안정해지거든요.

저희 PBR 계수가 딱 이 경우였습니다. 시차 2를 걸었더니 표준오차가 1.4배로 커졌고, t가 −2.65에서 −1.90으로 내려앉았습니다.

③ 클러스터 표준오차 · 덩어리로 묶인 얽힘을 잡습니다

겹침 말고 다른 얽힘도 있습니다. 애초에 한 덩어리인 관측들이요.

같은 달의 예측 20 건 → 그 달 시장에 다 같이 묶임 같은 기업의 20 년치 관측 → 그 기업 특성에 다 같이 묶임 같은 반 학생 30 명 → 같은 담임에 다 같이 묶임

클러스터 표준오차는 묶음 안에서는 무슨 얽힘이 있어도 다 인정하고, 묶음끼리만 독립이라고 봅니다.

계산 방식 ① 묶음 안의 잔차를 다 합친다 (얽힘을 안 따짐) ② 묶음 단위로 분산을 계산한다 (묶음끼리는 독립 가정) ③ 그걸로 표준오차를 다시 만든다 → 묶음 안의 상관 구조를 몰라도 됩니다

이게 클러스터의 장점입니다. 같은 달 예측들이 정확히 어떻게 얽혀 있는지 몰라도 됩니다. 그냥 "한 덩어리다"라고만 알려주면 알아서 처리해요.

이중 클러스터

패널 데이터에서는 축이 두 개입니다. 같은 기업끼리도 얽히고, 같은 연도끼리도 얽히거든요. 그래서 두 축으로 동시에 묶는 게 표준입니다.

기업 클러스터 삼성전자의 20 년치가 한 덩어리 연도 클러스터 2020년의 전 종목이 한 덩어리 이중 클러스터 둘 다 반영

제 플랫폼 실험실 표기에 "기업·월 클러스터"라고 적힌 게 이겁니다.

여덟, 그래서 어느 걸 쓰나

실무에서 제일 필요한 게 이 표일 것 같습니다.

횡단면 한 시점 한 시점의 여러 기업을 볼 때. White면 충분합니다. 다만 같은 산업끼리 얽혀 있다고 보면 산업 클러스터를 겁니다.

시계열 한 대상의 여러 시점. Newey-West. 겹침이 있으면 시차를 겹침 길이로 잡습니다.

패널 기업 × 연도. 이중 클러스터가 표준입니다. 기업과 연도 둘 다요.

반복 관측 같은 사람·기업을 여러 번 조사한 데이터. 개체 클러스터.

실험·설문 학교·병원·지점 단위로 배정한 경우. 배정 단위로 클러스터를 겁니다.
★ 원칙은 하나입니다. 무엇이 함께 움직이는지를 먼저 정하고, 그 단위로 묶습니다.

그리고 고민되면 더 크게 묶는 쪽이 안전합니다. 크게 묶으면 표준오차가 커지고 결론이 보수적이 되니까요. 틀렸을 때 손해가 적은 방향입니다.

아홉, 여기서 한계점을 알고 가긴 해야 합니다

① 시차를 몇으로 할지는 정답이 없습니다

겹침이 두 달이면 시차 2, 이건 명확합니다. 그런데 겹침이 없는데도 자기상관이 있는 경우가 많거든요. 그때 시차를 몇으로 잡을지는 판단입니다.

경험칙이 몇 개 있긴 합니다. 관측 수의 세제곱근 정도로 잡으라거나, 4×(n/100)^(2/9) 같은 공식도 있고요. 그런데 시차를 늘릴수록 표준오차가 커집니다. 그러면 이런 유혹이 생깁니다. "시차 2로 하니까 유의한데, 시차 4로 하면 안 나오네. 2로 가자."

③편의 단측·양측과 똑같은 자리입니다. 계산하기 전에 정하고 적어 두세요. 아니면 여러 시차 결과를 다 보여주는 게 정직합니다.
② 클러스터 개수가 적으면 이것도 못 믿습니다

클러스터 표준오차는 묶음이 충분히 많아야 제대로 작동합니다. 보통 30개 이상은 있어야 한다고 봅니다.

왜냐면 ②번 단계에서 묶음 단위로 분산을 계산하는데, 묶음이 14개면 표본 14개로 분산을 추정하는 셈이거든요. 그 추정 자체가 불안정합니다.

산업 14개로 묶는다면 위험합니다. 보정을 해도 표준오차가 여전히 실제보다 작게 나올 수 있어요. "보정했으니 안심"이 오히려 위험한 상황이 됩니다. 기업으로 묶으면 1,500개, 월로 묶으면 240개라 이쪽은 괜찮고요.
③ 보정은 얽힘을 없애는 게 아닙니다

이걸 오해하기 쉬운데, 보정한다고 데이터가 독립이 되는 게 아닙니다. 얽혀 있다는 사실을 계산에 반영할 뿐이에요.

얽힘이 심하면 보정 후에도 결론이 약합니다. 그게 정상이고요. 5,000건이 실은 746건이었다면, 그 746건으로 말할 수 있는 만큼만 말해야 합니다. 보정은 없던 정보를 만들어 주지 않습니다.
④ 계수는 안 고쳐집니다

표준오차 보정은 분모만 고칩니다. 계수 자체는 그대로예요. PBR 계수가 −0.4였다면 보정 후에도 −0.4입니다.

그러니까 이 보정은 "효과의 크기"를 바로잡는 게 아니라 "그 크기를 얼마나 믿을 수 있는지"만 바로잡습니다. 계수 추정 자체가 편향돼 있다면 그건 다른 문제고, 다른 방법이 필요합니다.

②편부터 계속 나온 그 축입니다. 확신과 크기는 따로 봐야 한다는 것.

열, 플랫폼에서 실제로 이렇게 됐습니다

두 군데에서 이 보정이 결론을 바꿨습니다.

PBR 계수

Fama-MacBeth 회귀, 월별 계수 240 개 보정 전 t = −2.65 유의 Newey-West 시차 2 t = −1.90 경계 표준오차가 1.4 배로 커졌습니다

보정 전 숫자로 발표하고 싶은 유혹이 있었습니다. −2.65면 깔끔하게 유의하니까요. 그런데 그 숫자는 월별 계수들이 서로 무관하다고 친 값입니다. 실제로는 이번 달 계수와 다음 달 계수가 닮아 있는데요.

SVM 적중률

건별 검정 p = 2.13e-09 5,000 건을 독립으로 셈 월별 검정 p = 0.002 같은 달을 한 덩어리로 셈 p값이 90 만 배쯤 커졌습니다

여전히 0.05는 밑돌지만, 처음 숫자만큼 대단하지는 않지요. 그리고 이쪽이 정직한 값입니다.

그래서 저는 보고서에 두 숫자를 다 적습니다. 보정 전과 보정 후를요. 보정 후만 적으면 왜 이렇게 약한지 설명이 안 되고, 보정 전만 적으면 거짓말이 되거든요.

보고서에 쓴다면

PBR 팩터의 프리미엄을 Fama-MacBeth 회귀로 검정했습니다. 기본 표준오차 기준 t = −2.65로 유의하나, 월별 계수 간 자기상관을 반영해 Newey-West(시차 2) 보정을 적용하면 t = −1.90으로 5% 경계에 걸칩니다. 월별 관측이 서로 독립이 아니므로 보정 후 값을 기준으로 판단하는 것이 타당하며, 현재 표본에서는 유의성을 단정하기 어렵습니다.

정리하면

표준오차를 보정하는 것은 앞에서 다뤘던 내용과 성격이 다릅니다. 표준오차 보정은 검정이 아니라 검정의 재료를 고치는 일이거든요.

재는 대상 모델 안을 확신 크기 열어야 하나 t검정 연속형 값 하나 예 t 계수 카이제곱 여러 칸의 빈도 예 χ² V 이항검정 맞음 / 틀림 둘 아니오 p 적중률−기준 다중검정 앞선 검정 결과들 − q − 표준오차보정 관측끼리의 얽힘 − (t 를 고침) −

④편이 검정을 여러 번 한 사실을 반영하는 일이었다면, ⑤편은 관측이 서로 얽힌 사실을 반영하는 일입니다. 둘 다 계산이 빼먹은 것을 채워 넣는 작업이고, 그래서 결과가 항상 나빠지는 방향으로 움직입니다.

다음 편이 마지막입니다. 상관 vs 인과. 여기까지 다섯 편으로 잰 것들이 결국 어디까지 말할 수 있는 이야기인지를 정리합니다. 제일 짧고 제일 어려운 편이 될 것 같네요.

남는 생각

이 편을 쓰면서 계속 걸렸던 게 있습니다. 보고 자리에서 이걸 설명할 일이 있을까. "표준오차를 클러스터로 보정했더니 t가 2.65에서 1.9로 내려갔습니다"라고 말하면, 듣는 분들 표정이 어떨지 눈에 선하거든요. 차라리 −2.65만 말하는 게 회의를 빨리 끝내는 길이기도 하고요.

그런데 이 숫자가 왜 이렇게 나왔냐고 누가 물었을 때, 대답할 수 있는 것과 없는 것은 다릅니다. 그리고 대답할 줄 알면 애초에 −2.65를 그냥 던지지 않게 되지요. 결국 자기 자신한테 정직해지려고 하는 일에 가깝습니다.

https://k-valuechain.com/lab

작성: 2026. 8. 이알렉산드로

댓글

가장 많이 본 글