보고서 1 · 6장

진단과 보완

외생 6종을 하나씩 고정해 전망에 대한 기여를 분해하고, 유가·실질금리처럼 부호나 크기가 의심스러운 경로를 찾아 보완 방향을 정한다. 이 진단이 2026년 10월 기준선 정비의 근거가 되었다.

본문 초안재현 · 패키지 완비갱신 2026-10-08
바로가기https://aiforalab.com/gva-scenario-2025-2035/report-gva/s6-diagnosis/
알림 2026-10 기준선 정비판 — BOKDPM 장기값(잠재성장률 1.8% 등), 실질금리 투입형(1차 차분), 노동공급(중장기 인력수급 전망), 시나리오 레버 연결, 정합화 절차를 바꾸어 수치를 다시 계산하였다(기준 2035년 2,609조 원, 연 1.82%; 이전 판 2,689조 원, 연 2.13%). 변경 전후 비교는 각 장 재현 패키지 README에 있다.

제1절 진단의 방법

산업모형은 선형이므로 전망을 외생변수별 기여로 정확히 나눌 수 있다. 두 가지 방법을 함께 쓴다. 반사실 분해는 외생변수 하나를 고정하고(차분 외생은 변화 0, 수준 외생은 2025년 4분기 값) 나머지는 시나리오대로 두었을 때 전망이 얼마나 달라지는지를 본다. SHAP 분해는 각 외생변수의 기여를 '계수 × 외생 경로'로 계산해 드리프트·동학 기여와 함께 더하면 전망과 일치하도록 나눈다. 두 방법은 같은 순위를 보여야 하며, 이를 교차 확인하였다. 이 진단은 정합화 이전 산업모형 경로를 대상으로 하며, 모형이 무엇에 반응하는지를 살피는 것이 목적이다.

이 장의 진단은 2026년 9월에 공표한 이전 판 전망을 대상으로 하였고, 그 결과가 2026년 10월 기준선 정비(3·4·5장)의 근거가 되었다. 정비판 외생변수로 같은 반사실 분해를 다시 하여 제2절 표에 함께 실었다. 선형 SHAP 분해와 제3절 유가 진단도 정비판 외생변수와 드리프트 재설정(5장) 계수로 36·62·69분류 모두 다시 계산하여 이전 판 수치와 함께 적었다. 62분류 분해는 5장 전망 갱신 카드의 산업별 성장 요인 분해와 같다. 정비판에서는 실질금리 기여가 세 분류 모두 산업별 최대 0.25%p 이하로 0에 가까워져, 산업 간 차이가 주로 과거추세와 산업 동학에서 온다. 62분류에서 산업별 10년 로그 성장 기여의 절댓값 평균은 과거추세 23.53%p, 산업 동학 14.21%p, 외생변수 6종 3.30%p(각 외생 기여의 절댓값 합)로, 이전 판(29.02%p, 18.61%p, 33.42%p)보다 외생변수의 몫이 크게 줄었다.

제2절 외생변수 6종의 기여

이전 판에서 여섯 외생변수 가운데 전망을 가장 크게 움직인 것은 유가가 아니라 실질금리였다. 기준 시나리오의 실질금리는 2025년 0.99%에서 2035년 2.78%로 올랐는데, 이 경로를 고정하면 2035년 전산업 실질부가가치가 총량 모형(실질 GDP 한 계열의 VARX)으로 162조 원(연 0.57%p), 산업모형 합계(바텀업)로 354조 원(연 1.11%p) 작아졌다. 실질금리가 오를수록 산업 성장이 높아지는 방향으로 추정된 산업이 많았다는 뜻이다. 이 방향은 경제이론(IS곡선)과 반대이며, 하락 추세를 지닌 실질금리 수준(3장)을 성장률 식에 넣어 실질금리와 성장률이 함께 낮아진 과거의 추세가 양(+)의 계수로 담긴 결과로 판단하였다.

정비판에서는 실질금리를 1차 차분으로 넣고 기준선 장기값과 노동공급을 바꾸었다. 같은 반사실 분해를 다시 하면 실질금리의 기여는 총량 0.4조 원, 바텀업 1.4조 원으로 사라지고, 여섯 외생의 기여가 모두 연 0.05%p 이하로 작아진다. 취업자 수의 기여도 0 안팎으로 줄었는데, 이전 판은 경제활동인구의 최근 추세를 연장해 2035년 외생 취업자 수가 3,146만 명으로 늘었던 반면 정비판은 인력수급 전망을 따라 2,876만 명에 머물기 때문이다.

