오늘 한 일
시간 범주 재설계 및 산포 확대 선행성 분석
배경
팀 회의에서 나온 아이디어(drift 문제를 시간 범주 단위로 나눠서 그 안에서 train/test를 분할하자)를 검증하는 과정에서, 예상치 못한 급등 구간을 발견하고 원인을 추적함. 최종적으로 실무 조기경보 가능성까지 확인함.
1. 10일 단위 범주 구성 및 문제 발견
사출공정_세그먼트_워밍업피처_추가.csv(231,440 shot, 2025-07-01~2026-02-28) 기준으로 10일 단위 범주 25개 생성함.
- 범주 0~18 (changepoint 2026-01-06 이전): fail rate 32~56% 사이에서 등락하는 안정적 밴드
- 범주 19~24 (changepoint 이후): 63% → 71% → 74% → 87% → 83% → 76%로 범주가 바뀔 때마다 계속 상승
- 특정 범주 내부에서도 fail rate 편차가 큼(예: 범주22 하나에서 70%→97%) → 범주 하나를 통째로 train/test로 나누면 이미 서로 다른 분포를 나누는 셈이라는 문제 확인
2. 일 단위 세분화 → 급등 구간 발견
post 구간(01/07~02/28)을 일 단위로 재확인한 결과, 선형적 상승이 아니라 3단계 패턴 확인:
- 01/07~01/31: 완만한 상승(62%→70% 안팎)
- 02/01~02/17: 급격한 상승 및 피크(68%→97.04%, 97.50%)
- 02/18~02/28: 하락 후 재상승 정체(84%→67%→73~84% 등락)
날짜순 상관계수 0.667 — 단순 선형 추세가 아니라 중간에 급등 구간이 섞인 패턴.
3. 급등 원인 조사 (02/08~02/17)
설비/재가동 문제 — 기각
- 12개 설비 중 11개가 동시에 fail rate 급등(+14~42%p) → 특정 설비 개별 문제가 아니라 공정 전체 이슈
- 급등구간 재가동 비율(3.57%)이 이전구간(1.42%)보다 높지만 절대 수준이 낮아 전체 급등을 설명 못함
- elapsed_since_restart 평균도 급등구간(32.69)이 이전구간(41.74)보다 낮음 — "재가동 직후 불안정" 가설과 반대 방향
- E09만 유일하게 fail rate 하락(-6.83%p) — 개별 확인 필요하나 전체 결론에는 영향 없음
FAI 항목 공통 급증 확인
- FAI117_V2(+22.75%p), FAI117_V1(+14.75%p), FAI123_U(+8.13%p) NG율이 압도적으로 상승 — 기존 baseline SHAP 분석의 top feature와 일치
원본값 추이 확인 — 평균은 그대로
FAI117_V1/V2, FAI123_U의 일별 평균값을 시계열로 확인한 결과, 급등 시점(02/08) 전후로 뚜렷한 평균 이동은 없음. "값이 다른 수준으로 이동"한 게 아니라는 것을 확인.
표준편차(산포) 확인 — 핵심 발견
FAI 및 사출조건 항목의 표준편차가 급등구간에서 뚜렷이 커짐:
항목 이전구간 std 급등구간 std 변화
| FAI117_V1 | 0.00454 | 0.00527 | +16% |
| FAI117_V2 | 0.00417 | 0.00510 | +22% |
| FAI123_U | 0.00324 | 0.00386 | +19% |
| 사출 시간 | 0.380 | 0.515 | +35% |
| 최소 쿠션 | 0.578 | 0.752 | +30% |
| Cycle Time | 10.33 | 12.92 | +25% |
| 충진 피크압 | 9.26 | 10.10 | +9% |
| 금형온도1/2 | - | - | -17% (오히려 감소) |
해석(화살 비유): 과녁 중심(평균)은 그대로인데 화살이 흩어지는 반경(분산)이 커진 것. 흔들림이 tolerance 경계를 넘기는 순간부터 NG(과녁 밖 화살)가 급증함. 이는 특정 로트/설비 문제가 아니라 공정 전반의 산포 확대로 판단됨. 1월 중하순부터 서서히 확대되다 2월 초중 정점, 2월 하순 진정되는 흐름.
4. 사출조건 vs FAI/fail rate 확대 선행성 확인
기준선(01/07~01/16, 안정 구간) 대비 "평균+1.5×표준편차"를 임계값으로 설정하고, 3일 연속 초과하는 첫 날짜를 항목별로 비교함.
항목 확대 시작일
| 사출 시간 (사출조건) | 2026-01-23 |
| FAI117_V2 | 2026-01-23 |
| FAI117_V1 | 2026-01-25 |
| FAI123_U | 2026-01-31 |
| 충진 시간 (사출조건) | 2026-02-01 |
| fail_rate | 2026-02-01 |
| Cycle Time·최소 쿠션·충진 피크압 등 나머지 사출조건 | 미감지 |
핵심 발견: 사출조건("사출 시간") 산포 확대가 fail_rate 확대보다 9일 앞서 나타남(01/23 vs 02/01). FAI117_V2도 사출조건과 같은 날 확대 시작 — "사출조건 변화 → FAI 변화 → fail 판정"이라는 인과 순서와 시점상 부합함.
한계: 사출조건 9개 중 "사출 시간" 1개만 이 기준으로 감지됨. 임계값(1.5×표준편차, 3일 연속)이 다소 엄격했을 가능성 있어 조건을 완화해 재확인 필요. 단일 사례 기준이므로 다른 시기 재현성도 추후 검증 필요.
5. 실무 적용 가능성 (팀원 질문에 대한 답)
질문: "실무에서는 fail을 바로 모르는데, 이런 구간 나누기가 가능한가?"
답: 두 층위로 구분됨
- 모델 학습(오프라인) 단계: 오늘 나눈 경계(안정기/확대·급등기/진정기)는 과거 데이터를 학습용으로 나누는 데 사용 — 사후적 구분이라 문제 없음
- 실시간 운영(온라인) 단계: fail rate 대신 사출조건의 rolling 표준편차를 조기경보 트리거로 사용 가능 — 위 선행성 확인 결과가 그 근거. "최근 N shot의 사출 시간 표준편차가 기준선보다 커지면 경보" 방식으로 fail 라벨 없이도 조기 대응 가능
6. 팀원 파이프라인과의 연결
팀원이 설계한 파이프라인(Raw MES Data → Preprocessing → Restart 분석/PCA Shift/KS Test → Time Block Split → Train/Val/Test → Regression/분류)의 Restart 분석, KS Test, Time Block Split 단계에 오늘 결과가 실증 근거로 대응됨:
- Restart 분석: 재가동은 원인이 아니라는 기각 결론으로 채움
- KS Test/PCA Shift: 평균 이동이 아닌 분산 확대라는 구체적 메커니즘 제공
- Time Block Split: 임의 고정 길이 대신, 오늘 확인한 실제 경계(1월 중하순 시작/2월 초중 급등/2월 하순 진정)를 블록 경계로 제안 가능
- 다만 파이프라인은 "장비별" Time Block 생성으로 설계되어 있는데, 오늘 발견한 급등은 12개 설비 중 11개가 동시에 겪은 전사적 이슈라 — 장비별로 경계를 따로 잡아도 비슷한 시기에 몰릴 가능성이 높음(교차 검증 필요)
다음에 이어갈 것
- 임계값 조건 완화하여 나머지 사출조건 8개의 선행성 재확인
- 시간 경계(안정기/확대·급등기/진정기) 확정 후 그 구간별 train/test 분할로 모델 성능 재검증
- 구간을 모델에 반영하는 방식 결정 (구간별 개별 모델 vs 구간 정보를 feature로 포함, 하나의 모델 유지)
'내일배움캠프(본캠프)' 카테고리의 다른 글
| [내일배움캠프] 본캠프 7/13 (0) | 2026.07.13 |
|---|---|
| [내일배움캠프] 본캠프 7/10 (1) | 2026.07.10 |
| [내일배움캠프] 본캠프 7/8 (0) | 2026.07.08 |
| [내일배움캠프] 본캠프 7/7 (0) | 2026.07.07 |
| [내일배움캠프] 본캠프 7/6 (1) | 2026.07.06 |