방법론 · 그림책

VAR·VARX 16개 모형 — 설계와 추정계수 읽는 법

산업별 실질부가가치를 서로 물고 물리는 관계로 함께 예측하는 모형(VAR·VARX)을 어떤 조합으로 몇 개나 추정하는지, 그리고 실제로 나온 계수 하나하나가 무슨 뜻인지 정리합니다.

1. 16개 모형 = 4개 축 × 2가지

산업 간 상호작용을 보는 방식(VAR·VARX), 그 안의 계수를 어떻게 정하는지(프라이어), 어느 해상도로 볼지(빈도), 어떤 형태로 볼지(변환) — 이 4개 축을 각각 2가지씩 조합하면 2×2×2×2=16개 모형이 나옵니다.

선택지 A
선택지 B
의미
상호작용 반영
VAR
VARX
산업들끼리만 보는지, 유가·금리 등 외생변수도 같이 보는지
계수를 정하는 기준
미네소타 프라이어
산업연관표 후방연쇄 프라이어
"모르면 0"인지, "원래 거래가 많은 산업쌍은 관계가 있다고 보는지"
해상도
36개 산업·분기
69개 산업·월별
굵게 자주 볼지, 잘게 촘촘히 볼지
변환
로그차분(증가율)
로그수준
변화율로 볼지, 수준 자체의 흐름(공적분)까지 볼지

2. 미네소타 프라이어 — "모르면 0, 그러나 믿음의 크기는 다르게"

산업이 36개(또는 69개)면 각 산업의 방정식에 모든 산업의 과거 몇 분기 값이 다 들어갑니다. 예를 들어 36개 산업 × 4개 시차만 해도 방정식 하나에 회귀변수가 144개 — 표본(분기 수)보다 변수가 많아 그냥 최소자승으로는 추정이 불안정해집니다. 이걸 막는 게 프라이어(사전믿음)입니다.

미네소타 프라이어의 규칙은 단순합니다 — "다른 산업의 과거 값이 내 산업에 주는 영향은 일단 0이라고 믿는다". 다만 그 믿음의 강도(분산)는 산업마다 다르게 둡니다 — 원래 변동성이 큰 산업(예: 공공행정처럼 들쭉날쭉한 산업)은 사전분산을 크게(믿음을 약하게), 변동성이 작은 산업은 사전분산을 작게(믿음을 강하게) 잡아, 실제 데이터가 그 믿음을 얼마나 뒤집을 수 있는지 자연스럽게 조절합니다.

실제 값(1차금속 제조업 방정식 기준) — 자기 자신의 1분기 전 값에 대한 사전분산은 0.0006(사전표준편차 0.025)인 반면, 변동성이 큰 공공행정 항목의 사전분산은 0.022(사전표준편차 0.149)로 약 37배 큽니다. "믿음의 크기"가 산업마다 이렇게 다르게 설정된다는 뜻입니다.

3. 산업연관표 후방연쇄 프라이어 — "원래 거래가 많으면 관계가 있다고 본다"

미네소타 프라이어는 산업 간 관계를 전혀 모른다고 가정하고 출발합니다. 반면 산업연관표에는 "어느 산업이 어느 산업의 원재료·부품을 얼마나 사 쓰는지"가 이미 나와 있습니다 — 예를 들어 자동차 산업은 1차금속(철강) 산업의 산출을 많이 사다 씁니다. 이런 실제 거래 관계가 강한 산업쌍에는 사전평균을 0이 아닌 양(+)의 값으로 주고, 관계가 약한 산업쌍은 그대로 0에 가깝게 둡니다. 두 프라이어를 나란히 추정해 비교하면, "정말 산업연관표가 말해주는 산업 간 관계가 예측력을 높이는지"를 데이터로 확인할 수 있습니다.

4. 실제로 나온 계수, 무슨 뜻인가

지금 이 페이지에서 보여주는 건 16개 중 VARX × 미네소타 프라이어 × 36개산업·분기 × 로그차분 한 칸의 실제 추정 결과입니다(1990년대 이후 표본, 내생시차 4개·외생시차 3개· 위기더미 3개를 포함).

예시 1 — 위기 더미가 가장 크게 움직인다