[표] 외생변수별 2035년 순효과(기준 시나리오, 조 원)

외생변수 이전 판 총량 모형 이전 판 바텀업 정비판 총량 모형 정비판 바텀업
실질금리 162 354 0.4 1.4
취업자 수 62 32 −0.9 −0.1
유가 15 65 1.1 4.7
실질환율 5 10 −4.5 −13.2
세계수요 2 −12 3.2 −1.3
국내 경기 −1 8 −3.5 0.6

바텀업은 62분류 산업모형 합계이며, 정비판도 드리프트 재설정(5장) 이전 모형으로 계산하였다. 드리프트를 재설정한 모형으로 계산하면 2035년 바텀업 수준이 낮아진 만큼 조 원 단위 효과가 모두 조금 작아지고(유가 4.0조 원, 실질환율 −11.5조 원), 방향과 순위는 같다.

제3절 유가 한 변수를 따라가 본 문제

유가는 BOKDPM과 산업모형이 같은 변수를 쓴다. 이전 판의 유가를 따라가면 네 가지 문제가 드러난다. 각 문제의 정비 후 상태를 함께 적는다.

  1. 문서와 추정 자료의 불일치(해소). 이전 판의 BOKDPM 관측자료 정의와 수집 코드는 미국 서부 텍사스산 원유(WTI) 월평균 가격의 로그 × 100이었다. 그러나 2026년 8월 25일 BOKDPM 추정에 실제로 쓰인 자료 파일에는 두바이유가 들어 있었고, 그 스무딩 결과가 산업모형의 유가 과거값(2000–2025년)이 되었다. 산업모형 유가는 두바이유의 로그 × 100과 0.0001 이내로 일치하므로, 공표한 유가 관련 수치는 모두 두바이유 기준이었다. 국내 도입 원유의 대부분이 중동산이므로 두바이유가 더 적합하며, 정비판에서 수집 코드·원천 기록·관측자료 파일을 두바이유로 통일하였다. 두 유가의 상관계수는 2000–2025년 0.961이다.
  2. 시나리오의 영구 수준차(남음). 시나리오의 유가 충격은 감쇠하는 성장률 충격으로 주어지고 이를 누적해 수준을 만든다. 그 결과 일시적이어야 할 충격이 영구적인 유가 수준 차이로 남는다. 정비판도 이 처리를 바꾸지 않아, 2035년 4분기 두바이유는 지정학(S5)이 기준보다 배럴당 32달러 높고 공급제약+위기(S2)는 13달러 낮다. 충격에서 영구 수준차가 생기는 외생은 유가뿐이다(취업자 수의 차이는 인구 추계 가정의 차이이다).
  3. 부호의 해석(남음). 유가 계수가 양수인 산업이 있다. 이전 판 자료로 보면 미국 산출갭을 통제해도 계수는 거의 그대로이고(0.034 → 0.033), 다섯 거시변수를 모두 통제해도 양수(0.023)로 남는다. 세계 경기와 함께 움직인 공행만으로는 부호가 다 설명되지 않으므로, 유가 변동을 공급·수요 충격으로 나누어 볼 필요가 있다. 정비판에서도 이 문제가 남아, 유가가 오르는 지정학 시나리오가 기준보다 높게 전망된다(5장 제5절).
  4. 바텀업과 총량의 크기 차이(남음). 이전 판에서 유가 상승의 순효과는 2035년 수준 기준으로 산업모형 합계(바텀업)가 +1.87%, 총량 모형이 +0.49%로 방향은 같지만 크기가 약 4배 달랐다. 드리프트를 재설정한 정비판 모형에서는 바텀업 4.0조 원(+0.14%), 총량 1.1조 원(+0.04%)으로 효과 자체가 작아졌지만, 바텀업이 3.7배 크게 반응하는 차이는 남는다.

