방법론 · 그림책
산업별 실질부가가치를 서로 물고 물리는 관계로 함께 예측하는 모형(VAR·VARX)을 어떤 조합으로 몇 개나 추정하는지, 그리고 실제로 나온 계수 하나하나가 무슨 뜻인지 정리합니다.
산업 간 상호작용을 보는 방식(VAR·VARX), 그 안의 계수를 어떻게 정하는지(프라이어), 어느 해상도로 볼지(빈도), 어떤 형태로 볼지(변환) — 이 4개 축을 각각 2가지씩 조합하면 2×2×2×2=16개 모형이 나옵니다.
산업이 36개(또는 69개)면 각 산업의 방정식에 모든 산업의 과거 몇 분기 값이 다 들어갑니다. 예를 들어 36개 산업 × 4개 시차만 해도 방정식 하나에 회귀변수가 144개 — 표본(분기 수)보다 변수가 많아 그냥 최소자승으로는 추정이 불안정해집니다. 이걸 막는 게 프라이어(사전믿음)입니다.
미네소타 프라이어의 규칙은 단순합니다 — "다른 산업의 과거 값이 내 산업에 주는 영향은 일단 0이라고 믿는다". 다만 그 믿음의 강도(분산)는 산업마다 다르게 둡니다 — 원래 변동성이 큰 산업(예: 공공행정처럼 들쭉날쭉한 산업)은 사전분산을 크게(믿음을 약하게), 변동성이 작은 산업은 사전분산을 작게(믿음을 강하게) 잡아, 실제 데이터가 그 믿음을 얼마나 뒤집을 수 있는지 자연스럽게 조절합니다.
미네소타 프라이어는 산업 간 관계를 전혀 모른다고 가정하고 출발합니다. 반면 산업연관표에는 "어느 산업이 어느 산업의 원재료·부품을 얼마나 사 쓰는지"가 이미 나와 있습니다 — 예를 들어 자동차 산업은 1차금속(철강) 산업의 산출을 많이 사다 씁니다. 이런 실제 거래 관계가 강한 산업쌍에는 사전평균을 0이 아닌 양(+)의 값으로 주고, 관계가 약한 산업쌍은 그대로 0에 가깝게 둡니다. 두 프라이어를 나란히 추정해 비교하면, "정말 산업연관표가 말해주는 산업 간 관계가 예측력을 높이는지"를 데이터로 확인할 수 있습니다.
지금 이 페이지에서 보여주는 건 16개 중 VARX × 미네소타 프라이어 × 36개산업·분기 × 로그차분 한 칸의 실제 추정 결과입니다(1990년대 이후 표본, 내생시차 4개·외생시차 3개· 위기더미 3개를 포함).
어느 산업 방정식이든 가장 큰 계수는 대개 외환위기(IMF)·금융위기(GFC)·코로나(COVID) 더미입니다. 1차금속 제조업의 경우 금융위기 더미 계수는 −7.4%p, 코로나 더미는 −5.4%p — 산업 간 정상적인 상호작용보다 위기 충격 그 자체가 훨씬 크다는 뜻이고, 그래서 위기더미를 따로 넣지 않으면 다른 계수들이 위기 구간에 끌려가 왜곡됩니다.
1차금속 제조업이 자기 자신의 직전 분기 증가율에 얼마나 이어지는지(관성)를 보면 계수는 −0.008, 표준오차는 0.055로 사실상 0과 구별되지 않습니다. 로그차분(증가율)으로 보면 "이번 분기 잘 나갔다고 다음 분기도 잘 나간다"는 관성이 뚜렷하지 않다는 뜻 — 반대로 로그수준 모형에서는 관성(공적분 관계)이 훨씬 강하게 나올 가능성이 높은데, 이 차이를 보는 것이 "로그차분 vs 로그수준" 축을 나란히 두는 이유입니다.
| 산업 | 가장 큰 외생변수 반응 | 계수 | 해석 |
|---|---|---|---|
| 숙박 및 음식점업 | 우리경기(당분기) | +0.90 | 내수 경기(한국 산출갭)에 가장 민감 — 대면서비스 특성 |
| 예술·스포츠·여가 서비스업 | 세계수요(당분기) | +0.72 | 대외 수요(미국 산출갭)에 뚜렷이 반응 |
| 도소매업 | 우리경기(당분기) | +0.59 | 내수 경기 동행성이 뚜렷 |
| 금융 및 보험업 | 실질금리(당분기) | +0.57 | 금리 여건이 부가가치에 직접 파급 |
공통적으로 우리경기(한국 산출갭)·세계수요(미국 산출갭)가 대부분 산업에서 +0.4~0.9의 뚜렷한 양(+)의 계수를 보이는 반면, 유가·환율의 영향은 상대적으로 작고 산업마다 부호도 엇갈립니다 — 유가· 환율 충격이 산업별로 스며드는 경로가 훨씬 복잡하고 간접적이라는 뜻입니다.
미네소타 프라이어에는 "산업 간 관계를 얼마나 강하게 믿을지"를 정하는 수축강도(람다, lambda)라는 하이퍼파라미터가 있습니다. 이 값을 임의로 고정하면 안 되고, 다음처럼 3구간으로 나눠 정하는 것이 원칙입니다.
람다 후보값을 여러 개 놓고 validation 구간에서 예측오차가 가장 작은 람다를 고른 뒤, 그 람다로 확정한 모형의 실제 성과는 한 번도 보지 않은 test 구간에서 측정해 보고합니다 — validation 구간 성과로 대표모형의 우수성을 주장하면 그 구간에 맞춰 고른 람다이므로 낙관 편향이 생기기 때문입니다. BOKDPM(베이지언 재추정) 쪽도 같은 원칙 — 사전분포·초기조건은 validation 구간까지로 다듬고, 실제 예측력은 test 구간에서 확인합니다.
36개 산업 분기자료(미네소타 프라이어, 산업연관표 프라이어는 다음 단계)로 VAR·VARX × 로그차분·로그수준 4개를 실제로 추정했습니다. 마지막 8개 분기를 test로, 그 앞 8개 분기를 validation으로 떼어두고, validation 구간 1기전망 오차가 가장 작은 람다를 후보 11개 중에서 골라 확정한 뒤, test 구간에서 그 모형의 진짜 예측 성과를 쟀습니다.
| 모형 | 선택된 λ | validation RMSE | test RMSE |
|---|---|---|---|
| VAR · 로그차분 | 0.03 | 4.92 | 3.24 |
| VARX · 로그차분 | 0.03 | 4.80 | 3.15 |
| VAR · 로그수준 | 0.03 | 11.11 | 6.27 |
| VARX · 로그수준 | 0.03 | 10.75 | 6.19 |
지금까지 결과로는 VARX·로그차분이 test 구간 예측오차가 가장 작아 대표모형입니다. 다만 로그수준 모형의 오차가 로그차분보다 훨씬 크다는 것 자체가 중요한 신호입니다 — 수준 그대로는 산업 간 장기적인 균형관계(공적분)를 못 잡아내고 있다는 뜻이고, 이 균형관계를 명시적으로 반영하는 VECM·VECMX(오차수정모형)가 로그수준 계열에서 훨씬 나은 성과를 낼 가능성이 높다는 근거이기도 합니다. VECM·VECMX는 공적분 순위(몇 개의 장기균형관계가 있는지)를 먼저 정한 뒤 그 조건 위에서 단기계수를 추정해야 해서 별도 단계로 진행합니다.
36개 산업·분기와 별개로, 76개 산업(신산업 포함)·월별 자료에도 똑같은 절차(train/ validation/test, 람다 탐색)를 적용했습니다. 월별은 내생시차 12개월(1년치), 외생시차 3개월을 사용했고, 외생변수 6종도 분기 집계본이 아니라 월별 원자료로 새로 구축했습니다.
| 모형 | 해상도 | 선택된 λ | validation RMSE | test RMSE |
|---|---|---|---|---|
| VAR · 로그차분 | 36산업·분기 | 0.03 | 4.92 | 3.24 |
| VARX · 로그차분 | 36산업·분기 | 0.03 | 4.80 | 3.15 |
| VAR · 로그수준 | 36산업·분기 | 0.03 | 11.11 | 6.27 |
| VARX · 로그수준 | 36산업·분기 | 0.03 | 10.75 | 6.19 |
| VAR · 로그차분 | 76산업·월별 | 0.05 | 3.54 | 3.77 |
| VARX · 로그차분 | 76산업·월별 | 0.05 | 3.64 | 3.80 |
| VAR · 로그수준 | 76산업·월별 | 0.05 | 4.46 | 3.89 |
| VARX · 로그수준 | 76산업·월별 | 0.05 | 4.50 | 3.89 |
분기 해상도에서는 외생변수가 도움이 되지만(VARX가 VAR을 이김), 월별 해상도에서는 거꾸로 외생변수 없는 VAR이 근소하게 더 낫습니다. 두 해상도의 RMSE 숫자를 그대로 비교하면 안 됩니다(분기 증가율과 월 증가율은 원래 스케일이 다름) — 각 해상도 "안에서"의 비교만 의미가 있습니다. 해석: 분기 단위에서는 유가·금리·환율 같은 거시충격이 한 분기 안에 누적돼 뚜렷한 신호로 잡히는 반면, 월별에서는 같은 충격이 아직 산업 활동에 다 전달되지 않은 채 노이즈에 가깝게 섞여 들어가 오히려 과적합 위험만 키우는 것으로 보입니다.
36개 산업 전체를 대상으로 Johansen 검정을 하면(36차원, 관측치 ~140개) 통계적으로 불안정해지기 쉬워서, 대신 산업연관표 국산투입계수(2014년, 산업연관표 원자료)로 "어느 산업이 어느 산업의 원재료·부품을 실제로 많이 사는지"부터 계산하고, 그 1순위 거래 상대와만 공적분 관계를 검정(Engle-Granger)했습니다. 그 결과 36개 산업 중 18개에서 실제로 공적분(장기 균형관계)이 확인됐습니다 — 예: 1차금속↔금속가공제품, 화학물질↔코크스및석유정제품, 컴퓨터·전자↔기계장비, 토목건설↔비금속광물제품. 전부 실제로 거래가 많은, 상식적으로도 말이 되는 산업쌍입니다. 이 18개 산업만 오차수정항(장기균형에서 벗어난 정도)을 추가 회귀변수로 넣고, 나머지 18개는 오차수정항 없이 추정했습니다.
| 모형 | 선택된 λ | validation RMSE | test RMSE |
|---|---|---|---|
| VAR · 로그수준(오차수정 없음) | 0.03 | 11.11 | 6.27 |
| VECM(오차수정 포함, 18개 산업) | 0.05 | 6.13 | 3.90 |
| VECMX(오차수정+외생변수) | 0.10 | 6.05 | 3.88 |
오차수정항을 넣자 test RMSE가 6.27→3.90으로 거의 절반 가까이 줄었습니다 — "로그수준 모형이 놓치고 있던 게 정말 장기균형관계였다"는 가설이 실제 데이터로 확인된 것입니다. 다만 여전히 VARX·로그차분(3.15)에는 못 미칩니다 — 이 산업 시스템에서는 "매 분기 증가율 자체의 관성+외생충격"을 보는 게, "장기균형에서 벗어난 정도를 되돌리는 힘"을 보는 것보다 아직은 더 예측력이 좋다는 뜻입니다.
미네소타 프라이어는 "교차산업 계수는 일단 0이라고 믿는다"였는데, 이번엔 그 사전평균을 0 대신 실제 국산투입계수(그 산업쌍이 서로 얼마나 많이 사고파는지, 행별로 정규화)로 채운 버전을 똑같은 조건(같은 사전분산, 같은 train/val/test)으로 8칸 전부 추정해 정면 비교했습니다 — "프라이어 평균을 다르게 준 효과"만 순수하게 비교되도록 나머지는 전부 동일하게 뒀습니다.
| 순위 | 모형 | test RMSE |
|---|---|---|
| 1 | VARX·로그차분·미네소타·36산업분기 | 3.150 |
| 2 | VARX·로그차분·산업연관표프라이어·36산업분기 | 3.165 |
| 3 | VAR·로그차분·산업연관표프라이어·36산업분기 | 3.239 |
| 4 | VAR·로그차분·미네소타·36산업분기 | 3.242 |
| 5 | VAR·로그차분·산업연관표프라이어·76산업월별 | 3.735 |
| 6 | VARX·로그차분·산업연관표프라이어·76산업월별 | 3.749 |
| 7 | VAR·로그차분·미네소타·76산업월별 | 3.768 |
| 8 | VARX·로그차분·미네소타·76산업월별 | 3.796 |
| 9~10 | 로그수준·76산업월별 (4칸, 미네소타/산업연관표 비슷) | 3.89~3.90 |
| 11~12 | VECM·VECMX(오차수정, 36산업분기) | 3.88~3.90 |
| 13~16 | 로그수준·36산업분기 (미네소타/산업연관표, 오차수정 없음) | 6.19~6.49 |
산업연관표 프라이어는 미네소타를 근소하게 이기지 못했습니다(1~4위가 사실상 동률권, 0.01~0.09 RMSE 차이로 통계적으로 유의한 차이라 보기 어려움). 즉 "산업연관표가 말해주는 거래관계를 사전평균에 직접 넣는 것"보다는, "일단 모르는 걸로 두고 데이터가 알아서 학습하게 하는 것"(미네소타)이 최소한 이 표본에서는 똑같이 잘 작동하거나 아주 살짝 더 낫습니다 — 산업연관표 정보가 무의미하다는 뜻이 아니라, VECM(장기균형 자체를 명시적으로 넣는 방식)에서처럼 "어디에" 산업연관표 정보를 넣는지가 "그냥 사전평균에 약하게 넣는 것"보다 중요하다는 뜻으로 해석하는 것이 맞습니다.