어느 산업 방정식이든 가장 큰 계수는 대개 외환위기(IMF)·금융위기(GFC)·코로나(COVID) 더미입니다. 1차금속 제조업의 경우 금융위기 더미 계수는 −7.4%p, 코로나 더미는 −5.4%p — 산업 간 정상적인 상호작용보다 위기 충격 그 자체가 훨씬 크다는 뜻이고, 그래서 위기더미를 따로 넣지 않으면 다른 계수들이 위기 구간에 끌려가 왜곡됩니다.

예시 2 — 산업 자신의 "관성"은 생각보다 약하다

1차금속 제조업이 자기 자신의 직전 분기 증가율에 얼마나 이어지는지(관성)를 보면 계수는 −0.008, 표준오차는 0.055로 사실상 0과 구별되지 않습니다. 로그차분(증가율)으로 보면 "이번 분기 잘 나갔다고 다음 분기도 잘 나간다"는 관성이 뚜렷하지 않다는 뜻 — 반대로 로그수준 모형에서는 관성(공적분 관계)이 훨씬 강하게 나올 가능성이 높은데, 이 차이를 보는 것이 "로그차분 vs 로그수준" 축을 나란히 두는 이유입니다.

예시 3 — 외생변수는 산업마다 다르게, 그리고 시차를 두고 온다
산업가장 큰 외생변수 반응계수해석
숙박 및 음식점업우리경기(당분기)+0.90내수 경기(한국 산출갭)에 가장 민감 — 대면서비스 특성
예술·스포츠·여가 서비스업세계수요(당분기)+0.72대외 수요(미국 산출갭)에 뚜렷이 반응
도소매업우리경기(당분기)+0.59내수 경기 동행성이 뚜렷
금융 및 보험업실질금리(당분기)+0.57금리 여건이 부가가치에 직접 파급

공통적으로 우리경기(한국 산출갭)·세계수요(미국 산출갭)가 대부분 산업에서 +0.4~0.9의 뚜렷한 양(+)의 계수를 보이는 반면, 유가·환율의 영향은 상대적으로 작고 산업마다 부호도 엇갈립니다 — 유가· 환율 충격이 산업별로 스며드는 경로가 훨씬 복잡하고 간접적이라는 뜻입니다.

5. 대표모형은 어떻게 고르나 — train · validation · test

미네소타 프라이어에는 "산업 간 관계를 얼마나 강하게 믿을지"를 정하는 수축강도(람다, lambda)라는 하이퍼파라미터가 있습니다. 이 값을 임의로 고정하면 안 되고, 다음처럼 3구간으로 나눠 정하는 것이 원칙입니다.

train(추정) validation(람다 탐색) test(성과 보고)

람다 후보값을 여러 개 놓고 validation 구간에서 예측오차가 가장 작은 람다를 고른 뒤, 그 람다로 확정한 모형의 실제 성과는 한 번도 보지 않은 test 구간에서 측정해 보고합니다 — validation 구간 성과로 대표모형의 우수성을 주장하면 그 구간에 맞춰 고른 람다이므로 낙관 편향이 생기기 때문입니다. BOKDPM(베이지언 재추정) 쪽도 같은 원칙 — 사전분포·초기조건은 validation 구간까지로 다듬고, 실제 예측력은 test 구간에서 확인합니다.

6. 실제로 train·validation·test를 나눠 4개 모형을 비교한 결과

36개 산업 분기자료(미네소타 프라이어, 산업연관표 프라이어는 다음 단계)로 VAR·VARX × 로그차분·로그수준 4개를 실제로 추정했습니다. 마지막 8개 분기를 test로, 그 앞 8개 분기를 validation으로 떼어두고, validation 구간 1기전망 오차가 가장 작은 람다를 후보 11개 중에서 골라 확정한 뒤, test 구간에서 그 모형의 진짜 예측 성과를 쟀습니다.

모형선택된 λvalidation RMSEtest RMSE
VAR · 로그차분0.034.923.24
VARX · 로그차분0.034.803.15
VAR · 로그수준0.0311.116.27
VARX · 로그수준0.0310.756.19