이전 판에서 유가에 가장 민감한 산업은 36·62·69 분류 모두 석유정제(석탄·석유제품)였고, 정비판에서도 같다. 다만 기준 시나리오의 10년 로그 성장 기여는 36분류 41.06%p에서 8.47%p로, 62분류 31.36%p에서 6.21%p로, 69분류 30.83%p에서 6.08%p로 약 5분의 1이 되었다. 이 감소는 계수가 아니라 유가 경로에서 온다. 산업별 유가 계수는 거의 그대로이고(62분류 석유정제의 유가 계수 합 0.337 → 0.339), 3장에서 유가 정상상태 상승률을 연 9.88%에서 2.3%로 낮추어 기준 시나리오의 2025년 4분기 대비 2035년 4분기 유가 상승폭(로그 차이 × 100)이 98.05에서 22.43으로 줄었다. 산업별 유가 기여의 순위는 정비 전후에 거의 같고(순위 상관 0.97 이상), 선형 SHAP(직접 효과)과 유가 고정 반사실(산업 간 전파 포함)의 산업 간 상관도 0.90으로 이전 판과 같다.

제4절 보완 과제

2026년 10월 정비에서 이전 판 진단이 지적한 과제 가운데 다음 항목을 반영하였고, 진단 자체도 정비판 모형으로 다시 계산하였다.

[표] 해소된 과제

과제 이전 판의 문제 정비 내용 반영 장
기준선 장기값 재설정 원 모형 2000년대 보정값(장기 성장 4.29%, 유가 연 9.88% 상승) 정상상태 13개를 공식 추정·목표치와 최근 10년 평균으로 교체(잠재성장률 1.8%, 물가목표 2%, 실질유가 불변)하고 재추정 3장
실질금리 정비 수준 투입, 기여 1위·부호 반대 정의(회사채 수익률 − 전년동기 소비자물가 상승률)를 확인하고 1차 차분으로 투입. 기여가 총량 0.4조·바텀업 1.4조 원으로 줄고 양(+)의 계수 편향이 사라짐 3·4장
시나리오 레버 연결 인구·교역비용·S3 해외수요가 외생변수에 전달되지 않음 인구 → 경제활동인구, 교역비용 → IS곡선의 실효 해외수요, S3 세계수요에 미국 수요 충격 반영 3장
유가 정의 정리 문서·수집 코드는 WTI, 추정 입력은 두바이유 수집 코드·원천 기록·관측자료 파일을 두바이유로 통일 3장
노동공급 경로 경제활동인구의 최근 추세 연장 「2024~2034 중장기 인력수급 전망」의 경제활동인구 증감 반영 3장
바텀업과 총량의 괴리 바텀업 연 4.88% 대 총량 모형 2.49%(비례계수 0.766) 드리프트 재설정, 통제 총량을 BOKDPM 기준선으로(바텀업 2.52% 대 통제 총량 1.91%, 비례계수 0.934) 5장
정비판 진단 갱신 선형 SHAP 분해와 유가 진단이 이전 판 기준 정비판 외생변수와 드리프트 재설정 계수로 36·62·69분류 선형 SHAP과 유가 진단을 다시 계산(실질금리 기여 소멸, 유가 기여 약 5분의 1, 62분류는 5장 분해와 일치) 6장

[표] 남은 과제

과제 내용 우선순위
시나리오 재설계 감쇠하는 일시 충격 대신 지속 충격과 잠재성장 경로를 레버로 써서 시나리오의 폭과 방향을 다시 설계(정비판 2035년 범위 6.3조 원) 1
유가 공급충격 분리 킬리안(2009) 구조 VAR로 원유 공급·세계 총수요·원유 특유 수요 충격을 나누어 공급충격만 외생으로 사용(지정학 시나리오가 기준보다 높게 계산되는 문제) 1
시나리오 충격의 수준 처리 일시 충격이 영구 유가 수준차로 남지 않도록 충격 정의를 수준 기준으로 재설계 2
거시 블록 계수 정합 시나리오 편차를 계산하는 보정 거시 블록(5식)의 계수를 추정한 BOKDPM의 사후값과 맞춤 2
기존 전망 결합의 재검토 가중치 0.40이 시험 구간에서 모형 단독보다 오차가 4.8% 큼 2

정비 결과 바텀업과 통제 총량의 차이는 연 2.4%p(4.88% 대 2.49%)에서 0.6%p(2.52% 대 1.91%)로 줄었고, 비례계수는 1에 가까워졌다. 전달 템플릿 기준으로 기존 전망과의 차이도 연 0.42%p에서 0.15%p(2024–2034년)로 줄었다. 남은 과제는 시나리오의 폭과 방향을 경제적으로 해석할 수 있게 만드는 것이며, 기준 시나리오의 장기 성장이 잠재성장률 가정에 의존한다는 점(3장)도 함께 밝혀 둔다. 표본(2025년 4분기까지) 이후의 여건 변화는 반영하지 않았다.

