{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# han_aids_spliced.py\n",
    "\n",
    "연간 2재화 AIDS 접합확장 — 국산 vs 수입 맥주, 2006~2024 (종량세기 포함)\n",
    " 물량 Q: 국세 출고량(국산=합계−수입, 수입=수입분), 2006~2024 (2023 국세 결측→제외)\n",
    " 가격 P: 2006~2019 = 국세 과세표준(종가세)÷물량 (실단가 ₩/㎘)\n",
    "        2020~2024 = 2019 실단가에 지수 접합 → 국산: PPI 맥주, 수입: 수입물가지수(맥주)\n",
    " 접합가정(투명): 수입물가지수 기준연 2020.12=100 → 수입 원화단가 2019→2020 ≈ flat, 2021~ 지수증가율 적용\n",
    " 지출 X=P×Q로 구성 → 지출몫 → LA-AIDS(동차성) → Marshallian 탄력성. 2006~2019 vs 2006~2024 대조.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# -*- coding: utf-8 -*-\n",
    "\"\"\"연간 2재화 AIDS 접합확장 — 국산 vs 수입 맥주, 2006~2024 (종량세기 포함)\n",
    " 물량 Q: 국세 출고량(국산=합계−수입, 수입=수입분), 2006~2024 (2023 국세 결측→제외)\n",
    " 가격 P: 2006~2019 = 국세 과세표준(종가세)÷물량 (실단가 ₩/㎘)\n",
    "        2020~2024 = 2019 실단가에 지수 접합 → 국산: PPI 맥주, 수입: 수입물가지수(맥주)\n",
    " 접합가정(투명): 수입물가지수 기준연 2020.12=100 → 수입 원화단가 2019→2020 ≈ flat, 2021~ 지수증가율 적용\n",
    " 지출 X=P×Q로 구성 → 지출몫 → LA-AIDS(동차성) → Marshallian 탄력성. 2006~2019 vs 2006~2024 대조.\n",
    "\"\"\"\n",
    "import sys,io,json; sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')\n",
    "import numpy as np, pandas as pd, statsmodels.formula.api as smf\n",
    "B='C:/Temp/주류세/공개데이터'\n",
    "g=pd.read_csv(B+'/국세청_국세통계/주세신고_주종별_제조수입_2006_2025.csv')\n",
    "g['값']=pd.to_numeric(g['값'].astype(str).str.replace(',',''),errors='coerce')\n",
    "def pv(ind): return g[(g.주종=='맥주')&(g.지표==ind)].pivot_table(index='연도',columns='구분',values='값')\n",
    "vol=pv('출고량'); tax=pv('과세표준_종가세')\n",
    "# 물량\n",
    "d=pd.DataFrame(index=range(2006,2025))\n",
    "d['q_imp']=vol['수입분']; d['q_dom']=vol['합계']-vol['수입분']\n",
    "# 과표기반 실단가(2006~2019)\n",
    "d['p_imp']=(tax['수입분']/vol['수입분'])\n",
    "d['p_dom']=((tax['합계']-tax['수입분'])/(vol['합계']-vol['수입분']))\n",
    "# 지수(연평균)\n",
    "ppi=pd.read_csv(B+'/한국은행_ECOS/PPI_품목별_소주맥주_200601_202512.csv')\n",
    "ppi=ppi[ppi.품목=='맥주'].copy(); ppi['yr']=ppi.시점//100; PPI=ppi.groupby('yr').값.mean()\n",
    "imp=pd.read_csv(B+'/한국은행_ECOS/수입물가_맥주_200601_202512.csv')\n",
    "imp['yr']=imp.시점//100; IMPI=imp.groupby('yr').값.mean()   # 2020=Dec만, 2021~ 연평균\n",
    "p_dom19=d.loc[2019,'p_dom']; p_imp19=d.loc[2019,'p_imp']\n",
    "for y in range(2020,2025):\n",
    "    if y in PPI.index: d.loc[y,'p_dom']=p_dom19*(PPI[y]/PPI[2019])\n",
    "    if y in IMPI.index: d.loc[y,'p_imp']=p_imp19*(IMPI[y]/IMPI.get(2020,100.0))\n",
    "d=d.dropna(subset=['q_imp','q_dom','p_imp','p_dom'])   # 2023 국세결측 자동 제외\n",
    "d['x_imp']=d.p_imp*d.q_imp; d['x_dom']=d.p_dom*d.q_dom; d['X']=d.x_imp+d.x_dom\n",
    "d['w_imp']=d.x_imp/d.X; d['w_dom']=d.x_dom/d.X\n",
    "d['lnP']=d.w_imp*np.log(d.p_imp)+d.w_dom*np.log(d.p_dom)\n",
    "d['ln_XP']=np.log(d.X)-d.lnP; d['ln_rel']=np.log(d.p_imp/d.p_dom); d['t']=d.index-2006\n",
    "print('수입 지출몫 w_imp 추이:')\n",
    "print('  '+', '.join('%d:%.3f'%(y,d.loc[y,'w_imp']) for y in d.index))\n",
    "\n",
    "def aids(df):\n",
    "    m=smf.ols('w_imp ~ ln_rel + ln_XP',data=df).fit(cov_type='HC1')\n",
    "    g_ii=m.params['ln_rel']; b=m.params['ln_XP']; wi=df.w_imp.mean(); wd=df.w_dom.mean()\n",
    "    e_ii=-1+(g_ii-b*wi)/wi; e_dd=-1+(g_ii+b*wd)/wd\n",
    "    e_id=(-g_ii-b*wd)/wi; e_di=(-g_ii+b*wi)/wd\n",
    "    return m,dict(gamma=round(g_ii,3),tg=round(m.tvalues['ln_rel'],2),beta=round(b,3),\n",
    "        e_imp=round(e_ii,2),e_dom=round(e_dd,2),cross_dom_on_imp=round(e_id,2),cross_imp_on_dom=round(e_di,2),\n",
    "        eta_imp=round(1+b/wi,2),eta_dom=round(1-b/wd,2),wi=round(wi,3),n=int(m.nobs))\n",
    "\n",
    "res={}\n",
    "for lab,df in [('2006~2019(기존)',d[d.index<=2019]),('2006~2024(접합확장)',d)]:\n",
    "    m,r=aids(df); res[lab]=r\n",
    "    print('\\n===== AIDS [%s] n=%d ====='%(lab,r['n']))\n",
    "    print('  gamma=%s(t=%s) beta=%s'%(r['gamma'],r['tg'],r['beta']))\n",
    "    print('  자체가격탄력성: 수입 %+.2f | 국산 %+.2f'%(r['e_imp'],r['e_dom']))\n",
    "    print('  교차: 국산가↑→수입 %+.2f · 수입가↑→국산 %+.2f'%(r['cross_imp_on_dom'],r['cross_dom_on_imp']))\n",
    "    print('  지출탄력성: 수입 %+.2f | 국산 %+.2f (평균 수입몫 %.3f)'%(r['eta_imp'],r['eta_dom'],r['wi']))\n",
    "json.dump(res,open(B+'/문헌/han2018_aids_spliced.json','w',encoding='utf-8'),ensure_ascii=False,indent=2)\n",
    "d.round(4).to_csv(B+'/문헌/han2018_aids_spliced_data.csv',encoding='utf-8-sig')\n",
    "print('\\n[대조] 원논문 수입 -4.8~-6.0/국산코어 -1.8~-1.9 · 접합은 근사(2020 수입물가 기준연·2023 결측)')\n",
    "print('저장: 문헌/han2018_aids_spliced.json')\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "python",
   "version": "3.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}