# LS CRUDE · 태환·성찬 작업 가이드 보관본

**1차 프로젝트는 2026-09-14 18:00 KST 기준 공식 종료했습니다.** 실험용 CAI v0.1·대시보드·연구 기록을 보관하며, 아래 절차와 역할 제안은 당시 작업 기록입니다. 후속 연구는 별도 요청 전 재개하지 않습니다.

현재 종료·인계 기록: https://github.com/Noah-TaeHwan/ls-crude/blob/main/docs/cai/CLOSEOUT.md

공동 작업·재현 안내: https://github.com/Noah-TaeHwan/ls-crude/blob/main/docs/cai/TEAM_START_HERE.md

위 안내에 33개 상태·담당 제안표, 수집/전처리/학습/검토 AI 프롬프트와 입력·제출 검증 명령을 연결했습니다. 아래는 기존 2019 기준 실험의 상세 재현 참고입니다.

쿠싱의 활동 흔적이 이후 유가 움직임에 도움이 되는지, 실제 자료와 같은 비교 기준으로 확인하는 포트폴리오 프로젝트입니다. 높은 정확도를 약속하기보다 무엇을 모았고 무엇을 시험했는지 설명할 수 있는 결과를 만듭니다.

## 지금 어디까지 왔나요?

1. **아이디어 정리:** 106개 자료 폴더를 정리했습니다. 독립 가설 106개라는 뜻은 아닙니다.
2. **쿠싱 후보 추리기:** 관련 엔진·하위 관측·보조 자료를 33개 항목으로 연결했습니다. 106개의 단순 부분집합은 아닙니다.
3. **수집 가능성 확인:** 계속 진행 중입니다. 33개 전부 수집 가능한 것으로 확인된 것은 아닙니다.
4. **데이터 준비:** 교통량과 South STP 신고 유량(DMR)은 입력 CSV를 만들어 첫 실험에 사용했습니다.
5. **지수·모델 비교:** 교통 단독, 교통+DMR, DMR 재사용 기간, 2019년 교통자료 보강을 시험했습니다.
6. **결과 공유:** 회고 결과는 웹에 연결했습니다. 최종 CAI 성분·공식 현재 지수·미래 예측·성찬님 독립 재현은 아직 완료되지 않았습니다.

## 어떻게 나눠서 하나요?

아래는 현재 역할을 바탕으로 성찬님과 공유할 작업안입니다. 새 후보나 실험 조건은 둘이 범위를 맞춘 뒤 진행합니다.

| 담당 | 먼저 할 일 | 넘길 결과 |
| --- | --- | --- |
| 태환 | 공통 입력의 수집 경로·필터·날짜·단위·결측·해시 정리. 시장정보·동일 가중치 기준 결과 준비. | 입력 설명, 고정 설정, 참조 결과, 화면 |
| 성찬 | 같은 입력과 설정으로 결과 재현. 측정 의미·정보 시점·가중치 해석 검토. | 일치 여부, 다른 점, 다음에 바꿀 조건 한 가지 |
| 함께 | 재현 확인 뒤 학습 가중치·모델 또는 새 성분 비교 범위 결정. | 비교할 질문·입력 버전·평가 기간·판정 기준 |

새 역사자료 조사에서는 태환이 SPP 지역 노드·접근 경로를, 성찬님께는 5번 공항 월보(CAAI) → 11번 숙박세 → 16번 판매·사용세의 지표·기간·연속 이력 확인을 제안합니다. 수락 전이며, 가능하면 전처리까지 요청하는 범위입니다. 둘 다 아직 학습용 자료로 확정된 것은 아닙니다. 아래 33개 목록의 다른 후보까지 한꺼번에 수집하는 요청은 아닙니다.

## 3단계에서 후보 하나를 확인하는 방법

다섯 가지만 남겨 주세요: **실제 관측값인지 / 쿠싱 자료인지 / 어느 기간·주기인지 / 어디서 어떻게 받을지 / 사용 조건과 공개시점은 무엇인지**.

결과는 `수집 진행 가능`, `추가 확인 필요`, `보류` 중 하나와 근거 URL로 정리합니다. 접속 실패는 자료가 없다는 증거가 아닙니다. 코드·양식만 있으면 실측 확보로 표시하지 않습니다. 호텔 견적처럼 앞으로 모을 자료로 과거 이력을 만들 수는 없습니다.

## 4단계의 데이터 준비는 무엇인가요?

