보고서 1 · 2장

데이터

한국은행 국민계정·산업연관표와 거시 관측자료를 입수해 36개 산업 분기 실질부가가치를 62·69개 산업과 월별로 확장한 과정을 기록한다.

본문 초안재현 · 패키지 완비갱신 2026-10-08
바로가기https://aiforalab.com/gva-scenario-2025-2035/report-gva/s2-data/

제1절 원천 자료

자료 내용 기간 출처
국민계정 경제활동별 실질부가가치 36개 산업, 분기, 계절조정, 2020년 연쇄가격 2000년 1분기–2025년 4분기(104분기) 한국은행 ECOS
산업연관표 실측표·연장표의 산업·상품별 산출과 중간투입 1960–2023년 한국은행
BOKDPM 관측변수 산출·물가·금리·환율·실업·해외변수 등 20개 2000–2025년 ECOS, FRED
신산업 보조지표 광공업동태조사, 전력통계 등 연도별 통계청, 한국전력 등

제2절 연쇄가중 실질값과 가법성

한국은행의 실질부가가치는 연쇄가중 방식으로 작성된다. 해마다 직전 연도 가격을 가중치로 쓰므로 상대가격 변화가 큰 산업의 성장이 과장되지 않지만, 산업별 실질값을 더해도 공표 실질 총량과 정확히 같지 않다(비가법성). 36개 산업 실질값의 단순 합은 공표 총부가가치와 분기 평균 7.65%(절대값) 차이가 난다. 본 연구는 전기 명목 비중을 가중치로 산업별 증가율을 연쇄 연결하는 재현 방식(2020년 1분기 기준)으로 이 차이를 평균 0.23%로 줄였다. 그래도 남는 차이는 5장의 정합화 단계에서 다룬다.

제3절 36개에서 62개로

한국고용정보원 인력수급 분류(62개)는 제조업을 상품 성격에 따라 더 잘게 나누고 서비스업의 인력 밀집 부문(보건·복지·정보·금융서비스)을 분리한다. 36개 산업 값을 62개로 나눌 때는 2020년 산업연관표의 부가가치 비중을 고정 비율로 써서 배분하였다. 62개 가운데 47개는 상위 산업을 나누어 만들고 15개는 상위 산업과 일대일로 대응하며, 하위 산업의 합은 상위 산업과 정확히 같다. 62개 산업과 한국은행 36개, 한국표준산업분류(KSIC), 산업연관표 분류의 대응은 산업분류 대조표에 정리하였다.

제4절 62개에서 69개로 — 신산업 분화

반도체, 이차전지, 신재생에너지, 조선, 철강, 택배, 건설(건물건설·토목건설) 7개 분야를 모산업에서 떼어내 69개 분류를 만들었다. 분화 비중은 2020년 산업연관표의 상품 단위 부가가치로 정하되, 최근 비중이 빠르게 바뀐 이차전지와 신재생에너지는 시간에 따라 변하는 비중을 썼다. 이차전지는 광업·제조업 생산지수(전지 품목)를, 신재생에너지는 전력통계의 신재생 발전 비중을 기준 지표로 삼았다. 분화 산업과 나머지 모산업의 합은 원래 모산업 값과 같다. 분화 대상 7개 분야는 산업 분화 제안 페이지의 설계를 따르며, 36→69 매칭 방법 설명 페이지는 초기 설계(연도별 비중·8개 분화)를 설명하므로 이 장의 방법과 다르다.

제5절 월별 분할

69개 산업의 월별 실질부가가치는 상태공간모형으로 만들었다. 월별 값을 상태로, 분기 값을 관측으로 두고 '세 달의 합 = 분기 값'이라는 관측방정식과 월별 보조지표를 함께 써서 월별 경로를 추정하였다. 월별 자료는 산업 동향을 빠르게 살피는 보조 자료이며, 전망은 분기 자료로 한다. 월별 패널은 전망에 쓰지 않고 별도의 70개 산업 분류와 추가 월별 지표를 쓰므로 이 장의 재현 패키지 범위에서 제외하였다.

