카테고리 없음

[내일배움캠프] QAQC_6기 라이브 세션! 통계는 왜....

blog63677 2026. 6. 22. 20:17

오늘은 품질관리에서 자주 쓰이는 통계 개념들을 한 번에 정리하는 시간을 가졌다.
사실 “통계”라고 하면 평균, 분산, 정규분포 정도만 막연하게 떠올랐는데, 오늘은 그걸 품질관리 상황에 어떻게 연결해서 해석해야 하는지를 조금 더 구체적으로 배운 느낌이었다.

특히 좋았던 건 단순히 개념만 외우는 게 아니라,

 

  • 어떤 상황에서 어떤 분포를 써야 하는지
  • 공정이 규격 안에 안정적으로 들어오는지 어떻게 판단하는지
  • 이상치가 나왔을 때 그냥 지나가면 안 되는 이유가 뭔지
  • 두 공정/두 집단/여러 집단을 비교할 때 어떤 검정을 써야 하는지

이걸 전부 품질관리 시나리오에 대입해서 생각해볼 수 있었다는 점이다.
그리고 마지막에는 실제 인장강도 데이터를 가지고 시각화, 정규성 확인, 검정까지 이어지는 실습도 해봤는데, 이 부분이 오늘 배운 내용들을 연결해주는 역할을 했다.

 

 

1. 오늘 배운 핵심 개념 정리

1) 포아송분포: “드물게 발생하는 사건의 횟수”를 다루는 분포

오늘 문제 중 반도체 클린룸에서 시간당 먼지 입자 발견 수를 어떤 분포로 모델링할지 묻는 문제가 있었는데, 정답은 포아송분포(Poisson Distribution)였다.

처음엔 “먼지 개수”라고 하니까 그냥 개수를 세는 거니까 다 비슷해 보였는데, 포아송분포는 아무 개수 데이터에 다 쓰는 게 아니라 조건이 있었다.

  • 정해진 단위 시간 / 단위 공간 안에서
  • 어떤 사건이 드물게 발생하고
  • 발생 횟수를 다룰 때

이럴 때 포아송분포를 쓴다.

품질관리 쪽으로 연결하면 생각보다 예시가 많다.

  • 일정 시간 동안 발생한 불량 개수
  • 웨이퍼 표면에서 발견된 결함 수
  • 클린룸 내 오염 입자 수
  • 특정 길이의 필름에서 발견된 스크래치 개수

즉, **“얼마나 자주 생기지 않아야 하는 문제가 실제로 몇 번 발생했는가”**를 보는 데 적합한 분포라고 이해하면 될 것 같다.

 

2) Cp와 Cpk: 공정이 규격을 얼마나 잘 만족하는지 보는 지표

오늘은 공정능력지수 문제도 풀었다.
스마트폰 카메라 렌즈 코팅 두께 예시였는데, 여기서 핵심은 Cp와 Cpk를 구분해서 보는 것이었다.

처음에는 둘 다 규격 안에 잘 들어오는지 보는 지표라는 점에서 비슷하게 느껴졌는데, 실제로는 보는 관점이 조금 다르다.

Cp

  • 공정의 산포(흩어짐)만 본다.
  • 즉, 공정 평균이 어디에 있든 일단 퍼지는 정도만 보고 “잠재적으로 규격을 맞출 수 있는 공정인가?”를 본다.

Cpk

  • 공정의 산포 + 평균의 치우침까지 같이 본다.
  • 실제로 공정 평균이 규격 중심에서 벗어나 있으면, 한쪽 규격에 가까워져서 불량 위험이 커진다.
  • 그래서 실무적으로는 Cpk가 더 현실적인 지표에 가깝다.

오늘 예시에서는 공정 평균이 규격 중심이 아니라 상한(USL) 쪽으로 치우쳐 있었기 때문에,
Cp는 좋아 보여도 Cpk는 낮아질 수 있다는 점이 중요했다.

이 부분이 꽤 인상적이었다.
처음엔 “표준편차도 작고 산포도 안정적인데 왜 문제가 되지?” 싶었는데, 평균이 중심에서 밀려 있으면 결국 한쪽 규격에 너무 가까워질 수 있다는 걸 알게 됐다.
즉, 공정이 단순히 “안정적이냐”만 볼 게 아니라, **“어디를 중심으로 안정적이냐”**도 같이 봐야 한다는 뜻이다.

 

3) Z-score와 이상치 판단: 숫자 하나가 이상하다고 느껴질 때, 근거를 만드는 방법

