1P by GN⁺ 7일전 | ★ favorite | 댓글 1개
  • 통계적 공정 관리(SPC) 를 파이썬으로 구현해 제품 품질의 시간적 변동과 개입 시점을 파악하는 방법 소개
  • pandas, plotnine, scipy를 활용해 데이터 처리·시각화·통계 계산 수행
  • 일본 가고시마현 온천 데이터를 예시로, 온도·pH·황 함량을 품질 관리 지표로 분석
  • 서브그룹 통계, 관리도(X-bar, S, 이동범위 차트) 를 통해 공정 안정성과 이상치 탐지
  • 데이터 기반으로 공정 상태를 시각적으로 진단하고 개선 결정을 지원하는 절차 제시

파이썬을 이용한 통계적 공정 관리 개요

  • 통계적 공정 관리(SPC)는 제품 품질의 변동을 측정하고 개입 시점을 판단하기 위한 통계적 접근
    • 파이썬에서 plotnine을 이용해 시각화, pandas로 데이터 조작, scipy로 통계 계산 수행
  • 실습에서는 온천수 품질 관리 사례를 통해 SPC 개념을 적용
    • 온천의 온도, pH, 황 함량을 주요 품질 지표로 설정

패키지 및 사용자 정의 함수

  • 필요한 패키지: pandas, plotnine, scipy
  • 사용자 정의 함수는 GitHub 저장소의 functions/ 디렉터리에서 가져옴
    • functions_distributions.py: 신뢰도 및 분포 함수
    • functions_process_control.py: 공정 관리용 함수
  • sys.path.append('functions')로 함수 디렉터리를 파이썬 경로에 추가 후 import

사례: 일본 온천 품질 관리

  • 일본 온천(onsen)은 지역 경제의 핵심 관광 자원으로, 온도·pH·황 함량이 품질 기준
    • 온도 기준: Extra Hot(>42°C), Hot(41~34°C), Warm(33~25°C)
    • pH 기준: Acidic(pH<3) ~ Alkaline(pH>8.5)
    • 황 기준: 1mg/kg 이상일 때 황온천으로 분류
  • 가고시마현 온천 데이터를 15개월간 매월 20회 샘플링하여 품질 변동 분석

데이터 불러오기 및 기초 통계

  • onsen.csv 파일을 불러와 온도, pH, 황 함량 데이터 확인
  • describe() 함수로 평균(mean)과 표준편차(sd) 계산
    • 예시 결과: 평균 44.85°C, 표준편차 1.99°C
  • 이 통계값은 공정의 중심과 변동성을 파악하는 기본 지표

공정 개요 시각화

  • plotnine으로 시간별 온도 분포를 상자그림(boxplot)과 점 분포로 시각화
    • 중심선은 전체 평균, 각 시점별 분포를 비교 가능
  • 히스토그램으로 전체 온도 분포를 표시해 공정 중심과 변동 폭 확인

서브그룹 통계 계산

  • 각 시점(time)을 서브그룹으로 묶어 평균(xbar), 범위(r), 표준편차(sd) 계산
    • 예시: 첫 번째 그룹 평균 44.635°C, 범위 4.2°C
  • σₛ (서브그룹 내 표준편차)표준오차(se) 를 계산해 상·하한선(±3σ) 설정
  • 이를 통해 공정의 시간적 안정성을 평가

전체 공정 통계

  • 전체 그룹을 통합해 총평균(xbbar), 평균범위(rbar), 평균표준편차(sdbar) 계산
    • 예시: xbbar 44.85, rbar 7.26, sdbar 1.94
  • σₜ (전체 표준편차) 와 비교해 공정 내·간 변동성 파악

관리도(X-bar 및 S 차트)

  • X-bar 차트: 각 서브그룹 평균을 시간축에 표시
    • 중심선: 전체 평균, 상·하한선: ±3σ
    • 음영 영역은 관리 한계 범위
  • 관리 한계선을 벗어나거나 비랜덤 패턴이 나타나면 공정 이상 가능성 존재

학습 점검: pH 공정 시각화

  • 동일한 ggprocess() 함수를 이용해 pH 데이터의 공정 개요 차트 생성
    • 평균선과 각 시점별 분포를 시각적으로 비교

이동범위 차트 (n=1)

  • 개별 측정치만 있을 때는 이동범위(Moving Range) 사용
    • 연속 측정값 간 절대차를 계산해 변동성 추정
  • 평균 이동범위(mrbar), 상한(upper), 하한(lower=0) 계산
  • 이동범위 차트는 개별 데이터 기반 공정 변동 감시에 유용

