{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "9f02cf5a",
   "metadata": {},
   "source": [
    "# 03 결과 도출 — 원고 수치 검증\n",
    "\n",
    "원고(한국고용정보원 제출본) 3장에 적는 수치와 대조한다. 집계 결과는 비공개 자료이므로 공개 포털 본문에는 싣지 않는다."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "a992fa99",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T19:49:51.792116Z",
     "iopub.status.busy": "2026-10-07T19:49:51.792116Z",
     "iopub.status.idle": "2026-10-07T19:49:52.159097Z",
     "shell.execute_reply": "2026-10-07T19:49:52.158594Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Python 3.12.10 · pandas 2.2.3 · numpy 2.4.6\n",
      "  원자료(비공개)     있음  data\\private\\AI수용도조사_원자료_n2297.xlsx\n",
      "  통계표(비공개)     있음  data\\private\\AI수용도조사_통계표_260417.xlsx\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "import numpy as np, pandas as pd\n",
    "import config as C\n",
    "import survey_raw as R\n",
    "pd.set_option(\"display.float_format\", lambda v: f\"{v:,.2f}\")\n",
    "C.setup()\n",
    "s = pd.read_csv(os.path.join(C.OUTPUT, \"summary.csv\"), index_col=0).iloc[:, 0]\n",
    "ad = pd.read_csv(os.path.join(C.OUTPUT, \"by_adoption.csv\"), index_col=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "e8ee8aba",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T19:49:52.159597Z",
     "iopub.status.busy": "2026-10-07T19:49:52.159597Z",
     "iopub.status.idle": "2026-10-07T19:49:52.167828Z",
     "shell.execute_reply": "2026-10-07T19:49:52.167828Z"
    },
    "tags": [
     "private-output"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(비공개 설문 집계를 보여주는 셀이다. 공개 화면에서는 출력을 생략했다. 자료를 가진 경우 직접 실행하면 표시된다.)"
     ]
    }
   ],
   "source": [
    "P = C.PUBLISHED\n",
    "checks = [(\"응답수\", s[\"응답수\"], P[\"응답수\"], 0), (\"D2 평균(%)\", s[\"D2_평균\"], P[\"D2_평균\"], 0.05), (\"D2 중위(%)\", s[\"D2_중위\"], P[\"D2_중위\"], 0.05),\n",
    "          (\"E4-1 2025\", s[\"E41_2025\"], P[\"E41_2025\"], 0.005), (\"E4-1 2040\", s[\"E41_2040\"], P[\"E41_2040\"], 0.005),\n",
    "          (\"도입 사업체\", s[\"도입_수\"], P[\"도입_수\"], 0), (\"미도입 사업체\", s[\"미도입_수\"], P[\"미도입_수\"], 0),\n",
    "          (\"도입 E4-1 2040\", ad.loc[\"도입\", \"E4-1_2040\"], P[\"도입_E41_2040\"], 0.005),\n",
    "          (\"미도입 E4-1 2040\", ad.loc[\"미도입\", \"E4-1_2040\"], P[\"미도입_E41_2040\"], 0.005)]\n",
    "res = pd.DataFrame([{\"항목\": k, \"계산\": float(v), \"원고\": p, \"허용오차\": t, \"통과\": abs(float(v) - p) <= t} for k, v, p, t in checks])\n",
    "display(res)\n",
    "assert res[\"통과\"].all()\n",
    "print(\"검증 통과: 원고 수치를 재현했다.\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