배터리 셀 전압 문제에서는 평균 3.7V, 표준편차 0.05V인 공정에서 3.9V가 측정됐을 때 어떻게 해석해야 하는지를 다뤘다.

여기서 사용한 개념이 Z-score였다.

Z-score는 아주 간단하게 말하면,

“이 값이 평균에서 표준편차 몇 칸 떨어져 있는가?”

 

를 숫자로 바꿔주는 도구다.

 

계산해보면,

Z=3.9−3.70.05=4Z = \frac{3.9 - 3.7}{0.05} = 4

즉, 평균에서 4σ 떨어진 값이라는 뜻이다.
정규분포를 따른다고 가정하면 3σ를 넘어가는 값은 매우 드물기 때문에, 이건 그냥 “조금 큰 값” 정도가 아니라 통계적으로 매우 이례적인 값, 즉 이상치(Outlier) 후보로 봐야 한다.

품질관리 관점에서 이게 중요한 이유는, 이상치를 발견했을 때 할 일이 분명해지기 때문이다.

  • 측정 장비 이상은 없는지
  • 특정 시점의 공정 조건이 흔들리진 않았는지
  • 해당 셀 생산 이력에 특이사항은 없는지

즉, “값이 튀었네”에서 끝나는 게 아니라, 공정 이상인지 측정 오류인지 추적해야 하는 신호로 받아들여야 한다는 걸 배웠다.

 

4) 어떤 검정을 써야 할까? — 비교 대상 수와 데이터 특성이 중요했다

오늘 문제들에서 가장 많이 헷갈렸던 부분 중 하나가 검정 방법 선택이었다.
이름은 많이 봤는데, 막상 문제에서 “이 상황엔 뭘 써야 하지?” 하면 순간 멈칫하게 됐다.

오늘 정리한 기준은 아래처럼 잡아두면 될 것 같다.

(1) 두 집단 평균 비교 → 독립표본 t-검정

예: 공급업체 A와 B 원자재로 만든 완제품의 평균 인장강도 차이 비교

  • 집단 수: 2개
  • 서로 다른 집단
  • 비교 대상: 평균

이럴 때는 독립표본 t-검정을 고려한다.

 

(2) 세 집단 이상 평균 비교 → ANOVA

예: 생산라인 1, 2, 3의 평균 두께 비교

  • 집단 수: 3개 이상
  • 비교 대상: 평균

이럴 때는 기본적으로 일원분산분석(ANOVA)를 쓴다.

 

(3) 그런데 정규성 가정이 깨지면? → 비모수 검정

오늘 문제에서는 3개 생산라인 중 3번 라인의 데이터가 정규분포를 따르지 않았다.
이 경우 ANOVA의 기본 가정이 깨지기 때문에, 대안으로 크루스칼-월리스 검정(Kruskal-Wallis test)을 사용한다.

이 부분에서 느낀 건, 검정법 이름만 외우는 건 별 의미가 없고
결국은 아래 순서로 생각해야 한다는 점이다.

  1. 몇 개 집단을 비교하는가?
  2. 비교하려는 게 평균인가, 비율인가, 범주형 관계인가?
  3. 정규성 같은 가정을 만족하는가?
  4. 가정이 깨지면 비모수 검정으로 갈 것인가?

이 흐름으로 정리하니까 그나마 머릿속이 조금 덜 복잡해졌다.

 

5) 1종 오류(Type I Error): “효과 없는데 있다고 믿는 실수”의 무서움

신규 공정이 불순물을 줄이는지 검정하는 문제에서는 1종 오류가 나왔다.

처음엔 1종 오류, 2종 오류가 늘 헷갈렸다.
이름도 비슷하고, 둘 다 “틀리는 경우”라서 더 그랬다.
그래서 오늘은 아예 품질관리 의사결정 관점으로 외우는 쪽이 훨씬 이해가 잘 됐다.

1종 오류(Type I Error)

  • 실제로는 효과가 없는데
  • 검정 결과 효과가 있다고 잘못 판단하는 것

오늘 문제에 대입하면,

  • 사실 신규 공정은 불순물을 줄이지 못하는데
  • “효과 있다”고 결론 내리고
  • 회사가 막대한 설비 투자나 공정 전환 비용을 써버리는 상황이다.

이렇게 생각하니까 1종 오류는 그냥 통계 개념이 아니라,
잘못된 투자 의사결정으로 이어질 수 있는 리스크라는 점이 더 크게 다가왔다.