- 허용된 자료를 받은 뒤 원본을 보관하고 파일 해시를 기록합니다.
- 지역·시설·단위·날짜·중복·결측을 확인해 공통 입력 CSV를 만듭니다. 빠진 값을 임의로 0으로 채우지 않습니다.
- 교통량은 전체 차량 수입니다. 원유 운송 차량만 센 자료가 아닙니다.
- DMR은 `OK0026701 / 001 / MGD / DAILY MX`를 분리한 신고 유량입니다. CHAI 엔진과 다른 입력입니다.
- DMR `available_at`은 규제기관 접수일 기준입니다. 과거 최초 공개시점과 수정 전 값은 확인되지 않아 회고 분석용으로 유지합니다.
- 단위·날짜를 맞추는 정리와 모델의 표준화는 구분합니다. **표준화 통계와 가중치는 학습 구간에서만** 구합니다. 평가 자료를 미리 섞지 않습니다.

원자료와 입력 CSV는 재배포 조건이 확인되지 않아 저장소에 포함하지 않았습니다. 코드·설정·해석은 지금 검토할 수 있고, 수치 재현은 허용된 입력을 확보한 다음 가능합니다.

## 5단계: 성찬님이 먼저 재현할 실험

처음에는 이미 끝낸 **2019년 교통자료 보강 교통+DMR 실험 한 건**을 같은 조건으로 맞춥니다. 다른 결과를 억지로 기존 숫자에 맞추지 않습니다. 입력이나 원출처 버전이 다르면 그 차이를 먼저 남깁니다.

- 저장소: https://github.com/Noah-TaeHwan/ls-crude 의 현재 `main`
- 연구 기준 코드: `f450cdd`에 통합된 실험 프로그램(이후 웹 개편과 구분). 실행 코드 fingerprint는 재현 안내와 대조합니다.
- 대표 연구 설명: `docs/cai/RESEARCH_BRIEF.md` 또는 웹의 오프라인 연구 요약.
- 환경·입력 생성·완전 대조: `research/DELIVERY.md`, `research/experiments/cai/REPRODUCE_2019.md`. 초기 파일럿·민감도는 `REPRODUCE_PILOT.md`·`REPRODUCE_SENS.md`에 보존합니다.
- 설정: `research/experiments/cai/pilot_retro_traffic_dmr_2019.config.json`
- 참조: `research/experiments/cai/reference/2019plus_20260912T013423Z/export/summary.json`
- 모델: 학습기간 상승률 기준선, 시장정보만, CAI 동일 가중치, CAI 학습 가중치, 시장정보+동일 CAI, 시장정보+학습 CAI
- 정답: 이후 **5거래일 WTI 상승 여부**. 보합은 하락과 함께 분류합니다.
- 대표 보강 실험 학습 753행·평가 245행. 실제 설정은 2020년까지 학습합니다. 설정의 평가 범위는 2021–2023이지만 공통 유효 평가 표본은 2023년입니다.

기존 공유 문서의 `share/cai-exp-0.1.0`은 과거 브랜치명입니다. 현재는 `main`에 통합되어 있습니다. 작업 중인 코드가 있다면 보존하고 별도 깨끗한 체크아웃에서 재현하세요.

프로젝트 루트에서 환경을 준비합니다. 아래 설치 명령은 이 가이드를 작성하며 실행한 것이 아닙니다.

```bash
cd research
python3 -m venv .venv-share
.venv-share/bin/python -m pip install -r requirements-exp.txt
.venv-share/bin/python -m pip install -e . --no-deps
```

Windows PowerShell에서는 다음처럼 가상환경의 Python을 직접 실행합니다. 뒤의 실행 명령도 `.venv-share/bin/python` 대신 `.\.venv-share\Scripts\python.exe`를 사용하면 됩니다.

```powershell
cd research
py -3 -m venv .venv-share
.\.venv-share\Scripts\python.exe -m pip install -r requirements-exp.txt
.\.venv-share\Scripts\python.exe -m pip install -e . --no-deps
```

프로젝트는 Python 3.11 이상을 요구하며, 태환 쪽 현재 확인 환경은 Python 3.13.15입니다. 재현 보고에 Python·라이브러리 버전과 운영체제도 남겨 주세요.

허용된 원출처에서 입력을 준비하는 전체 체인은 `REPRODUCE_2019.md`의 ‘로컬 원자료에서 입력 재생성까지’을 따릅니다. 최종 입력 두 개는 다음 위치·해시와 맞아야 합니다.

- `research/data/processed/091-cai-exp-pilot/inputs/traffic_avc040_daily_2019plus.csv`
  - SHA-256: `c9522c2335b128cff711d3fced52832db9f92e2abc56694ea5f0a57d9c756302`
- `research/data/processed/091-cai-exp-pilot/inputs/dmr_ok0026701_001_mgd.csv`
  - SHA-256: `251aa9e6e60a2d7c16c9330776c6662117156230a48cbe004a9640907ead61be`