지금까지 결과로는 VARX·로그차분이 test 구간 예측오차가 가장 작아 대표모형입니다. 다만 로그수준 모형의 오차가 로그차분보다 훨씬 크다는 것 자체가 중요한 신호입니다 — 수준 그대로는 산업 간 장기적인 균형관계(공적분)를 못 잡아내고 있다는 뜻이고, 이 균형관계를 명시적으로 반영하는 VECM·VECMX(오차수정모형)가 로그수준 계열에서 훨씬 나은 성과를 낼 가능성이 높다는 근거이기도 합니다. VECM·VECMX는 공적분 순위(몇 개의 장기균형관계가 있는지)를 먼저 정한 뒤 그 조건 위에서 단기계수를 추정해야 해서 별도 단계로 진행합니다.

7. 69개 산업·월별로도 같은 비교를 해봤더니 — 해상도에 따라 결론이 다르다

36개 산업·분기와 별개로, 76개 산업(신산업 포함)·월별 자료에도 똑같은 절차(train/ validation/test, 람다 탐색)를 적용했습니다. 월별은 내생시차 12개월(1년치), 외생시차 3개월을 사용했고, 외생변수 6종도 분기 집계본이 아니라 월별 원자료로 새로 구축했습니다.

모형해상도선택된 λvalidation RMSEtest RMSE
VAR · 로그차분36산업·분기0.034.923.24
VARX · 로그차분36산업·분기0.034.803.15
VAR · 로그수준36산업·분기0.0311.116.27
VARX · 로그수준36산업·분기0.0310.756.19
VAR · 로그차분76산업·월별0.053.543.77
VARX · 로그차분76산업·월별0.053.643.80
VAR · 로그수준76산업·월별0.054.463.89
VARX · 로그수준76산업·월별0.054.503.89

분기 해상도에서는 외생변수가 도움이 되지만(VARX가 VAR을 이김), 월별 해상도에서는 거꾸로 외생변수 없는 VAR이 근소하게 더 낫습니다. 두 해상도의 RMSE 숫자를 그대로 비교하면 안 됩니다(분기 증가율과 월 증가율은 원래 스케일이 다름) — 각 해상도 "안에서"의 비교만 의미가 있습니다. 해석: 분기 단위에서는 유가·금리·환율 같은 거시충격이 한 분기 안에 누적돼 뚜렷한 신호로 잡히는 반면, 월별에서는 같은 충격이 아직 산업 활동에 다 전달되지 않은 채 노이즈에 가깝게 섞여 들어가 오히려 과적합 위험만 키우는 것으로 보입니다.

8. VECM·VECMX — 산업연관표로 공적분 관계를 제한해서 추정

36개 산업 전체를 대상으로 Johansen 검정을 하면(36차원, 관측치 ~140개) 통계적으로 불안정해지기 쉬워서, 대신 산업연관표 국산투입계수(2014년, 산업연관표 원자료)로 "어느 산업이 어느 산업의 원재료·부품을 실제로 많이 사는지"부터 계산하고, 그 1순위 거래 상대와만 공적분 관계를 검정(Engle-Granger)했습니다. 그 결과 36개 산업 중 18개에서 실제로 공적분(장기 균형관계)이 확인됐습니다 — 예: 1차금속↔금속가공제품, 화학물질↔코크스및석유정제품, 컴퓨터·전자↔기계장비, 토목건설↔비금속광물제품. 전부 실제로 거래가 많은, 상식적으로도 말이 되는 산업쌍입니다. 이 18개 산업만 오차수정항(장기균형에서 벗어난 정도)을 추가 회귀변수로 넣고, 나머지 18개는 오차수정항 없이 추정했습니다.

모형선택된 λvalidation RMSEtest RMSE
VAR · 로그수준(오차수정 없음)0.0311.116.27
VECM(오차수정 포함, 18개 산업)0.056.133.90
VECMX(오차수정+외생변수)0.106.053.88

오차수정항을 넣자 test RMSE가 6.27→3.90으로 거의 절반 가까이 줄었습니다 — "로그수준 모형이 놓치고 있던 게 정말 장기균형관계였다"는 가설이 실제 데이터로 확인된 것입니다. 다만 여전히 VARX·로그차분(3.15)에는 못 미칩니다 — 이 산업 시스템에서는 "매 분기 증가율 자체의 관성+외생충격"을 보는 게, "장기균형에서 벗어난 정도를 되돌리는 힘"을 보는 것보다 아직은 더 예측력이 좋다는 뜻입니다.

9. 산업연관표 후방연쇄 프라이어 — 미네소타와 정면 비교