제6절 거시 관측변수의 재수집

BOKDPM의 관측 20변수를 2000–2025년 전 구간 하나의 원천(ECOS·FRED)으로 다시 받고, 원 모형 자료(2000–2009)와 겹치는 구간을 변수별로 대조하였다. 대부분 연속으로 이어졌고, 정의가 바뀐 일부 변수는 수준 차이를 확인해 원천을 맞추었다. 대조 결과는 관측 20변수 검증 페이지에 있다.

자세히 보기

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

구축 과정 8개

1960~2023년 연별 부가가치 시계열, 어떻게 이었나산업연관표 연장표로 1960년까지, 2010년 분류대개편을 수작업 크로스워크로 넘고, 매 연도 자체 검산행으로 검증annual-timeseries-story.html
36개 산업을 더하면 왜 GDP가 안 나올까 — 연쇄가중의 비밀떡볶이집과 반도체공장으로 직접 계산해보는 연쇄가중의 원리, 그리고 36개 산업 실질값만으로 GVA를 오차 0.2%까지 재현한 실제 사례chain-linking-story.html
36개 산업 실질값으로 GVA 재현하기 — 방법과 코드공식·알고리즘·코드·전체 검증표 — 오차 7.65%를 0.23%로 줄인 재현 방식의 기술 문서reconstruction-method.html
36개 산업에서 69개 산업으로 — 매칭 방법론한국은행 36개 산업을 62개 구조단위로 배분하고 신산업을 carve-out해 69~70개로 확장하는 방법, 산업연관표 기준 77개까지 계속 확장 가능한 이유industry36-to-69-story.html
62개에서 69개로 — 7가지 분화 제안반도체·이차전지·신재생·조선·건설·철강·택배 7개 분화. IO 상품코드 근거 carve-out과 시계열 부족 시 외부지표 벤치마킹 해법.industry-split-proposal.html
KEIT(62) ↔ BOK(36) ↔ KSIC ↔ IO 산업분류 대조표KEIT 62개 ↔ 한국은행 36개 ↔ KSIC ↔ 산업연관표(중분류·상품·소분류) 7개 축 대조표. 시계열 부족 시 외부지표 벤치마킹.industry-7axis-crosswalk.html
69개 산업의 월별 실질부가가치는 어떻게 만들었나 — 데이터 탐험기gva-70-story.html
관측 20변수 — 2000~2025 재수집·원본 대조2000~2025 단일 원천으로 재수집한 실측을 원본 모형의 두 가정과 대비해 20변수 하나씩 관찰bokdpm-20vars-verify.html

재현 패키지

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

한국은행 36개 산업 분기 실질부가가치를 2020년 산업연관표 비중으로 62개 산업에 배분하고 7개 신산업을 분화해 69개 산업 패널을 만들며, 36개 산업 실질값으로 연쇄가중 총부가가치를 재현해 공표 패널·수치 47개 항목을 대조한다.

필요한 것: 기본 실행은 인증키·인터넷 불필요(스냅샷 사용) · 원천 재수집(ONLINE=1) 시 API_KEY_BOK·API_KEY_KOSIS 환경변수

R 사용: R은 쓰지 않는다. 비중 배분·비율 지표·연쇄지수·행렬 집계는 pandas·numpy로 충분하다.

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

입수

  • ipynb01_입수.ipynb국민계정 36개 산업·총부가가치·실질 GDP·산업연관표·생산지수·발전량 스냅샷의 SHA-256·형태 검증, ONLINE=1이면 ECOS·KOSIS 재수집 대조실행 결과 보기.ipynb
  • mddata/inputs/PROVENANCE.md입력 스냅샷별 원천 통계표 코드·원 프로젝트 경로·수집일파일