`research` 디렉터리에서 입력을 검증한 다음 실행합니다. `validate`가 실패하면 입력·설정 차이를 먼저 해결합니다.

```bash
.venv-share/bin/python -m ls_crude.experiment.cli validate --config experiments/cai/pilot_retro_traffic_dmr_2019.config.json
.venv-share/bin/python -m ls_crude.experiment.cli run --config experiments/cai/pilot_retro_traffic_dmr_2019.config.json --base-dir data/processed/cai-seongchan --no-cache
```

실행 로그의 `run_dir`를 확인하고, 아래 오른쪽 경로의 `실행결과의_run_id`를 실제 값으로 바꿉니다.

```bash
.venv-share/bin/python -m ls_crude.experiment.cli compare --left experiments/cai/reference/2019plus_20260912T013423Z --right "data/processed/cai-seongchan/실행결과의_run_id"
```

`compare`의 전체 match는 입력·설정·타깃 정의·평가 범위·모드 일치만 합산합니다. 지표·상태 비교 출력까지 자동으로 합쳐 성공 판정하지 않으므로, `REPRODUCE_2019.md`의 검증 helper로 지표·가중치·계수·내부 예측 해시까지 대조합니다. 이 실행을 마쳐도 곧바로 공식 CAI 채택이나 독립 미래 검증 완료가 되는 것은 아닙니다.

### 재현이 맞은 다음

- 태환: 새로운 자료를 넣을 수 있도록 입력 계약과 동일 가중치 기준선을 준비합니다.
- 성찬: 학습 가중치와 모델을 검토합니다. 기존 학습 가중치는 CAI 단독 목적함수로 구한 것이며 시장정보와 함께 최적화한 가중치는 아닙니다.
- 새 조건은 기존 설정을 덮어쓰지 말고 별도 설정으로 남깁니다. 질문과 비교 기준을 먼저 정하고 한 번에 한 조건을 바꿉니다.
- 이미 본 2023년은 개발용 회고 평가입니다. 최종 OOS는 잠금 유지이며 별도 동결·평가 결정 전 열지 않습니다.
- 공유할 내용: 실행한 코드·설정·입력 해시, 실제 `run_dir`, 학습·평가 행 수, 기준선 대비 지표, 해석과 남은 질문.

### 2019년 보강 결과

교통 2019년분을 추가해 학습 표본이 507→753행으로 늘었고 평가 245행은 같습니다. 시장정보 대비 CAI의 확률오차 차이는 동일 가중치 +0.002401, 학습 가중치 +0.004177로 여전히 악화했습니다. 더 좋아졌다고 발표하지 않습니다.

이 보강 실험의 설정은 `pilot_retro_traffic_dmr_2019.config.json`입니다. 보강 입력의 별도 해시와 생성 경로를 `REPRODUCE_2019.md`에 정리했습니다. 기존 입력 파일을 덮어쓰지 않습니다. 같은 로컬 원자료에서 입력 두 개를 재생성하고 6개 모델의 지표·가중치·계수·내부 예측이 원래 run과 일치함을 확인했습니다. 새 원출처 취득과 성찬님 독립 재현은 여전히 미검증입니다.

## 6단계와 대시보드의 관계

회고 실험 결과는 지금도 대시보드에서 공유합니다. 공식 CAI 점수는 **성분과 산식 결정 → 적격한 최신 입력 → 계산·검증 → 공개 범위 확인**을 마친 뒤 연결합니다. 미래 유가 방향 예측은 그와 별도의 모델·평가가 필요합니다.

효과가 없었던 비교도 포트폴리오의 결과입니다. 무엇을 가정했고 실제 자료로 무엇을 확인했는지 설명하는 것이 목표입니다.

## 후보 33개 확인 목록

숫자는 정리 항목 수입니다. 성찬님이 33개 모두 수집하거나 학습해야 한다는 뜻은 아닙니다. 출처·상세 설명은 웹 연구 기록의 ‘수집 상태 보기’에서 확인할 수 있습니다.

