diff --git a/cases/YoungjaeKang-retail-hours/README.md b/cases/YoungjaeKang-retail-hours/README.md new file mode 100644 index 0000000..917777f --- /dev/null +++ b/cases/YoungjaeKang-retail-hours/README.md @@ -0,0 +1,17 @@ +# 대형마트 의무휴업 평일 전환과 골목상권 매출 + +작성자: 강영재 (`YoungjaeKang`) + +동대문구의 대형마트가 일요일 대신 평일에 쉬게 된 뒤 골목상권의 식품판매 매출이 어떻게 달라졌는지 살펴본다. 서울의 다른 자치구와 비교하고, 자료 수집부터 검사·분석·보고서 작성까지 이어서 실행할 수 있도록 만드는 것이 7주 과정의 목표다. + +| 항목 | 내용 | +|---|---| +| 처치 | 동대문구, 분석상 시작 분기 2024Q2 | +| 비교 | 서울 내 20개 자치구 후보 — 정책 이력 추가 확인 필요 | +| 기간 | 2021Q1~2024Q4, 2023Q4·2024Q1 제외 | +| 지표 | 골목상권 육류·수산물·청과·반찬 판매 추정매출 합계의 자연로그 | +| 방법 | 이벤트스터디, 가짜 시행일 검정 | + +분석 범위와 일정은 [plan.md](plan.md), 실행 설정은 [plan.yaml](plan.yaml)에서 볼 수 있다. 자치구별로 찾아본 근거와 더 확인할 내용은 [정책 확인표](policy-verification.md)에 모았다. + +현재는 계획을 작성한 상태로, 매출 원자료는 아직 수집하거나 분석하지 않았다. 계획을 커밋하고 PR을 올린 뒤 수집 코드(`fetch.py`)와 이 사례에 필요한 검사를 작성할 예정이다. 비교 지역의 휴업일 변경 이력과 연도별 상권 자료를 같은 기준으로 비교할 수 있는지 확인하기 전에는 정책 효과를 판단하지 않는다. diff --git a/cases/YoungjaeKang-retail-hours/plan.md b/cases/YoungjaeKang-retail-hours/plan.md new file mode 100644 index 0000000..bf1c5da --- /dev/null +++ b/cases/YoungjaeKang-retail-hours/plan.md @@ -0,0 +1,149 @@ +# 대형마트 의무휴업 평일 전환과 골목상권 매출: 프로젝트 계획 + +| 항목 | 내용 | +|---|---| +| 사례 ID | `YoungjaeKang-retail-hours` | +| 작성자 | 강영재 | +| 수행 기간 | 7주 과정, 2026년 11월 1일 재현성 검증 목표 | +| 문서 상태 | 계획 작성 완료, 사전등록 예정 | + +## 1. 목적과 완료 기준 + +동대문구의 대형마트 의무휴업일 변경을 주제로, 자료를 모으고 검사한 뒤 분석과 보고서 작성까지 이어서 실행할 수 있도록 만든다. 7주 동안 이 과정을 자동화하면서 정책 자료를 검토한 내용과 분석 계획을 바꾼 이유도 기록한다. 아직 확인하지 못한 정책 근거는 추가로 조사한다. + +과정이 끝날 때는 다음 작업이 가능해야 한다. + +- 저장한 설정과 수집 코드로 자치구·분기별 분석 자료를 다시 만든다. +- 자료 누락·중복·코드 연결 오류를 검사하고, 분석을 진행하거나 멈춘 이유를 남긴다. +- 효과 추정, 가짜 시행일 검정, 판단 기준 적용, 보고서 작성을 이어서 실행한다. +- 데이터 출처·수집 시점·실행 설정·검사 결과를 남기고, 다른 참여자가 README에 따라 같은 입력과 설정으로 결과를 재현한다. +- 확인하지 못한 정책 이력이나 자료 기준 때문에 결과를 어디까지 해석할 수 있는지 보고서에 적는다. + +실제 자료로 분석할 수 없으면 막힌 이유를 적고 시뮬레이션 데이터로 코드가 끝까지 동작하는지 확인한다. 시뮬레이션에는 `synthetic_data: true`와 출처를 표시한다. 코드가 동작하는지 확인한 것과 실제 자료로 분석을 마친 것은 구분해서 보고한다. + +## 2. 연구 질문과 분석 범위 + +연구 질문은 다음과 같다. + +> 동대문구의 대형마트 의무휴업 평일 전환 이후, 골목상권 식품판매 관련 업종의 분기 추정매출은 비교 자치구와 비교해 어떻게 달라졌는가? + +첫 분석에서는 동대문구 한 곳과 서울의 다른 자치구를 비교한다. 매출이 늘었는지 줄었는지 모두 살펴보되, 결과는 아래 지역·업종·기간에 한정해 탐색적으로 해석한다. 전통시장 전체나 마트 주변 모든 점포, 개별 소상공인에게 같은 변화가 있었다고 설명하지 않는다. + +| 항목 | 분석 기준 | +|---|---| +| 분석 단위 | 자치구 × 분기 | +| 처치 지역 | 동대문구 | +| 자료 범위 | 2021Q1~2024Q4 | +| 분석에서 제외할 분기 | 2023Q4: 발표에 따른 선반영 가능 구간, 2024Q1: 전환·일부 점포 유예 구간. 모든 지역에 동일 적용 | +| 사전·사후 구간 | 사전 2021Q1~2023Q3(11분기), 사후 2024Q2~Q4(3분기) | +| 주지표 | 골목상권의 육류판매·수산물판매·청과상·반찬가게 분기 추정매출 합계의 자연로그 | +| 업종 코드 | `CS300007`, `CS300008`, `CS300009`, `CS300010` | +| 보조 출력 | 동일 범위의 원 단위 매출 합계와 업종별 기술통계 | + +매출 합계가 0이거나 구성 자료가 누락되면 원인을 검사한다. 로그를 계산하기 위해 임의로 1원을 더하거나 빠진 값을 0으로 채우지 않는다. 공식 업종 대응표에는 도매업도 포함되어 있으므로 순수 소매업만의 지표라고 설명하지 않는다. 슈퍼마켓에는 기업형 슈퍼마켓(SSM)이 섞여 있어 주지표에서 제외한다. 업종 정의는 [공식 분류표](https://golmok.seoul.go.kr/images/100_v3.pdf)를 따른다. + +## 3. 정책 이력과 비교 지역 + +동대문구는 [2023년 12월 29일 행정예고](https://www.ddm.go.kr/www/selectEminwonWebView.do?key=3291¬AncmtMgtNo=16726) 후 [2024-16호 고시](https://www.ddm.go.kr/www/selectEminwonWebView.do?key=3291¬AncmtMgtNo=16863)를 통해 일요일 의무휴업 지정을 해제하고 협약에 따른 둘째·넷째 수요일 자율휴무로 전환했다. 효력일은 2024년 1월 29일이며 일부 점포는 2월 26일부터 적용된다. 분석에서는 전환을 마친 뒤 처음 맞는 온전한 분기인 2024Q2를 시작점으로 삼는다. 고시의 효력일과는 구분한다. + +비교 후보는 서울의 나머지 자치구 중 서초·중구·관악을 제외한 지역으로 설정한다. 서초는 평일 전환과 후속 영업시간 완화, 중구는 2024년 중 전환, 관악은 2024년 말 전환 확정에 따른 선반영 가능성을 고려한다. 성동은 일부 점포의 평일 휴업과 전환 추진 이력을 확인할 때까지 비교 지역에 넣지 않는다. 남은 20개 구도 아직 후보이며, 분석 기간 내내 일요일 휴업을 유지했는지 모두 확인한 것은 아니다. + +현재 자치구별 근거와 미확인 사항은 [정책 확인표](policy-verification.md)에 정리했다. 목록에는 구별 대상 점포, 발표일과 효력일, 일시적인 예외, 이후 변경 사항과 출처를 더해 나간다. 실행에 사용할 비교 지역 목록과 확인 수준은 매출 결과 열람 전에 고정한다. 이력이 불분명한 지역을 포함해 계산하면 그 사실을 밝히고, 결과를 탐색적으로만 제시한다. 정책 효과에 대한 판단은 보류한다. 결과의 방향이나 유의성에 따라 비교 지역을 선택하지 않는다. + +서울 안에서는 경기나 계절 변화의 영향을 함께 받는다는 점을 비교의 근거로 삼는다. 다만 휴업일을 바꾼 지역은 원래 상권 사정이 달랐을 수 있고, 소비자가 다른 구로 이동했을 수도 있다. 평일 전환 연계 지원사업은 [서울시의회 결산 기록](https://mas.smc.seoul.kr/record/recordView.do?key=8eee9ad6c34937762f150a6f45cd72764c6ae28cc71e710e19b7efc806f5ebd847d57163f338eb45)에서 확인된다. 지원사업이 실제로 언제 진행됐는지 확인하기 전에는 매출 변화가 휴업 요일 변경만의 효과라고 해석하지 않는다. + +## 4. 자료원과 수집 설계 + +| 자료원 | 용도 | 현재 확인 범위 | +|---|---|---| +| 자치구 고시·공식 보도자료·의회 기록 | 정책 목록과 지역별 처치 분류 | 동대문 고시 등 일부 확인, 전체 이력은 후속 보강 | +| [추정매출-상권 OA-15572](https://data.seoul.go.kr/dataList/OA-15572/S/1/datasetView.do) | 분기·상권·업종별 결과지표 | 제공 설명·API 명세·공공누리 1유형 확인, 매출 원자료 미열람 | +| [영역-상권 OA-15560](https://data.seoul.go.kr/dataList/OA-15560/S/1/datasetView.do) | 골목상권 구분과 자치구 연결 | 공간 ZIP 다운로드 및 상권 코드 고유성·자치구 연결 구조 확인 | + +매출은 카드결제 자료를 보정한 추정 지표다. 제공기관은 2024년 공간 단위 개편과 2021년 이후 자료의 재제공을 안내하고 있다. 확인한 공간 파일은 2023년 작성본으로, 최신 매출 자료와 상권 경계·코드가 맞는지는 아직 확인하지 못했다. 코드가 연결되더라도 연도별로 같은 범위를 집계한 것인지 따로 확인해야 한다. + +`fetch.py`에서는 원자료를 받고 열 이름·코드·분기 표기를 맞춘다. 그다음 골목상권의 4개 업종을 골라 자치구에 연결하고, 분기별 매출을 합산한 뒤 정책 목록을 붙인다. 같은 자료로 다시 실행할 수 있도록 수집 시점·원본 파일 식별 정보·해시·변환 규칙을 기록한다. 갱신 자료를 받으면 기존 입력과 구분하고 변경 내역을 남긴다. + +자료별 이용 조건을 실행 설정과 README에 명시한다. 원자료·가공 데이터와 인증 정보는 저장소에 포함하지 않는다. 상권을 어느 자치구에 연결할지 분명하지 않으면 임의로 연결하거나 면적 비율에 따라 나누지 않는다. + +## 5. 구현할 작업 + +저장소에 있는 분석 흐름에 이 사례의 수집 코드와 검사를 연결한다. 단계별로 만들 파일은 다음과 같다. + +| 단계 | 구현·운영 내용 | 산출물 | +|---|---|---| +| 계획 확인 | 스키마, 사례 ID, 사전등록 상태 및 실행 입력 확인 | `plan.yaml`, 정책 목록 | +| 수집·정규화 | 출처별 취득, 열·코드·시간축 통일, 재실행 가능한 입력 관리 | `fetch.py`, 수집 기록 | +| 패널 구축 | 상권·업종 선택, 자치구 집계, 정책 정보 결합 | `data/panel.csv` | +| 품질 검사 | 공통 자동 검사와 사례별 검사, 실패 사유 출력 | 품질 점검 기록 | +| 추정·반증 | 이벤트스터디, 가짜 시행일 검정, 판정 규칙 적용 | 추정 결과·그림 | +| 보고·재현 | 자동 보고서 생성, 해석·한계 병합, 타 참여자 재실행 | `report.md`, `discussion.md`, `run_manifest.json`, README | + +수집부터 보고까지 기존 `make flow CASE=cases/YoungjaeKang-retail-hours` 흐름에 연결하는 것을 목표로 한다. 고시를 읽고 같은 시기에 시행된 다른 정책을 확인하는 일은 직접 한다. 검토 내용은 다시 사용할 수 있는 형태로 기록한다. 고시를 자동으로 해석하거나 정기적으로 자료를 수집하는 기능까지 이번 7주 안에 만들 계획은 없다. + +## 6. 자료 검사와 분석을 멈출 조건 + +분기는 `2021Q1=0`부터 순서대로 번호를 붙인다. 분석에서 뺀 분기의 번호는 비워 두고 나머지 번호를 당기지 않는다. 기본 패널 열은 `gu_code`, `quarter_idx`, `treated`, `sales_krw`, `log_sales`로 구성하며 처치집단 표시 `treated`는 도입 전후에 동일하게 유지한다. + +| 구분 | 검사 내용 | +|---|---| +| 공통 자동 검사 | 필수 열, 결측, 정수 시간축, 단위×시점 중복, 사전·사후 관측과 처치·비교집단 존재 | +| 사례별 추가 검사 | 업종·상권 코드 연결 누락, 자치구 대응의 유일성, 모든 구의 관측 분기 집합 일치, 제외 분기와 처치 표시 일관성 | +| 집계 검증 | 원자료와 집계 합계 대조, 0과 누락의 구분, 로그 변환 가능 여부, 필요한 업종·상권 구성의 누락 | +| 근거 검토 | 공간 버전, 정책 이력, 지원사업·후속 정책의 확인 수준과 해석 제한 | + +중복·연결 실패·해결되지 않은 결과 결측 등 입력 오류가 있으면 실자료 추정을 중단하고 검사 결과를 남긴다. 정책 이력이나 공간 버전이 미확인인 경우에는 계산이 가능하더라도 인과효과 판정을 보류한다. + +실자료 분석이 중단되면 동일한 열 구조의 시뮬레이션으로 정상 실행과 오류 시 중단 여부를 확인한다. 실제 자료와 시뮬레이션은 자료·설정·결과를 따로 저장하고 보고서에서도 구분한다. + +## 7. 분석 방법과 판단 기준 + +자치구와 분기 고정효과를 포함한 이벤트스터디를 사용한다. 분석상 시작점은 2024Q2(`treat_time=13`), 기준 분기는 2023Q3(`ref_period=-3`), 상대시점 범위는 `[-13, 2]`로 설정한다. 추가 통제변수는 넣지 않는다. 주 추정량은 전환 후 3분기 계수의 단순평균이다. 제외 분기의 빈 상대시점은 추정에서 제거한다. + +| 항목 | 초기 기준 | +|---|---| +| 불확실성 | 양측 유의수준 0.05, 자치구 단위 추론 | +| 소수 처치 | 공통 구현의 무작위화 추론 사용 조건 확인, 단일 처치의 한계로 최상 판정도 조건부 | +| 사전추세 | 결합검정 유의수준 0.10, 기각 시 판단 불가 | +| 가짜 시행일 | 2023Q1, `shift=5`; 실제 분석 시작 전 자료만 사용, 유의수준 0.10 | +| 기간 기준 | 사전 최소 8분기, 사후 최소 3분기. 미달 시 초기 효과 해석 보류 | +| 군집 수 | 20개 미만이면 조건부로 판정하고 검정력 한계 기록 | +| 신뢰구간 | 0을 포함하면 불확실로 해석, 효과가 없다고 단정하지 않음 | + +위 기준으로 첫 분석을 진행한다. `plan.yaml`이 지원하는 조건은 `abstention`과 `thresholds`에 반영하고, YAML에서 자동으로 검사할 수 없는 사후 기간과 근거 확인 여부는 별도 검사와 해석 기록에 남긴다. 가짜 시행일 검정에서 유의한 결과가 나오면 조건부로 낮춘다. 시차 도입을 단순 동시 도입 모형에 혼합하면 판단 불가로 처리한다. + +무작위화 추론을 여러 번 반복해도 정책을 바꾼 지역이 하나라는 한계는 남는다. 사전추세 검정을 통과하더라도 두 집단이 정책 없이 같은 추세를 보였을지, 어느 구든 동대문구 대신 정책을 도입할 수 있었을지는 별도의 가정이다. 인접 지역을 빼고 결과가 달라지는지 살펴보는 분석은 추후 추가한다. 추가할 때는 경계 자료와 제외 목록을 사전에 정한다. 현재 공통 파이프라인에서 자동 실행되지 않는 검사는 사례별로 구현·검증한 뒤 포함한다. + +## 8. 제출 순서와 남은 일 + +프로젝트 범위와 일정은 `plan.md`에, 실행 설정과 사전등록 기준은 `plan.yaml`에 기록한다. + +[참여 가이드](../../docs/ops/mentee-guide.md)에 따라 케이스 제안, 정책 목록, 시행 시점·대상·측정 항목 확인 결과를 정리한 뒤 계획 PR을 준비한다. 초기 실행의 비교 후보 목록·확인 수준·자료 처리 가정·판정 규칙을 [계획 작성 가이드](../../docs/strategy/plan-guide.md)와 [스키마](../../core/schema/plan.py)에 맞춰 YAML에 반영하고, 매출 결과 자료를 열기 전에 커밋·PR한다. 미확인 정책 날짜를 임의 값으로 채우지 않는다. + +계획 PR → 수집·분석 PR → 리포트 PR 순서로 단계별 제출한다. 관련 검사와 `make check` 결과를 기록하고, 실행하지 못한 검사는 이유를 명시한다. 리뷰 1명 승인과 CI 통과 후 squash merge 절차를 따른다. 공통 모듈 변경이 필요하면 먼저 이슈로 논의한다. + +결과 확인 후 기간·지역·업종·방법을 바꾸면 변경 이유와 영향을 커밋 기록 및 `discussion.md`에 남긴다. 결과를 본 뒤 바꾼 계획을 처음부터 정해 둔 것처럼 설명하지 않는다. + +| 남은 일 | 지금 기록할 내용 | 확인 후 할 일 | +|---|---|---| +| 지원사업 집행일·대상지 | 함께 진행한 사업과 아직 모르는 내용 | 정책 효과 범위와 기간 재검토 | +| 비교구 전체 이력·점포 예외 | 비교 후보와 확인한 범위 | 검증된 비교집단 구성 | +| 공간 경계·코드 버전 호환성 | 코드 연결 결과와 자료 비교의 한계 | 연도별 자료를 같은 기준으로 연결 | +| 추가 기간·업종·분석 방법 | 첫 분석과 구분해 기록 | 별도 계획을 세워 추가 분석 | + +7주 안에 확인하지 못한 근거는 과정이 끝난 뒤에도 계속 찾아본다. 근거가 부족한 분석은 판단 불가로 보고한다. 본 프로젝트는 학습·연구용 오픈소스 분석이며 정부·공공기관의 공식 평가가 아니다. + +## 9. 주차별 계획 + +[멘티 참여 가이드](../../docs/ops/mentee-guide.md)의 공식 일정이다. 지연된 작업은 아래 순서에 따라 보완하며, 개인 보충 일정은 별도로 관리한다. + +| 주차·공식 목표일 (2026년) | 주요 산출물 | +|---|---| +| 1주차·OT | 실행 환경 준비와 예제 실행 | +| 2주차·9/27 | 주제 선정과 정책 목록 작성 | +| 계획 제출·10/2 | 프로젝트 범위·초기 실행 설정, `plan.yaml` 계획 PR | +| 3주차·10/4 | 수집·정규화·패널 구축과 품질 검사 | +| 4주차·10/11 | 추정·그림 생성 연결, 실행 요건 충족 시 실자료 1차 추정 | +| 5주차·10/18 | 가짜 시행일 검정, 실패 처리 검증, `discussion.md` 초안 | +| 6주차·10/25 | 보고서 자동 생성, 판정·과장 표현·미확인 사항 표시 검증 | +| 7주차·11/1 | 타 참여자 재실행, 파이프라인·운영 절차 공개와 후속 과제 정리 | diff --git a/cases/YoungjaeKang-retail-hours/plan.yaml b/cases/YoungjaeKang-retail-hours/plan.yaml new file mode 100644 index 0000000..af9f0ff --- /dev/null +++ b/cases/YoungjaeKang-retail-hours/plan.yaml @@ -0,0 +1,168 @@ +# 작성자: 강영재 +# 프로젝트 범위·일정: plan.md / 실행 스키마: core/schema/plan.py +# 실제 자료에 사용할 계획. 매출 원자료를 열기 전에 커밋하고 PR을 올린다. +# fetch.py와 사례별 검사는 추후 구현한다. +case_id: YoungjaeKang-retail-hours +title: "대형마트 의무휴업 평일 전환과 골목상권 식품판매 매출" +question: >- + 동대문구의 대형마트 의무휴업 평일 전환 이후, 골목상권 식품판매 관련 + 업종의 분기 추정매출은 서울 내 비교 후보 자치구와 비교해 어떻게 달라졌는가? +synthetic_data: false + +unit: + name: 서울특별시 자치구 + id_col: gu_code +time: + col: quarter_idx + freq: quarter + start: 0 + end: 15 +# 2021Q1=0, 2024Q4=15. 모든 구에서 11(2023Q4), 12(2024Q1)을 제외한다. +# 제외 후 재번호하지 않는다. 실제 관측 시점은 0~10, 13~15이다. +# 위 제외 규칙은 time 필드가 자동 적용하지 않으므로 fetch.py에서 구현·검사한다. + +treatment: + definition: >- + 동대문구를 처치집단으로 고정하고 도입 전후 treated=1을 유지한다. + 2023-12-29 행정예고, 2024-01-29 효력 발생(일부 점포 2024-02-26)을 + 구분하며, 분석은 전환을 마친 뒤 첫 온전한 분기인 2024Q2(13)부터 시작한다. + 2023Q4는 선반영 가능성, 2024Q1은 전환·유예 때문에 공통 제외한다. + group_col: treated + treat_time: 13 +control: + definition: >- + 초기 분석의 비교 후보 20개 구는 종로구, 용산구, 광진구, 중랑구, + 성북구, 강북구, 도봉구, 노원구, 은평구, 서대문구, 마포구, 양천구, + 강서구, 구로구, 금천구, 영등포구, 동작구, 강남구, 송파구, 강동구이다. + 이들 구는 전체 기간에 treated=0을 부여한다. 다만 분석 기간 전체의 + 미전환 여부는 추가 확인이 필요하다. 서초구·중구·관악구는 제외하며, + 성동구는 점포별 예외와 전환 이력 확인 전까지 편입을 보류한다. + rationale: >- + 같은 서울 안에서는 경기와 계절 변화의 영향을 함께 받는다고 본다. + 다만 휴업일을 바꾼 구는 원래 상권 사정이 달랐을 수 있고, 소비자가 다른 + 구로 이동했을 수도 있다. 비교 후보의 정책 이력도 아직 모두 확인하지 못해 + 어느 구든 처치 지역을 대신할 수 있다고 가정하기 어렵다. 구별로 확인한 + 내용을 정책 목록에 적는다. 이력이 불분명한 후보를 포함하면 결과는 + 탐색적으로만 제시하고 정책 효과에 대한 판단은 보류한다. + 비교 목록 변경은 결과 열람 전에 기록하고, 열람 후 바꾸면 별도 이력을 남긴다. + +outcomes: + - name: 골목상권 식품판매 관련 업종 추정매출 로그 합계 + col: log_sales + definition: >- + 골목상권에 해당하는 상권의 육류판매(CS300007), 수산물판매(CS300008), + 청과상(CS300009), 반찬가게(CS300010) 분기 추정매출을 자치구별로 합산한 + 명목 원화 매출 sales_krw의 자연로그이다. 매출이 0이거나 빠진 이유를 확인하고, + 로그 계산을 위해 상수를 더하거나 빠진 값을 0으로 채우지 않는다. 업종 대응표에 도매업이 + 포함되어 순수 소매업 지표로 해석하지 않으며 슈퍼마켓은 제외한다. + unit: 명목 원화 매출 합계의 자연로그 + primary: true + expected_direction: unknown +# sales_krw와 업종별 기술통계는 보조 출력이며 별도의 효과 추정 지표로 등록하지 않는다. + +estimator: + method: event_study + cluster_col: gu_code + covariates: [] + ref_period: -3 + window: [-13, 2] + alpha: 0.05 +# 자치구·분기 고정효과. 기준은 2023Q3(10), 사후 3분기 계수의 단순평균을 보고한다. + +assumptions: + - name: 평행추세 + description: >- + 정책이 없었다면 처치·비교집단의 결과 추세가 같았을 것이라는 가정이다. + 사전 계수 결합검정을 하되, 통과하더라도 이 가정이 입증됐다고 보지 않는다. + check: pretrend_test + - name: 가짜 시행일에서 효과 부재 + description: 실제 분석 시작 전 자료에서 2023Q1을 가짜 시행일로 설정해 점검한다. + check: placebo_time + - name: 정책 분류와 동시 정책 + description: >- + 비교 후보의 2021~2024 정책 이력·점포 예외, 동대문구 연계 지원사업의 + 집행일과 후속 정책을 검토한다. 아직 확인하지 못한 내용이 있어 정책 효과에 대한 판단은 보류한다. + 요일 변경만의 순수 효과로 해석하지 않는다. + check: manual + - name: 공간 및 측정 기준의 일관성 + description: >- + 다시 제공된 2021년 이후 매출과 영역 자료가 같은 상권 경계·코드를 + 사용하는지 확인한다. 2023년 공간 파일의 코드가 연결되더라도 연도별로 + 같은 범위의 매출인지 따로 확인해야 한다. 확인 전에는 정책 효과를 판단하지 않는다. + check: manual + - name: 패널 구성과 관측 기간 + description: >- + 모든 구에 0~10, 13~15 분기 자료가 있어야 한다. + 사전 최소 8분기, 사후 최소 3분기를 요구한다. 누락·중복·불명확한 자치구 + 연결·로그 변환 불가 등 입력 오류는 추정을 중단하고 원인을 기록한다. + check: manual + - name: 소수 처치와 지역 간 파급 + description: >- + 단일 처치 구의 한계와 인접 구 소비 이동 가능성을 기록한다. + 공통 구현의 무작위화 추론 적용 조건인 균형 패널·동일 도입 시점을 확인한다. + 계산을 반복해도 처치 지역은 하나이며, 다른 구가 처치 지역을 대신할 수 있다는 가정이 보장되지는 않는다. + check: manual +# manual 항목은 자동 검사되지 않는다. 근거 미확인 시의 판정 보류, 사후 최소 기간, +# 사례별 입력 검사는 수집·검증 코드와 보고 단계에서 구현한다. + +refutations: + - kind: placebo_time + params: {shift: 5} +# 13-5=8(2023Q1). 실제 분석 시작 전 자료만 사용하며 유의수준은 pretrend_alpha이다. +# 인접 구 제외 민감도 분석은 후속 확장 대상으로 자동 실행 목록에 포함하지 않는다. + +abstention: + - when: pretrend_rejected + verdict: not_identified + note: 사전추세 결합검정 기각 시 인과효과를 주장하지 않는다. + - when: staggered_adoption + verdict: not_identified + note: 시차 도입을 단순 동시 도입 모형에 혼합하지 않는다. + - when: short_pre_period + verdict: not_identified + note: 사전 8분기 미만이면 초기 효과 해석을 보류한다. + - when: few_treated_clusters + verdict: conditional + note: 처치 지역이 하나이므로 자동 판정은 좋아도 조건부까지만 허용한다. + - when: few_clusters + verdict: conditional + note: 군집 20개 미만이면 검정력 한계를 기록한다. + - when: placebo_significant + verdict: conditional + note: 가짜 시행일 검정이 유의하면 조건부로 낮춘다. + - when: ci_crosses_zero + verdict: conditional + note: 효과 없음이 아니라 효과 크기를 판별하기 어렵다고 해석한다. + +thresholds: + pretrend_alpha: 0.10 + min_clusters: 20 + min_pre_periods: 8 + +data_sources: + - name: 서울시 상권분석서비스 추정매출-상권 (OA-15572) + provider: 서울특별시·서울신용보증재단 + url: https://data.seoul.go.kr/dataList/OA-15572/S/1/datasetView.do + license: KOGL-1 + path: data/panel.csv + notes: >- + 제공 설명·API 명세·이용 조건을 확인했으며 매출 원자료는 아직 열람하지 않았다. + 카드결제 자료를 보정해 추정한 매출이다. 계획 커밋·PR 후 fetch.py에서 + 2021~2024 자료 취득, 골목상권·4업종 선택, 자치구 연결·집계 및 분기 제외를 + 구현한다. 생성한 분석 패널은 path에 저장한다. + 원본 식별 정보·수집 시점·해시·변환 규칙을 기록하고 원자료는 커밋하지 않는다. + - name: 서울시 상권분석서비스 영역-상권 (OA-15560) + provider: 서울특별시·서울신용보증재단 + url: https://data.seoul.go.kr/dataList/OA-15560/S/1/datasetView.do + license: KOGL-1 + path: data/panel.csv + notes: >- + 골목상권 구분과 상권 코드의 자치구 연결에 사용하는 보조 자료이다. + 2023-10-23 등록 공간 ZIP의 다운로드와 코드 구조를 확인했다. + 최신 재제공 매출과의 경계·버전 호환성은 미확인이다. + 두 자료를 합친 분석 파일을 같은 path에 저장한다. 각 원본의 경로와 버전은 수집 기록에 남긴다. +# 정책 근거: 동대문구 고시 2024-16호 +# https://www.ddm.go.kr/www/selectEminwonWebView.do?key=3291¬AncmtMgtNo=16863 +# 업종 정의: https://golmok.seoul.go.kr/images/100_v3.pdf +# 정책 목록·근거 링크와 확인 수준은 policy-verification.md에서 관리한다. +# 시뮬레이션 실행은 별도 설정·입출력을 사용하고 synthetic_data: true, license: synthetic을 적용한다. diff --git a/cases/YoungjaeKang-retail-hours/policy-verification.md b/cases/YoungjaeKang-retail-hours/policy-verification.md new file mode 100644 index 0000000..db4d0e5 --- /dev/null +++ b/cases/YoungjaeKang-retail-hours/policy-verification.md @@ -0,0 +1,51 @@ +# 정책 이력과 비교 후보 확인표 + +근거 확인 기준일: 2026-10-05. 문서 정리일: 2026-10-11. + +10월 5일까지 찾아본 자료를 정리한 표다. 이번에 새로 조사한 내용은 없다. 변경 고시를 찾지 못했다고 해서 일요일 휴업을 유지했다고 볼 수는 없다. 아직 비교 후보 중 분석 기간 전체의 휴업일을 확인한 구는 없다. + +현재 [plan.yaml](plan.yaml)에서는 동대문구를 처치 지역으로 정했다. 서초·중구·관악은 제외하고 성동은 추가 확인 전까지 넣지 않는다. 나머지 20개 구는 비교 후보로 두었다. 표의 역할은 이 계획에 따른 구분이다. + +## 언제·누가·무엇을 확인했나 + +- 언제: 동대문구 고시 2024-16호의 효력일은 2024-01-29, 일부 점포는 2024-02-26이다. 분석 시작은 전환을 마친 뒤 첫 온전한 분기인 2024Q2로 잡았다. +- 누가: 동대문구를 처치 지역으로 사용한다. 비교 후보는 분석 기간 동안 어떤 점포에 어떤 휴업 기준이 적용됐는지, 일시적인 예외가 있었는지 더 확인해야 한다. +- 무엇: 골목상권의 육류·수산물·청과·반찬 판매 추정매출 합계의 자연로그를 사용한다. 매출 제공 설명과 API 명세는 확인했지만 원자료는 아직 열어보지 않았다. 영역 공간 ZIP은 다운로드해 코드·연결 구조를 확인했으며, 최신 매출 자료와 상권 경계·코드가 맞는지는 아직 확인하지 못했다. + +## 자치구별로 찾아본 자료 + +| 자치구 | 분석에서의 역할 | 확인 상태 | 찾아본 내용 | 출처 | 추가 확인 사항 | +|---|---|---|---|---|---| +| 종로구 | 비교 후보 | 미확인 | 검색했으나 분석 기간의 휴업일을 확인할 자료를 찾지 못함 | 미확보 | 2021~2024 고시와 변경 발표, 점포별 예외 | +| 중구 | 제외 | 일부 근거 확인 | 2024-11 전환 확정; 구 공식 보도자료 | [근거](https://www.junggu.seoul.kr/content.do?cid=1327424815&cmsid=14390&mode=view) | 최종 고시의 효력일과 점포별 예외 | +| 용산구 | 비교 후보 | 미확인 | 검색했으나 분석 기간의 휴업일을 확인할 자료를 찾지 못함 | 미확보 | 2021~2024 고시와 변경 발표, 점포별 예외 | +| 성동구 | 편입 보류 | 점포 예외 검증 보류 | 2023-11-23 TBS 보도에서 L마트 1곳의 수요일 휴업 확인. 2024 전환 추진 보도도 있음 | [근거](https://m.tbs.seoul.kr/news/newsView.do?seq_800=20503822&typ_800=7) | 구청 고시로 점포명·시작일·이후 변경 여부 확인 필요 | +| 광진구 | 비교 후보 | 보도 단서만 | 2025-05 전환 추진 보도 | [근거](https://news.nate.com/view/20250522n35648) | 이 보도만으로 2024년 휴업일을 알 수 없음 | +| 동대문구 | 처치 지역 | 효력일 확인 | 2024-01-29 효력; 일부 점포 2024-02-26 | [근거](https://www.ddm.go.kr/www/selectEminwonWebView.do?key=3291¬AncmtMgtNo=16863) | 연계 지원사업의 실제 집행일과 후속 고시 | +| 중랑구 | 비교 후보 | 미확인 | 검색했으나 분석 기간의 휴업일을 확인할 자료를 찾지 못함 | 미확보 | 2021~2024 고시와 변경 발표, 점포별 예외 | +| 성북구 | 비교 후보 | 미확인 | 검색했으나 분석 기간의 휴업일을 확인할 자료를 찾지 못함 | 미확보 | 2021~2024 고시와 변경 발표, 점포별 예외 | +| 강북구 | 비교 후보 | 미확인 | 검색했으나 분석 기간의 휴업일을 확인할 자료를 찾지 못함 | 미확보 | 2021~2024 고시와 변경 발표, 점포별 예외 | +| 도봉구 | 비교 후보 | 미확인 | 검색했으나 분석 기간의 휴업일을 확인할 자료를 찾지 못함 | 미확보 | 2021~2024 고시와 변경 발표, 점포별 예외 | +| 노원구 | 비교 후보 | 일부 시점 확인 | 2024-06-12 둘째·넷째 일요일 및 0~10시 제한 | [근거](https://council.nowon.kr/record/recordView.do?key=fd4cc179a996eb954fd6b414ce4b565672675a47b8f6f21ed469625aeb95b9e75bc2669af5b2ed8a) | 2021~2024 전체 이력과 일시적인 예외 | +| 은평구 | 비교 후보 | 과거 기본 고시 확인 | 2014-09-10 시행, 둘째·넷째 일요일 휴업. 당시 대형마트 2개·SSM 12개 | [근거](https://www.ep.go.kr/dong/selectBbsNttView.do?bbsNo=43&key=3960&nttNo=101888) | 2021~2024 유지 여부와 추가 점포·예외 | +| 서대문구 | 비교 후보 | 미확인 | 검색했으나 분석 기간의 휴업일을 확인할 자료를 찾지 못함 | 미확보 | 2021~2024 고시와 변경 발표, 점포별 예외 | +| 마포구 | 비교 후보 | 미확인 | 검색했으나 분석 기간의 휴업일을 확인할 자료를 찾지 못함 | 미확보 | 2021~2024 고시와 변경 발표, 점포별 예외 | +| 양천구 | 비교 후보 | 미확인 | 검색했으나 분석 기간의 휴업일을 확인할 자료를 찾지 못함 | 미확보 | 2021~2024 고시와 변경 발표, 점포별 예외 | +| 강서구 | 비교 후보 | 미확인 | 검색했으나 분석 기간의 휴업일을 확인할 자료를 찾지 못함 | 미확보 | 2021~2024 고시와 변경 발표, 점포별 예외 | +| 구로구 | 비교 후보 | 미확인 | 검색했으나 분석 기간의 휴업일을 확인할 자료를 찾지 못함 | 미확보 | 2021~2024 고시와 변경 발표, 점포별 예외 | +| 금천구 | 비교 후보 | 미확인 | 검색했으나 분석 기간의 휴업일을 확인할 자료를 찾지 못함 | 미확보 | 2021~2024 고시와 변경 발표, 점포별 예외 | +| 영등포구 | 비교 후보 | 미확인 | 검색했으나 분석 기간의 휴업일을 확인할 자료를 찾지 못함 | 미확보 | 2021~2024 고시와 변경 발표, 점포별 예외 | +| 동작구 | 비교 후보 | 미확인 | 검색했으나 분석 기간의 휴업일을 확인할 자료를 찾지 못함 | 미확보 | 2021~2024 고시와 변경 발표, 점포별 예외 | +| 관악구 | 제외 | 일부 근거 확인 | 2024-12 전환 확정·보조금 교부에 관한 시의회 결산 기록 | [근거](https://mas.smc.seoul.kr/record/recordView.do?key=8eee9ad6c34937762f150a6f45cd72764c6ae28cc71e710e19b7efc806f5ebd847d57163f338eb45) | 최초 발표와 2025 시행 고시 원문 | +| 서초구 | 제외 | 일부 근거 확인 | 2024 전환; 영업시간 후속 완화 단서 | [근거](https://www.seocho.go.kr/site/seocho/ex/bbs/View.do?bcIdx=387192&cbIdx=57) | 최초 고시와 후속 고시 원문 | +| 강남구 | 비교 후보 | 보도 단서만 | 2024-06-03 미전환 입장 보도. 다른 보도와 내용이 엇갈림 | [근거](https://www.skyedaily.com/news/news_view.html?ID=234326&SKYEDAILY_MOBILE=1) | 구청 고시를 찾지 못해 언론 보도만으로 분류하기 어려움 | +| 송파구 | 비교 후보 | 논의 기록 확인 | 2024-02-15 의회에서 전환 관련 발언 | [근거](https://council.songpa.go.kr/record/recordView.do?key=0173004a7435832cbb2ee1a341209613242c567e25c84aff518f0542d97f4877b77858019edd0aff) | 회의에서 논의한 내용만으로 실제 시행 여부를 알 수 없음 | +| 강동구 | 비교 후보 | 의회 입장 확인 | 2024-05-02 규제 폐지 철회 촉구 결의안 원안가결 | [근거](https://council.gangdong.go.kr/meeting/smember/bill.do?mcode=9060&mname=%EC%8B%AC%EC%9A%B0%EC%97%B4) | 의회의 입장과 별개로 실제 적용된 휴업일 확인 필요 | + +## 함께 확인할 내용 + +동대문구 연계 지원사업은 [서울시의회 결산 기록](https://mas.smc.seoul.kr/record/recordView.do?key=8eee9ad6c34937762f150a6f45cd72764c6ae28cc71e710e19b7efc806f5ebd847d57163f338eb45)에서 확인했으나 구별로 실제 사업을 시작한 날과 대상지는 아직 확인하지 못했다. 예산이 교부된 날부터 매출에 영향을 주었다고 가정하지 않으며, 매출 변화를 휴업 요일 변경만의 효과로 해석하지 않는다. + +매출과 영역 자료의 출처·이용 조건·확인 범위는 [plan.md의 자료원과 수집 설계](plan.md#4-자료원과-수집-설계)에 정리했다. 코드가 연결되더라도 해마다 같은 상권 범위와 기준으로 매출을 집계했는지 따로 확인해야 한다. + +실제로 비교할 지역과 어디까지 확인했는지는 매출 결과를 보기 전에 정한다. 정책 이력, 함께 시행된 지원사업, 상권 자료의 기준이 불분명하면 정책 효과에 대한 판단은 보류한다. 확인이 덜 된 후보를 넣어 계산한 결과는 탐색적으로만 제시한다. 입력 오류나 매출 누락이 해결되지 않으면 실제 자료 분석을 멈춘다.