제1절 BOKDPM의 구조
거시 환경은 한국은행 동태예측모형(BOKDPM)으로 표현한다. BOKDPM은 산출·물가·금리·환율·실업과 해외(미국) 경제, 유가를 잇는 70개 방정식의 준구조 모형이다. 핵심 행태식은 다섯 개이다.
| 행태식 | 설명 변수 → 피설명 변수 | 경제적 의미 |
|---|---|---|
| IS곡선 | 과거·기대 산출갭, 실질금리갭, 실질환율갭, 해외 산출갭 → 산출갭 | 금리가 오르면 수요가 줄고 산출갭이 낮아진다 |
| 필립스곡선 | 기대·과거 인플레이션, 산출갭 → 인플레이션 | 경기가 과열되면 물가 상승 압력이 커진다 |
| 테일러준칙 | 인플레이션 갭, 산출갭 → 정책금리 | 중앙은행은 물가와 경기에 반응해 금리를 정한다 |
| UIP(유위험 이자율평가) | 기대·과거 환율, 실질금리갭, 산출갭 → 실질환율갭 | 금리 차이가 환율 기대 변화와 맞물린다 |
| 오쿤식 | 과거 실업갭, 산출갭 → 실업갭 | 경기가 좋아지면 실업이 줄어든다 |
모형은 상태공간 형태로 쓰여, 산출갭·자연실업률·중립금리 같은 50개 잠재변수를 관측 20변수와 연결한다. 잠재변수의 과거값은 칼만 스무딩으로 추정한다.
제2절 재추정
관측 20변수를 한국은행 경제통계시스템(ECOS)과 미국 세인트루이스 연방준비은행 자료(FRED)에서 2000년 1분기부터 2025년 4분기까지 하나의 원천으로 다시 받고, 원 모형 자료(2000–2009)와 겹치는 구간을 대조해 정의가 이어지는지 확인하였다. 86개 파라미터 가운데 핵심 행태계수 20개와 충격 34개의 표준편차를 베이지언 방법(메트로폴리스–헤이스팅스 MCMC, Dynare, 2개 체인 × 30,000회)으로 추정하였다. 나머지 가운데 정상상태 13개는 제3절의 정비값으로, 그 밖의 파라미터는 원 모형 값으로 두었다. 사전분포는 이전 판과 같다.
행태계수 20개는 모두 수렴하였다(체인 간 수렴 진단값 최대 1.006). 충격 표준편차 가운데 세 개(환율 추세 수준 충격 1.34, 환율 추세 증가율 충격 1.85, 국고채 실질금리 추세 충격 1.35)는 수렴 진단값이 1.1을 넘어 완전히 수렴하지 않았으며, 모두 추세 성분의 충격이다. 사후최빈값의 −로그사후밀도는 3083.1로 이전 판(3085.4)보다 작아, 장기값을 바꾸어도 자료에 대한 적합은 나빠지지 않았다. 계수별 사전·사후분포와 신용구간은 재현 패키지에 정리하였다.
유가 관측자료는 두바이유이다. 이전 판의 자료 정의와 수집 코드는 미국 서부 텍사스산 원유(WTI)로 적혀 있었으나 실제 추정 자료는 처음부터 두바이유였으므로, 이번 판에서 수집 코드·원천 기록·관측자료 파일을 두바이유로 통일하였다(6장). 미국 대출태도(BLT_us)는 원천 계열을 확인하지 못해 원 모형 자료 값을 그대로 썼다.
제3절 장기값 정비와 기준선 전망
재추정한 모형으로 2026년부터 40분기(2035년까지)의 기준선 경로를 계산하였다. 기준선은 충격이 없을 때 각 변수가 장기 균형으로 수렴하는 경로이며, 모수는 사후평균이 아니라 사후최빈값을 쓴다.
기준선이 수렴하는 장기 수준은 재추정이 아니라 정상상태 파라미터가 정한다. 이전 판은 원 모형의 2000년대 보정값(성장 4.29%, 인플레이션 3.0%, 유가 연 9.88% 상승)을 그대로 써, 두바이유가 2035년 배럴당 약 163달러에 이르는 등 현재 여건과 맞지 않았다. 이번 판은 정상상태 13개를 공식 추정·목표치와 최근 10년(2016–2025년) 관측 평균으로 바꾸었다.
| 정상상태 | 이전 값 | 정비값 | 근거 |
|---|---|---|---|
| 한국 잠재성장률 | 4.29% | 1.8% | 한국은행(2024.12), 2025–2029년 연평균 |
| 한국 물가목표(CPI) | 3.0% | 2.0% | 한국은행 물가안정목표 |
| GDP 디플레이터 상승률 | 2.19% | 2.0% | 물가목표와 같게 |
| 한국 중립 실질 정책금리 | 1.5% | 0.55% | 한국은행(2024.11) 명목 중립금리 중간값 2.55% − 물가목표 2% |
| 미국 잠재성장률 | 2.3% | 1.8% | 미 의회예산처(2025.1), 2027–2035년 |
| 미국 물가목표(CPI) | 2.50% | 2.3% | 미 의회예산처 소비자물가 장기 전망 |
| 미국 중립 실질 정책금리 | 2.0% | 0.9% | 연방공개시장위원회(2026.9) 장기 연방기금금리 3.2% − 2.3% |
| 유가 상승률(달러 기준) | 9.88% | 2.3% | 실질유가 불변(미국 물가목표와 같게) |
| 기간프리미엄 3종·주택가격·재정지출 증가율 | 원 모형 값 | 최근 10년 평균 | 2016–2025년 관측 평균 |
정비한 기준선의 실질GDP 성장률은 2026년 2.19%, 2030년 1.89%, 2035년 1.82%로 잠재성장률에 수렴한다. 소비자물가 상승률은 2035년 1.93%, 두바이유는 2035년 배럴당 78.9달러이다(이전 판 2035년: 성장 4.34%, 물가 2.97%, 두바이유 163.4달러).
장기 수렴값은 자료로 추정한 값이 아니라 판단값이다. 사후밀도는 잠재성장률을 표본 평균에 가깝게 둘수록 높아지므로, 우도에 따라 정하면 장기 성장이 과거 평균을 그대로 잇게 된다. 본 연구는 한국은행의 공식 추정치(1.8%)를 따랐다. 이 가정을 1.5% 또는 2.0%로 바꾸어 5장의 절차를 반복하면 기준 시나리오의 2025–2035년 연평균은 1.68%, 1.91%(2035년 2,574조·2,633조 원)가 된다.
노동공급의 기준 경로도 바꾸었다. 이전 판은 경제활동인구의 최근 20분기 추세를 연장했으나, 이번 판은 고용노동부·한국고용정보원 「2024~2034 중장기 인력수급 전망」의 경제활동인구 증감(2024→2029년 +34.6만 명, 2029→2034년 −21.0만 명)을 관측 구간 뒤에 잇는다. 그 결과 2035년 4분기 외생 취업자 수는 기준 시나리오에서 2,876만 명으로, 이전 판(3,146만 명)보다 낮다.
제4절 시나리오 설계
시나리오는 인구 전망(저위·중위·고위)과 네 가지 충격의 조합으로 정의한다. 충격은 해외(미국) 수요, 유가, 교역비용, 국내 수요이며, 처음 가한 크기에서 해마다 일정 비율로 줄어드는 감쇠 경로를 따른다.
| 시나리오 | 성격 | 주요 충격 |
|---|---|---|
| S1 기준 | 중립 | 추세 지속 |
| S2 공급제약+위기 | 하방 | 저위 인구, 세계수요 둔화, 교역비용 상승, 국내수요 위축 |
| S3 제약완화 | 상방 | 고위 인구, 교역비용 완화, 수요의 완만한 회복 |
| S4 기술도약 | 상방 | 대외수요 개선, 생산성(국내수요) 확장 |
| S5 지정학 | 하방 | 유가 급등, 교역비용 상승, 대외수요 위축 |
설계 레버(인구와 충격 네 가지)는 거시경로가 되고, 거시경로는 다시 산업모형의 외생변수 6종으로 바뀐다. 이전 판 재현에서 인구·교역비용 레버와 S3의 해외수요 충격이 외생변수까지 전달되지 않았음을 확인해, 이번 판에서 다음과 같이 연결하였다.
- 인구 레버. 저위·고위 추계와 중위 추계의 생산연령인구 증가율 차이를 경제활동인구에 누적해 외생 '취업자 수'에 반영한다. 2035년 4분기 취업자 수는 S2가 기준보다 1.72% 적고 S3가 1.69% 많다.
- 교역비용 레버. IS곡선의 해외수요 항을 실효 해외수요(미국 산출갭 − 0.75 × 교역비용)로 바꾸어, 교역비용 충격이 산출갭·금리·환율을 거쳐 외생변수에 전달되게 하였다. 계수 0.75는 새로 추정한 값이 아니라 설계 교역량 식(교역량 증가율 = 1 + 0.8 × 미국수요 − 0.6 × 교역비용)의 계수비이다.
- S3의 해외수요 충격. 외생 '세계수요'를 만드는 단계에서 빠져 있던 S3의 미국 수요 충격(+0.6, 12분기 감쇠)을 더하였다.
레버 전달 점검에서 다섯 레버가 모두 외생 6종을 움직인다(인구 레버는 취업자 수를 최대 49.5만 명, 교역비용 레버는 실질환율을 최대 2.90, 국내 경기를 최대 0.66 움직인다).
기준 대비 시나리오 편차는 이전 판과 같이 재추정한 BOKDPM 전체가 아니라 주요 행태식 5개(계수 고정)로 이루어진 보정 거시 블록에서 계산한다. 블록 계수를 추정한 BOKDPM의 사후값과 맞추는 일은 후속 과제이다.
레버를 연결해도 2035년의 시나리오 간 외생 차이는 작다. 충격이 8–28분기에 걸쳐 0으로 감쇠하는 일시 충격이어서, 실질금리·실질환율·세계수요·국내 경기는 충격이 사라지면 기준 경로로 돌아오기 때문이다. 2035년까지 남는 차이는 인구 레버에 따른 취업자 수와, 증가율 충격을 누적해 만든 유가 수준이다(2035년 4분기 두바이유: S1 79.6달러, S2 66.5달러, S3 74.4달러, S5 111.5달러). 이 점이 5장 시나리오 간 전망 차이가 작은 주된 이유이다.
제5절 산업모형의 외생변수 6종
산업모형에 넣는 외생변수는 BOKDPM의 변수를 조합해 만든 관측 가능한 거시지표 6종이다. 관측되지 않는 잠재 상태를 그대로 쓰지 않고, 조합 결과가 반드시 관측 가능한 값이 되도록 하여 과거 실측과 미래 전망이 같은 정의를 쓰게 하였다. 과거값은 기준 시나리오에서 칼만 스무딩으로 얻은 관측변수 값이고, 미래값은 기준선에 시나리오 편차를 더한 경로이다.
| 외생변수 | 구성 | 산업모형 투입형 | 성격 |
|---|---|---|---|
| 유가 | 두바이유 가격(달러)의 로그 × 100 | 1차 차분 | 대외 비용 |
| 세계수요 | 미국 산출갭 | 수준 | 대외 수요 |
| 실질금리 | 회사채(3년, AA−) 수익률 − 전년동기 소비자물가 상승률 | 1차 차분 | 금융 여건 |
| 실질환율 | 명목환율 + 미국 물가 − 국내 물가(로그) | 1차 차분 | 대외 경쟁력 |
| 취업자 수 | 경제활동인구(관측 + 인력수급 전망) × 인구 레버 × (1 − 실업률) | 로그 차분 | 노동 투입 |
| 국내 경기 | 한국 산출갭 | 수준 | 내수 국면 |
실질금리의 정의는 이전 판과 같으나 투입형을 수준에서 1차 차분으로 바꾸었다. 실질금리 수준은 2000–2025년에 하락 추세를 지닌 계열로, KPSS 검정에서 상수 주위 정상성이 기각되고(p = 0.001) 추세를 두면 추세 정상으로 판정된다(p = 0.188). 1차 차분은 모든 검정에서 정상이다(KPSS p = 0.283). 성장률 식에 수준을 넣으면 실질금리와 성장률의 공통 하락 추세가 계수에 담겨 전망을 움직이므로(6장), 이번 판은 1차 차분을 쓴다. 이전 판 일부 문서에 실질금리를 '정책금리 − 물가상승률'로 적은 것은 오기이며, 실제 정의는 회사채 수익률 기준이다.
외생변수의 과거·시나리오 경로와 각 변수가 전망에 미치는 기여는 6장에서 진단한다.
자세히 보기
이 장에 속한 포털 페이지 24개
BOKDPM 모형 9개
BOKDPM 데이터·전망 6개