미네소타 프라이어는 "교차산업 계수는 일단 0이라고 믿는다"였는데, 이번엔 그 사전평균을 0 대신 실제 국산투입계수(그 산업쌍이 서로 얼마나 많이 사고파는지, 행별로 정규화)로 채운 버전을 똑같은 조건(같은 사전분산, 같은 train/val/test)으로 8칸 전부 추정해 정면 비교했습니다 — "프라이어 평균을 다르게 준 효과"만 순수하게 비교되도록 나머지는 전부 동일하게 뒀습니다.

10. 16개 모형 최종 순위 (test RMSE 기준)

순위모형test RMSE
1VARX·로그차분·미네소타·36산업분기3.150
2VARX·로그차분·산업연관표프라이어·36산업분기3.165
3VAR·로그차분·산업연관표프라이어·36산업분기3.239
4VAR·로그차분·미네소타·36산업분기3.242
5VAR·로그차분·산업연관표프라이어·76산업월별3.735
6VARX·로그차분·산업연관표프라이어·76산업월별3.749
7VAR·로그차분·미네소타·76산업월별3.768
8VARX·로그차분·미네소타·76산업월별3.796
9~10로그수준·76산업월별 (4칸, 미네소타/산업연관표 비슷)3.89~3.90
11~12VECM·VECMX(오차수정, 36산업분기)3.88~3.90
13~16로그수준·36산업분기 (미네소타/산업연관표, 오차수정 없음)6.19~6.49

산업연관표 프라이어는 미네소타를 근소하게 이기지 못했습니다(1~4위가 사실상 동률권, 0.01~0.09 RMSE 차이로 통계적으로 유의한 차이라 보기 어려움). 즉 "산업연관표가 말해주는 거래관계를 사전평균에 직접 넣는 것"보다는, "일단 모르는 걸로 두고 데이터가 알아서 학습하게 하는 것"(미네소타)이 최소한 이 표본에서는 똑같이 잘 작동하거나 아주 살짝 더 낫습니다 — 산업연관표 정보가 무의미하다는 뜻이 아니라, VECM(장기균형 자체를 명시적으로 넣는 방식)에서처럼 "어디에" 산업연관표 정보를 넣는지가 "그냥 사전평균에 약하게 넣는 것"보다 중요하다는 뜻으로 해석하는 것이 맞습니다.

11. 16칸 전부 실측 완료

축 조합
해당 칸
상태
VAR·VARX·미네소타(8칸)
36산업·분기 + 76산업·월별 × 로그차분·로그수준
완료
3~4위, 7~8위, 13,15위
VAR·VARX·산업연관표프라이어(8칸)
36산업·분기 + 76산업·월별 × 로그차분·로그수준
완료
2위, 5~6위, 14,16위
VECM·VECMX(추가)
산업연관표 기반 공적분 제한, 36산업·분기
완료
18개 산업 공적분 확인
최종 정리: 이 프로젝트의 실제 산출물 해상도는 36개 산업·분기가 아니라 69개 산업(확정)·월별입니다. 69개 산업 기준으로 데이터 파이프라인(연간비중→분기→ 월별, 월별지표 3개월 이동평균 적용)을 다시 세워 VAR·VARX·VECM·VECMX 10개 모형을 전부 재추정했습니다. test RMSE만 보면 VAR(외생변수 없음)·미네소타가 가장 낮지만(1.834), 최종 채택 모형은 VARX·로그차분·산업연관표 프라이어·69개산업·월별입니다(RMSE 1.930, 순위상 4위). 이유는 예측력이 아니라 이 프로젝트가 요구하는 기능 때문입니다 — RFP 자체가 "외생변수를 통해 향후 예상되는 경제적 충격에 대한 시나리오 분석"을 명시적으로 요구하는데, 외생변수가 없는 VAR로는 BOKDPM 거시 시나리오(S1~S5)를 산업별 전망에 연결하는 것 자체가 불가능합니다. VARX는 그 연결고리를 제공하고, 산업연관표 프라이어는 RFP가 명시한 "산업연관표 등 산업간 관계에 대한 사전 정보 활용" 방법론과 그대로 일치합니다. 즉 RMSE 0.1 안팎의 차이보다 시나리오 분석 가능 여부가 우선한다는 판단입니다.