분석

  • ipynb02_분석.ipynb36→62 배분(2020 산업연관표 비중), 이차전지·신재생 시변 몫, 62→69 분화, 총량 패널, 산업연관 행렬, 연쇄가중 총부가가치 재현실행 결과 보기.ipynb
  • pysrc/gva_data.py입수·배분·분화·연쇄 재현 계산 함수파일
  • csvdata/carveout_rules.csv62→69 분화 규칙 7건파일

결과

  • ipynb03_결과.ipynb패널 요약·배분·분화 몫·연쇄 재현 검증표와 그림, 공표 산출물·수치 47개 항목 검증 셀실행 결과 보기.ipynb
  • csvoutput/verification.csv검증 결과표파일
묶음 파일 51개와 SHA-256
01_입수.ipynb95b1f22eea36e6db…
02_분석.ipynb8d864ec42d61df12…
03_결과.ipynb7eac65b9d62f7491…
README.mda8d49a1505d9b40c…
config.pyb531c6312e15e342…
data/carveout_rules.csv59b7fb2688cec105…
data/crosswalk_62.json09c137303ab59970…
data/inputs/PROVENANCE.md0fbb70b81ed94713…
data/inputs/bok36_va_q.csvbe93329c14b1ea65…
data/inputs/gdp_quarterly_sa.csv3adbc832b93488c3…
data/inputs/gva_total_q.csv4087e14e8d461c59…
data/inputs/io_M_mid_2020.csvaf8a6514e0ddd90c…
data/inputs/io_benchmark_va_83ind.csv24a07dfdbc388f6e…
data/inputs/io_small_37x_va.csv46f72bff6388a9ee…
data/inputs/mfg_prod_c28_c282.csv1af50c079edd888e…
data/inputs/power_gen_kepco.csv81fb52b2499a2ce3…
data/inputs/power_gen_kpx.csv4c05ae3809eb8879…
data/published/io_linkage_62.csv3f747a97c3804541…
data/published/io_linkage_69.csv1f57d01c6867b456…
data/published/levels_62.csv00469e892aac4742…
data/published/levels_69.csvc8a5adcedfa4635c…
data/published/levels_agg.csvf04021ff282e5387…
data/published/mapping_62_official.csv3a60e4c94ee6c8f8…
data/published/recon_viewer.csv73ffef2411f2b67b…
data/published/renew_gen_actual.csv6d0010f538ae7b2c…
data/published/share_battery.csv65bce5c8d813630a…
data/published/share_renew.csvefcde63b604815e1…
output/carve_log.csv1258ad25131c328b…
output/fig1_shares.png138f3523a54e880f…
output/fig2_recon.pngb0e8d93a25e881d1…
output/io_linkage_62.csv3f747a97c3804541…
output/io_linkage_69.csv1f57d01c6867b456…
output/levels_62.csv29bd526665dbc6c7…
output/levels_69.csv0995ea576b16f783…
output/levels_agg.csvf04021ff282e5387…
output/mapping_62_official.csv3a60e4c94ee6c8f8…
output/recon_total_a.csv4e4aaef969e6f7fc…
output/recon_total_q.csv38f35453088f9b22…
output/renew_gen_actual.csv6d0010f538ae7b2c…
output/run_log.txt98d495f93052c2d3…
output/share_battery.csv65bce5c8d813630a…
output/share_renew.csvefcde63b604815e1…
output/table1_panels.csvca0247da82c75576…
output/table2_split_62.csv41916aa48742de73…
output/table3_carveout_69.csv8e7e253aa4ab1014…
output/table4_timevarying_shares.csv97abd1a2e11eb9eb…
output/table5_recon.csv34fe2ad34429c8c3…
output/verification.csvbc4293f21950fe40…
requirements.txt11067f3a759520b3…
run_all.py2a5dbd80df3b2248…
src/gva_data.py89b9ccce9ca7f93e…