통계 검정이 단순히 숫자 계산이 아니라,
결국은 **“이 결과를 믿고 회사가 어떤 결정을 내릴 것인가”**와 연결된다는 걸 다시 느꼈다.

 

2. 실습: 인장강도 데이터로 정규성 확인과 가설검정 준비하기

오늘 실습에서는 철강 회사의 QA팀 데이터 분석가라는 시나리오로,
새로운 자동차용 초고장력강판의 평균 인장강도 목표가 1550 MPa와 통계적으로 동일한지 검증하는 흐름을 따라갔다.

주어진 데이터는 시범 생산된 강판 50개의 인장강도 값이었고, 여기서 한 작업은 크게 두 가지였다.

  1. 데이터 분포를 시각적으로 확인하기
  2. 정규성을 만족하는지 검정하기

1) 히스토그램 + KDE Plot으로 분포 확인

먼저 히스토그램과 KDE plot을 그려서 데이터가 어느 구간에 몰려 있는지 확인했다.

sns.histplot(data=df, x='Tensile_Strength', kde=True)

plt.title("인장강도 데이터 분포")
plt.xlabel('인장강도 (MPa)')
plt.ylabel('빈도')
plt.show()

 

이 단계는 단순히 그래프 예쁘게 그리는 작업이 아니라,
데이터가 대체로 어느 중심값 근처에 모여 있는지,
한쪽으로 심하게 치우치지는 않는지,
튀는 값이 있는지를 먼저 감으로 확인하는 과정이라고 이해했다.

품질 데이터는 숫자만 보면 감이 잘 안 오는데, 그래프로 보면 확실히 분포가 한눈에 들어온다.
특히 뒤에서 정규성 검정이나 평균 비교를 하려면, 이런 기본 시각화가 먼저 필요하다는 걸 느꼈다.

 

2) Q-Q Plot + 샤피로-윌크 검정으로 정규성 확인

그다음은 이 데이터가 정규분포를 따르는지 확인하는 단계였다.

from scipy import stats

# Q-Q Plot
stats.probplot(df['Tensile_Strength'], dist="norm", plot=plt)
plt.title('인장강도에 대한 Q-Q Plot')
plt.grid(True)
plt.show()

# Shapiro-Wilk Test
shapiro_stat, shapiro_p_value = stats.shapiro(df['Tensile_Strength'])
print(f"Shapiro-Wilk Test Statistic: {shapiro_stat:.4f}")
print(f"P-value: {shapiro_p_value:.4f}")

 

여기서 배운 핵심은 정규성은 그래프와 검정을 같이 보는 게 좋다는 점이다.

 

Q-Q Plot

Q-Q Plot은 데이터가 정규분포를 따른다면 점들이 대체로 직선 위에 놓이는 형태를 보인다.
즉, “우리 데이터의 분위수와 정규분포의 분위수가 얼마나 비슷한가”를 시각적으로 비교하는 그래프다.

Shapiro-Wilk 검정

샤피로-윌크 검정은 정규성을 통계적으로 확인하는 방법이다.

  • 귀무가설(H₀): 데이터는 정규분포를 따른다
  • p-value > 0.05 → 귀무가설 기각 못함 → 정규성을 크게 의심할 근거 없음
  • p-value < 0.05 → 귀무가설 기각 → 정규분포를 따른다고 보기 어려움

즉, 이 실습에서는 단순히 “정규분포 같아 보인다”가 아니라,
시각적 확인 + 통계적 검정을 같이 써서 이후 분석의 전제를 점검하는 흐름을 연습한 셈이다.

 

 

오늘 가장 헷갈렸던 부분은...

1) Cp와 Cpk 차이

둘 다 공정능력지수라서 처음엔 거의 같은 개념처럼 느껴졌다.
근데 오늘 문제를 풀면서 Cp는 산포만, Cpk는 산포 + 평균 치우침까지 반영한다는 차이를 조금은 잡은 것 같다.

특히 공정 평균이 중심에서 벗어나 있으면,
겉보기엔 분산이 작아도 실제 불량 위험은 커질 수 있다는 점이 중요했다.

 

2) 검정 방법 선택 기준

독립표본 t-검정, ANOVA, 크루스칼-월리스 검정이 한 번에 나오니까 머릿속이 좀 섞였다.
특히 “평균 비교”라는 공통점이 있으니까 더 헷갈렸다.