결론

  • 파이썬을 이용해 공정 개요, 서브그룹 통계, 이동범위 차트를 생성
  • SPC 도구를 통해 공정의 안정성·이상 여부를 시각적으로 진단 가능
  • 이러한 분석은 데이터 기반 품질 개선과 의사결정에 활용 가능
Hacker News 의견
  • 예전 프로젝트가 떠오름
    우리는 FANG 기업에서 수천 개의 복잡한 딥러닝 기반 시계열 이상 탐지기를 통계적(비모수, 반모수) 공정 제어 모델로 성공적으로 교체했음
    새 모델은 학습 파라미터 수가 3~4자릿수나 적고, 3~4명 팀이 수천 개 스트림을 관리할 수 있을 정도의 단순함을 가짐
    딥러닝 모델은 디버깅과 해석이 불투명해서 관리가 너무 힘들었음
    작은 팀이라면 여전히 통계 기반 접근을 강력히 추천함
    다만 정치적 이유로 이런 선택이 커리어상 좋은 선택은 아닐 수도 있음. 거대한 베팅을 한 사람들은 반대 증거가 드러나는 걸 싫어함

    • 정말 멋진 경험 공유에 감사함
      이런 이유로 나는 요즘의 AI 과열 분위기에 회의적임
      많은 경우 기존의 고전적 방법이 훨씬 안정적이고 효율적인데, 기업들이 굳이 복잡하고 불안정한 방법을 택하는 게 이해되지 않음
    • 나의 첫 커리어 전환도 비슷했음
      회사는 학회용으로 멋진 ML 모델을 자랑했지만, 실제 운영자들은 정확도와 해석성 부족으로 불만이 많았음
      그래서 운영자들이 실제로 쓰던 간단한 수학적 규칙을 기반으로 새로 코드를 짜서 훨씬 좋은 결과를 얻었음
    • 반도체 업계의 머신비전 엔지니어로서, 딥러닝과 AI의 과대광고를 많이 봐왔음
      OCR에는 잘 맞지만 분류 작업에는 효과가 떨어짐
      좋은 조명과 전통적 컴퓨터 비전 기법에 집중하면 더 나은 결과를 얻는 경우가 많음
      기술 도입의 정치적 문제도 공감함. 그래서 나는 딥러닝과 전통적 비전을 결합한 하이브리드 접근을 주로 제안함
    • 딥러닝이 헷갈리는 이유는, 학습할 만한 신호량이 부족한데 파라미터 수가 너무 많음
      대부분의 파라미터가 불안정하거나 서로 상관되어 있을 것 같음
    • 혹시 Matrix Profile 같은 것도 썼는지 궁금함. 만약 그랬다면 그것도 교체했는지 알고 싶음
  • 나는 예전에 Lean Six Sigma Green Belt 자격증을 따고, Minitab으로 투자은행 백오피스 프로세스의 통계적 공정 제어 프로젝트를 했었음
    요즘은 아무도 Minitab을 기억 못 하는 것 같음. 다들 Python만 쓰니까

    • 나도 2018년쯤 Minitab으로 Six Sigma Green Belt를 땄음
      지금도 업데이트되고 있고, Python 인터페이스도 있음 → mtbpy 패키지
    • 예전 Minitab은 SPC 툴박스가 정말 훌륭했음
      오픈소스 도구들은 x-bar/S/R까지만 지원하고, 다변량 분석 같은 고급 기능은 부족했음
    • 나는 JMP를 쓰는 회사에서 일한 적이 있음. 아직도 그때의 따뜻한 추억이 남아 있음
    • 우리 대학 도서관에 Minitab 매뉴얼이 있었던 기억뿐임
  • SPC 초보자를 위해 몇 년 전에 실무 가이드를 썼음
    참고가 될 수 있음 → Statistical Process Control: A Practitioner’s Guide

  • 임상 데이터처럼 작은 데이터셋에서는 여전히 고전 통계학이 핵심임
    메타데이터 수집과 정합이 어렵고, 희귀 질환 연구에서는 머신러닝이나 회귀조차 힘든 경우가 많음

  • 현실 세계의 데이터는 절대 깨끗하지 않음
    대부분의 시간은 데이터 품질 관리에 쓰임
    이상치는 측정 오류나 공정 변화 때문일 수 있고, 이를 이해하려면 공정 자체에 대한 직관이 필요함
    그래서 빠른 시각화와 탐색이 가능한 성숙한 도구가 중요함
    직접 코드로 SPC Cpk 차트를 만드는 건 비효율적임

  • SPC는 정말 훌륭한 도구임
    복잡한 다른 툴셋보다 훨씬 단순하고 잘 작동함

  • 오타가 많음

  • 페이지의 디자인과 분위기가 정말 마음에 듦