품질관리(QAQC) 데이터 부트캠프(본캠프)

본캠프_9주차(월)_TIL(심화 프로젝트 기간)

Wat_zy 2025. 11. 10. 09:02

✅ 오늘 한 것

심화 프로젝트, 시계열 데이터 처리하기


✏️ 오늘 배운 점

# 정규성 검정
from scipy.stats import shapiro
stat, p = shapiro(data)
if p > 0.05:
    print("정규분포 가정 만족 (모수검정 가능)")
else:
    print("정규분포 아님 (비모수검정 고려)")
    
# 등분산성 검정
from scipy.stats import levene
stat, p = levene(group1, group2)
if p > 0.05:
    print("등분산성 가정 만족")
else:
    print("등분산성 불만족 (Welch t-test, Kruskal-Wallis 고려)")

1️⃣ 날짜 요소 분리 (Date Features)

  • 날짜 데이터를 년, 월, 일, 요일 등으로 분리하여 모델이 주기적 패턴을 인식할 수 있게 함.
  •  
    df['date'] = pd.to_datetime(df['date']) df['year'] = df['date'].dt.year df['month'] = df['date'].dt.month df['day'] = df['date'].dt.day
  • ✅ 활용 효과
    • 월별·분기별·계절별 패턴 반영
    • 주말/평일 차이 반영
    • 주기성(Seasonality) 분석 가능

🔹 2️⃣ Lag Feature (시차 특성)

  • 과거 데이터를 새로운 입력 변수로 추가하는 방법.
  •  
    df['lag_1'] = df['value'].shift(1) # 1시점 전 값 df['lag_2'] = df['value'].shift(2) # 2시점 전 값
  • ✅ 활용 효과
    • “이전 상태가 현재에 영향을 준다”는 시계열의 자기상관 특성 반영
    • 공정 데이터나 센서 데이터의 시간적 연속성 학습에 유용

🔹 3️⃣ Rolling Statistics (이동 통계량)

  • 일정 구간(window) 단위로 평균·표준편차 등 통계치를 계산.
  •  
    df['rolling_mean'] = df['value'].rolling(window=3).mean() df['rolling_std'] = df['value'].rolling(window=3).std()
  • ✅ 활용 효과
    • 공정의 정상 상태 기준선(baseline) 파악
    • 이동 평균·표준편차로 이상 탐지 가능
    • 추세(smoothing)와 단기 변동성 확인

🔹 4️⃣ diff Feature (변화량 특성)

  • 이전 시점과 현재 시점의 차이를 계산하여 변화의 방향·속도 반영.
  •  
    df['diff'] = df['value'].diff()
  • ✅ 활용 효과
    • 변화 폭 자체가 중요한 데이터(전류, 온도 등)에 유용
    • 모델이 단순 상태 값뿐 아니라 “증가/감소 추세”를 학습할 수 있게 함

요약

기법핵심 개념주요 목적
날짜 분리 날짜 → 연, 월, 일, 요일 분리 주기성 및 계절성 반영
Lag Feature 과거 시점 데이터 추가 시간 의존성 반영
Rolling Statistics 이동 평균·표준편차 계산 추세 및 이상 탐지
diff Feature 시점 간 변화량 계산 변화 방향·속도 반영

📌추가로 해야할 점

심화 프로젝트