자세히 보기

이 장에 속한 포털 페이지 5개

재현 패키지

데이터 입수 → 분석 → 결과 도출재현 · 패키지 완비

외생 6종 반사실 분해·선형 SHAP·유가 진단(원천·누적·부호·두바이유)을 다시 계산하고, 마지막 검증 셀이 포털 카드 두 장과 공표 SHAP 산출물의 수치 67개(이전 판 진단)와 정비판 항목 46개를 대조한다. 2026-10 정비판 외생으로 같은 반사실을 다시 계산한 참고 절(02 9절)에서 실질금리 기여가 사라졌음을 보이고, 02 10절에서 정비판 외생·드리프트 재설정 계수로 36·62·69 선형 SHAP과 유가 진단(최민감 산업·SHAP 대 반사실·순효과)을 다시 계산하고, 정비판 외생 수준값으로 시나리오 폭·유가 경로를 정리한다(62분류는 5장 분해와 일치).

필요한 것: 인증키 불필요(ONLINE=1의 FRED 재수집은 API_KEY_FRED 선택, 없으면 공개 CSV 사용)

R 사용: R은 쓰지 않는다(후속 과제인 Kilian 분해도 statsmodels로 구현할 수 있다).

실행: pip install -r requirements.txt 후 python run_all.py. 마지막 노트북의 검증 셀이 원고 수치와 대조하며, 다르면 실행이 멈춘다.

입수

  • ipynb01_입수.ipynb동결 입력 SHA-256 대조(정비판 외생 포함), 외생 수준·정상형 변환 확인, 유가 원천 확인(추정 입력 두바이유), ONLINE=1 시 FRED 재수집실행 결과 보기.ipynb
  • mddata/inputs/PROVENANCE.md동결 입력의 출처·원래 위치·SHA-256파일

분석

  • ipynb02_분석.ipynbVARX 재추정(동결 계수 대조), 외생 6종 반사실, 시나리오 폭, 36·62·69 선형 SHAP, 유가 원천·누적·공행 진단, WTI 재추정 시산, 정비판 외생 반사실(참고), 정비판 36·62·69 선형 SHAP·유가 진단(드리프트 재설정, 5장 분해 대조)실행 결과 보기.ipynb
  • pysrc/exog_diagnosis.py계산 함수(원 스크립트 정리본)파일

결과

  • ipynb03_결과.ipynb카드 표 1–6·그림 1–3, 공표 문구 점검, 정비판 표 8–11·그림 4, 공표 수치 67개·정비판 항목 46개 검증실행 결과 보기.ipynb
