# 파이썬에서의 통계적 공정 관리

> Clean Markdown view of GeekNews topic #24666. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24666](https://news.hada.io/topic?id=24666)
- GeekNews Markdown: [https://news.hada.io/topic/24666.md](https://news.hada.io/topic/24666.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-11-28T05:32:53+09:00
- Updated: 2025-11-28T05:32:53+09:00
- Original source: [timothyfraser.com](https://timothyfraser.com/sigma/statistical-process-control-in-python.html)
- Points: 1
- Comments: 1

## Topic Body

- **통계적 공정 관리(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 도구를 통해 **공정의 안정성·이상 여부를 시각적으로 진단** 가능  
- 이러한 분석은 **데이터 기반 품질 개선과 의사결정**에 활용 가능

## Comments



### Comment 46891

- Author: neo
- Created: 2025-11-28T05:32:54+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=46055421) 
- 예전 프로젝트가 떠오름  
  우리는 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 패키지](https://pypi.org/project/mtbpy/)  
  - 예전 Minitab은 SPC 툴박스가 정말 훌륭했음  
    오픈소스 도구들은 x-bar/S/R까지만 지원하고, **다변량 분석** 같은 고급 기능은 부족했음  
  - 나는 JMP를 쓰는 회사에서 일한 적이 있음. 아직도 그때의 **따뜻한 추억**이 남아 있음  
  - 우리 대학 도서관에 Minitab 매뉴얼이 있었던 기억뿐임  

- SPC 초보자를 위해 몇 년 전에 실무 가이드를 썼음  
  참고가 될 수 있음 → [Statistical Process Control: A Practitioner’s Guide](https://entropicthoughts.com/statistical-process-control-a-p...)  

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

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

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

- 오타가 많음  

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