시나리오 설계 3개



행태식 계산기 6개
재현 패키지
2026-10 정비판. 정상상태(장기 수렴값) 13개를 현재 여건(잠재성장률 1.8%, 물가목표 2%, 중립금리, 실질유가 불변 등)에 맞게 바꾸어 BOKDPM을 다시 추정하고, 실질금리를 1차 차분으로, 노동공급을 중장기 인력수급 전망으로 바꾸며 인구·교역비용·S3 레버를 외생 6종에 연결한다. 입수 → 분석 → 결과 세 노트북이 사후분포 요약, 기준선, 거시 블록, 외생 6종(S1–S5)을 계산하고, 마지막 검증 셀이 정비판 기록 산출물과 100개 항목에서 대조한다. 이전 판 공표 산출물과의 비교표를 함께 낸다.
필요한 것: (선택) ECOS·FRED 인증키(환경변수 API_KEY_BOK·API_KEY_FRED, ONLINE=1 재수집) · (선택) Octave 11.1 + Dynare 7.1(FULL=1 재추정, 약 2시간 15분)
R 사용: R은 쓰지 않으며, Python에 표준 구현이 없는 베이지언 추정은 FULL=1에서 Octave의 Dynare로 실행하고 기본 실행은 저장된 Dynare 결과를 읽는다.
실행: pip install -r requirements.txt 후 python run_all.py. 마지막 노트북의 검증 셀이 원고 수치와 대조하며, 다르면 실행이 멈춘다.
입수
분석
묶음 파일 71개와 SHA-256
| 01_입수.ipynb | b4b2b4681069817f… |
| 02_분석.ipynb | 671aa70ae31f07b9… |
| 03_결과.ipynb | a917dc540015054b… |
| README.md | 284348af1a5990cc… |
| config.py | 28c3451321e3d166… |
| data/inputs/BOKDPM_data_2025.m | 79c7586814e92f71… |
| data/inputs/PROVENANCE.md | 818eff9b517c5493… |
| data/inputs/bokdpm_forecast_2026_2035.csv | 9e2a288dace40f09… |
| data/inputs/bokdpm_posterior_draws.csv.gz | 30b3d2d62740f235… |
| data/inputs/bokdpm_posterior_mode.csv | 79d9f736deb6bdc2… |
| data/inputs/bokdpm_smoothed_2000_2025.csv | a6355022bba39ead… |
| data/inputs/cpi_kor_1999_2000.csv | b64596b28c504fe0… |
| data/inputs/ecos_labor_force.csv | b647956255276a61… |
| data/inputs/keis_labor_supply_2024_2034.csv | a3d0d4e92f5ac218… |
| data/inputs/kosis_생산연령인구.csv | a51389439be67d17… |
| data/reference/baseline_forecast.csv | 027191cb3306cefa… |
| data/reference/dsge_exog_paths.csv | 8035af76112c8a5a… |
| data/reference/dsge_macro_paths.csv | 0a117ccbb7a34d9e… |
| data/reference/estimation_results.csv | 90a1852c5ad8f942… |
| data/reference/exog_hist_v2.csv | d142ff2992b5ae3e… |
| data/reference/exog_levels_2000_2035.csv | 748cc232732adb73… |
| data/reference/exog_scen_v2.csv | f45f8007d7b88faf… |
| data/reference_prev/baseline_annual.csv | c4eafd61e1cec1a9… |
| data/reference_prev/baseline_forecast.csv | fdb0a22a062ce177… |
| data/reference_prev/bokdpm_forecast_2026_2035.csv | d07068a1da47bebd… |
| data/reference_prev/dsge_exog_paths.csv | b5fe00a341fe6763… |
| data/reference_prev/dsge_macro_paths.csv | b0685aad36febb25… |
| data/reference_prev/estimation_results.csv | f10f6684ed8c426e… |
| data/reference_prev/exog_hist_v2.csv | 0943ba6160f6faf4… |
| data/reference_prev/exog_scen_v2.csv | f490a1cb17390289… |
| data/reference_prev/외생변수_수준_시나리오별(2000-2035).xlsx | 2ff9d0077aba833d… |
| dynare/BOKDPM_2025.mod | c58a1c617b7ed97e… |
| dynare/BOKDPM_forecast.mod | 933535f5eaa32876… |
| dynare/original/BOKDPM_2025_original.mod | e17d0be1b7c9161f… |
| dynare/original/BOKDPM_forecast_original.mod | acd30d7a15e2a38e… |
| dynare/run_est_local.m | bca28d166e5cbd8c… |
| dynare/run_forecast.m | 27f9e503725a9122… |
| output/baseline_annual.csv | 940ef35ea9db66b4… |
| output/baseline_forecast_70.csv | 9e2a288dace40f09… |
| output/bokdpm_lgdp_2000_2035.csv | 47988ac9d5959298… |
| output/dsge_exog_paths.csv | 8035af76112c8a5a… |
| output/dsge_macro_paths.csv | 0a117ccbb7a34d9e… |
| output/estimation_log.txt | e6a430ea21b0d0da… |
| output/exog_hist_v2.csv | d142ff2992b5ae3e… |
| output/exog_levels_2000_2035.csv | 748cc232732adb73… |
| output/exog_scen_v2.csv | f45f8007d7b88faf… |
| output/fig1_baseline.png | 00577e21ca388cdc… |
| output/fig2_macro_paths.png | 975b5420fed7ac9d… |
| output/fig3_exog_levels.png | f727ab8d9ef498d3… |
| output/forecast_log.txt | 264ef5df661ea970… |
| output/lever_reach.csv | a7d5bba12225e4e5… |
| output/mcmc_diagnostics.csv | 6089dc4431434f99… |
| output/posterior_summary.csv | 90a1852c5ad8f942… |
| output/run_log.txt | 2c8caef6f5ed6d41… |
| output/scenario_lever_paths.csv | f8b46c286bfbb10b… |
| output/scenario_levers.csv | 0d604efd58384b6b… |
| output/steady_state_revision.csv | c073453173c9f564… |
| output/table0_steady_state.csv | c073453173c9f564… |
| output/table1_posterior_params.csv | 24f170bab913b4db… |
| output/table2_posterior_shocks.csv | 1c0a09763ecc9317… |
| output/table3_baseline_annual.csv | 8c2a55d75c948d10… |
| output/table3b_baseline_vs_prev.csv | 2a8525e8e95ce985… |
| output/table4_scenario_levers.csv | 0d604efd58384b6b… |
| output/table5_exog_2035.csv | 0be810d1fd2d688f… |
| output/table6_exog_vs_prev.csv | 730123be7a9b8c79… |
| output/unit_root_real_rate.csv | 3b21845706ec9b0d… |
| output/verification.csv | cb9845da4403acc9… |
| output/외생변수_수준_시나리오별(2000-2035).xlsx | 4437d4aef3de2372… |
| requirements.txt | 4882bb01d7abd68b… |
| run_all.py | 865c8e7658e75e76… |
| src/bokdpm_macro.py | 0bc81d5d904d2bd3… |