묶음 파일 91개와 SHA-256
01_입수.ipynbf9e68d23bf10cbe9…
02_분석.ipynb7ae711603eadd801…
03_결과.ipynbcaddc5f6ed7a476f…
README.md2acbf0d0c80f4904…
config.pyf712dfebcc2586e2…
data/inputs/PROVENANCE.md3e344d9c8322507e…
data/inputs/bokdpm_obs_2000_2025.csv8ae2f6709bf15265…
data/inputs/dsge_exog_paths.csvb5fe00a341fe6763…
data/inputs/exog_hist_v2.csv0943ba6160f6faf4…
data/inputs/exog_scen_v2.csvf490a1cb17390289…
data/inputs/exog_scenarios_v2.csv79e4a02cd4c3e7c2…
data/inputs/fred_POILDUBUSDM.csvcc766e2524a02c7c…
data/inputs/fred_POILWTIUSDM.csvac49d9350ae20bf0…
data/inputs/io_linkage_62.csv3f747a97c3804541…
data/inputs/io_linkage_69.csv1f57d01c6867b456…
data/inputs/io_linkage_W.csvcf11efc744586d35…
data/inputs/levels_62.csv00469e892aac4742…
data/inputs/levels_69.csvc8a5adcedfa4635c…
data/inputs/levels_agg.csvf04021ff282e5387…
data/inputs/levels_sa.csvccfc8dad3c8cd7b0…
data/inputs/postreform/exog_hist_v2.csvd142ff2992b5ae3e…
data/inputs/postreform/exog_levels_2000_2035.csv748cc232732adb73…
data/inputs/postreform/exog_scen_v2.csvf45f8007d7b88faf…
data/inputs/varx_coef_frozen.npz2442a16d850a1891…
data/published/jeongbi/drift_anchor_s5.csv94027663ce67bf13…
data/published/jeongbi/shap_62_s5.csv2b9646b971e02d66…
data/published/shap_36.json562f85674caf84d2…
data/published/shap_62.json72b4599e161bbc27…
data/published/shap_69.jsona78c615d1bc2994a…
output/battery_parent_check.csv4bd31fa67e37a23d…
output/claims_check.csv774aa5e7c75d18a4…
output/drift_anchor_jeongbi.csv41e19a6dacd28c90…
output/dubai_sim.csvbaa6ab900c041258…
output/exog_effects.csv37410fda45875fce…
output/exog_effects_before_after.csv2a7ca79f1eab05ed…
output/exog_effects_jeongbi.csvd222845fabd36697…
output/exog_effects_postreform.csve18e2b73c2b6eefa…
output/exog_paths_summary.csvd35970a475db9261…
output/exog_paths_summary_jeongbi.csve3fd53dc2bcd936e…
output/exog_persistence.csvdc02e18f36f4f9b6…
output/exog_persistence_jeongbi.csv9358471da396c5d1…
output/exog_top_industries_62.csv39af1a97ca94d572…
output/exog_top_industries_62_jeongbi.csv01213d1c9e0ce2b9…
output/fig1_exog_effects.pngefa715fba76cbbff…
output/fig2_oil_paths.png18dd1f11c653137f…
output/fig3_oil_shap_62.png2454a3c9e05d59ea…
output/fig4_oil_shap_62_jeongbi.pnga3a1dd35ff332582…
output/model_fit_check.csv0d0d8056fda2d073…
output/model_totals.csve4f41b14d69c760f…
output/oil_benchmark.csv956f1f9c15e78880…
output/oil_coef_controls.csv7441308ddf05dde8…
output/oil_comovement.csv7dec284ed316c79a…
output/oil_dollar_paths.csv9ef145c9c0f7eeb5…
output/oil_dollar_paths_jeongbi.csvad94971533075994…
output/oil_effect_compare.csv3392265430ca52e3…
output/oil_effect_compare_jeongbi.csvd39c8b2d4a06e103…
output/oil_factor_jeongbi.csv53507c30033f659c…
output/oil_level_gap.csv0802ed7396b992ac…
output/oil_rank.csv009a60cb359aaaf8…
output/oil_rank_jeongbi.csv8414c7a917f7dd43…
output/oil_shap_vs_cf_62.csvae50daf530bd78dc…
output/oil_shap_vs_cf_62_jeongbi.csv1457f8e9785d6a3c…
output/oil_source_check.csvf62f3f26ae5b3769…
output/oil_source_variants.csvaeeedcf9686e5b1f…
output/run_log.txt6c94388a208a5b57…
output/shap_36.csv7c9a1225de3c8390…
output/shap_36_jeongbi.csveb4ae93b88edb0e7…
output/shap_36_jeongbi.jsonfc4816fe6798719c…
output/shap_62.csv01fa58c8cba23e5a…
output/shap_62_jeongbi.csvb7aabcbb2ac80284…
output/shap_62_jeongbi.jsonf925494d93fc9bf0…
output/shap_69.csvdda494fc46e99449…
output/shap_69_jeongbi.csvff5794b252d8f316…
output/shap_69_jeongbi.json0dc15aebdef1ca75…
output/shap_check.csvdee1bac487599525…
output/shap_check_jeongbi.csv4eaf94e0d633049b…
output/shap_summary_jeongbi.csv95422d8762af69e8…
output/table10_oil_effect_jeongbi.csvd79ef863cefd4a1f…
output/table11_persistence_jeongbi.csv6048ffa8026f3951…
output/table1_exog_effects.csv9c0822afe5ef188f…
output/table2_persistence.csv3ec94025e2c9fb3b…
output/table3_oil_effect.csv98f13ae77416a412…
output/table4_oil_sensitive.csvdb546ba88112e54a…
output/table5_oil_source.csv6a8cbba74887a623…
output/table6_dubai.csvc4653b012e121cd9…
output/table8_shap_jeongbi.csvdf35b389c98cb099…
output/table9_oil_sensitive_jeongbi.csv22d826eb6a2faf5f…
output/verification.csvff10b6e940c49baf…
requirements.txt130280ce781a4e17…
run_all.py2a5dbd80df3b2248…
src/exog_diagnosis.pyb750c82f2aaaf349…