그래서 오늘은 아래처럼 기준을 따로 정리해봤다.

  • 두 집단 평균 비교 → 독립표본 t-검정
  • 세 집단 이상 평균 비교 → ANOVA
  • 세 집단 이상인데 정규성 가정이 깨짐 → 크루스칼-월리스 검정

이렇게 “집단 수 + 정규성 만족 여부” 기준으로 정리하니까 훨씬 낫다.

 

3) 정규성 검정 해석

샤피로-윌크 검정에서 늘 헷갈리는 부분이 있었다.
p-value가 크면 좋은 건지, 작으면 좋은 건지 매번 잠깐 멈칫했다.

그래서 오늘은 아예 문장으로 외우려고 했다.

샤피로-윌크의 귀무가설은 ‘데이터가 정규분포를 따른다’이다.
그래서 p-value가 크면, 정규성을 깨뜨릴 만한 근거가 부족하다고 해석한다.

 

이렇게 귀무가설 문장 자체를 먼저 붙들고 보니까 해석이 훨씬 수월했다.

 

 

오늘은 솔직히 개념 하나하나가 어려운 것보다, 비슷한 개념들을 구분해서 써야 하는 부분이 더 어렵게 느껴졌다.

예를 들어,

  • 포아송분포 vs 정규분포
  • Cp vs Cpk
  • t-검정 vs ANOVA vs 크루스칼-월리스
  • 이상치 판단 vs 정규성 판단

이런 것들이 전부 “데이터를 분석하는 도구”라는 공통점이 있으니까 한꺼번에 보면 섞이기 쉬웠다.

그래서 그냥 정의를 외우기보다는,
**“이 도구는 어떤 질문에 답하려고 쓰는가?”**로 바꿔서 정리해봤다.

예를 들면:

  • 포아송분포 → 드물게 발생하는 사건의 횟수를 보고 싶을 때
  • Cp/Cpk → 공정이 규격을 얼마나 안정적으로 만족하는지 보고 싶을 때
  • Z-score → 특정 값이 평균에서 얼마나 벗어났는지 보고 싶을 때
  • t-검정 / ANOVA → 집단 간 평균 차이가 우연인지 아닌지 보고 싶을 때
  • 샤피로-윌크 검정 → 정규성 가정을 만족하는지 확인하고 싶을 때

이렇게 질문 중심으로 정리하니까, 적어도 “이 상황에서 뭘 꺼내야 하는지”는 조금 더 선명해졌다.

 

 

 

오늘 공부하면서 가장 크게 느낀 건,
품질관리에서 통계는 그냥 보고서에 숫자 예쁘게 넣기 위한 도구가 아니라는 점이다.

같은 데이터라도

  • 이게 정상 범위 안의 흔들림인지
  • 공정 평균이 한쪽으로 밀린 건지
  • 정말 이상치라서 바로 원인 분석이 필요한 건지
  • 공정 변경 효과가 실제로 있는 건지
  • 비용을 들여 공정을 바꿔도 되는지

이런 판단을 해야 하니까, 통계가 거의 의사결정의 근거 역할을 한다는 느낌이 들었다.

특히 오늘 1종 오류 문제를 보면서,
“통계적으로 유의하다/유의하지 않다”가 단순한 문장이 아니라
실제로는 투자 여부, 공정 전환 여부, 품질 리스크 관리까지 연결되는 문제라는 걸 다시 느꼈다.

아직은 검정 이름이랑 조건들이 완전히 자연스럽게 떠오르진 않지만,
문제를 품질관리 시나리오에 연결해서 보니까 왜 배우는지는 확실히 보였다.
앞으로는 단순히 공식만 보는 게 아니라,
이 분석 결과가 현업에서 어떤 판단으로 이어질지까지 같이 생각하면서 공부해야겠다는 생각이 들었다.

 

 

내일 복습할 때는 아래 4가지를 다시 보면 좋을 것 같다.

  1. Cp / Cpk 계산식과 해석 차이
    • Cp는 산포만, Cpk는 중심 치우침까지 반영
  2. 검정 방법 선택 기준 표로 정리하기
    • 두 집단 / 세 집단 이상
    • 정규성 만족 / 불만족
    • 평균 비교 / 범주형 비교
  3. 정규성 검정 해석 익숙해지기
    • 샤피로-윌크 검정의 귀무가설이 무엇인지 먼저 떠올리기
  4. 실습 이어서 실제 가설검정까지 해보기
    • 오늘은 정규성 확인까지 했으니, 다음엔 평균 1550 MPa와 통계적으로 같은지 실제 검정까지 연결해보면 좋을 것 같다.