| 후보 | 현재 분류 | 다음 확인 |
| --- | --- | --- |
| TMAS_AVC040 · 도로 교통량 | 실험에 사용 | 기존 입력 정의만 검토하고 다시 수집하지 않습니다. |
| SPP_LOCAL / 091-GC · 전력 혼잡·지역 전력 | 경로·코드만 확인 | 지역 노드의 의미와 실제 표본부터 확인합니다. |
| CHHMI · 숙박 가격·가용성 압력 | 앞으로 기록 필요 | 같은 숙박일의 견적을 반복해서 남길 수 있는 적법한 경로를 확인합니다. |
| CCEDI · 카페인·교대 시간대 관측 | 앞으로 기록 필요 | 실제 기록이 있는지 살펴보고 관측 정의와 접근 허용 범위를 확인합니다. |
| CAAI / 091-O · 공항 활동 | 표본만 확보 | 월보의 지표와 기간을 확인하고 장기 자료를 구할 수 있는지 살펴봅니다. |
| CEPI · 굴착·허가 활동 | 경로·코드만 확인 | 실제 허가·굴착 값과 출처부터 확인합니다. |
| CERSI · 장비 임대 가용성 | 앞으로 기록 필요 | 반복 관측 기록과 약관을 확인하고 같은 장비를 비교하는지 살펴봅니다. |
| HSCI · 작업복·안전모 관련 활동 | 경로·코드만 확인 | 공개 집계 가능성만 확인하고 개인은 추적하지 않습니다. |
| CHAI · 상하수·시설 유량 엔진 | 경로·코드만 확인 | DMR 입력과 의미·단위가 맞는지 검토합니다. |
| 091-DMR / OK0026701-001 · South STP 신고 유량 | 실험에 사용 | 측정 의미와 원입력을 확인하고 회고 전용을 유지합니다. |
| 091-A · 숙박세 | 표본만 확보 | 세금월·수령일·게시일을 확인하고 장기 기록이 있는지 살펴봅니다. |
| 091-B · 도시권 야간광 | 보류·기각 | 새 채택 없이 활동 입력으로 다시 넣지 않습니다. |
| 091-D · 탱크 지붕·위성영상 | 경로·코드만 확인 | 탱크별 판독과 반복 관측부터 검증합니다. |
| 091-E · 파이프라인 배정·감축 공지 | 경로·코드만 확인 | 공개 공지의 실제 이력과 단위를 확인합니다. |
| 091-E2 · 파이프라인 EBB | 경로·코드만 확인 | 실제 용량·유량 파일 접근과 정의를 확인합니다. |
| 091-F / 091-STAX · 도시 sales/use tax | 표본만 확보 | 분배월과 세목을 구분하고 과거 자료를 보충할 수 있는지 확인합니다. |
| 091-U · 산업 채용 공고 | 앞으로 기록 필요 | 게시·마감·중복 기준을 지켜 앞으로의 기록만 검토합니다. |
| 091-V / V2 · 산업 허가 상태 전이 | 앞으로 기록 필요 | 같은 허가 사건이 중복됐는지, 실제 날짜는 언제인지 확인합니다. |
| 091-LM / 092 · 라스트마일 물류 | 경로·코드만 확인 | 서비스 권역과 허용된 일별 집계부터 확인합니다. |
| 091-M · 시청 채용 공고 | 표본만 확보 | 같은 공고의 시점·중복·장기 보관을 확인합니다. |
| 091-N · 시청 월별 문서 | 경로·코드만 확인 | 문서에 어떤 실측값이 담겼는지부터 확인합니다. |
| 091-RAIL · 철도 탱크차 | 경로·코드만 확인 | 쿠싱 연결과 실제 집계 이력부터 확인합니다. |
| 091-WASTE · 산업 폐기물 | 경로·코드만 확인 | 양식이 아닌 실제 제출 자료를 확보할 수 있는지 확인합니다. |
| 091-S · 고정 QSR 상대 혼잡 | 앞으로 기록 필요 | 허용된 관측 범위만 유지하고 새 수집은 따로 승인합니다. |
| 091-G · 공공안전 요청량 | 표본만 확보 | 개인 사건이나 신원은 제외하고 집계 정의와 시점만 확인합니다. |
| 091-EIA / 038 · 쿠싱 원유 재고 | 배경·통제 | 시장 배경으로만 따로 두고 활동 입력에 넣지 않습니다. |
| Weather / 091-Q · 기상 | 배경·통제 | 교통·유량 설명용으로만 쓰고 활동 입력과 분리합니다. |
| Library · 도서관·지역 행사 | 배경·통제 | 해당 시점에 맞는 통제 사례로 보존합니다. |
| Community parking · 일반 커뮤니티 주차 | 배경·통제 | 산업 활동과 일반 행사를 가르는 통제로만 검토합니다. |
| 091-KUSH / 091-Z · KUSH 뉴스·관심 | 배경·통제 | 뉴스 관심 신호라는 이름과 별도 역할을 유지합니다. |
| 091-LAUE / QCEW · 지역 고용 | 배경·통제 | 비교·통제로만 두고 활동 입력으로 올리지 않습니다. |
| 091-Y / YD / X · 소매 연료가격·스프레드 | 배경·통제 | 별도 시장정보로만 검토합니다. |
| 091-USGS / GW · 하천·지하수 | 배경·통제 | 날씨와 유량을 해석할 때 보조 자료로만 씁니다. |
