Today I Learned

[내일배움캠프 QA/QC 6기] TIL #040

JiJi0406 2026. 7. 7. 21:11

[ 심화 프로젝트 : Day3 ]

 

오늘은 내가 맡은 파트의 EDA를 진행하고 팀원들과 분석 결과를 공유하며 프로젝트 방향성을 정리했다.

 

1. 결측치 발생 패턴 분석

내가 맡은 ts_pre_comp_cv, ts_waste_rate, api_l_impurity 세 변수의 결측 원인을 집중적으로 분석했다.

먼저 결측치 히트맵과 상관관계를 확인한 결과, 세 변수의 결측은 서로 거의 관련이 없는 것으로 나타났다.

이후 제품(code)별 결측 분포와 결측 비율을 확인한 결과,

  • ts_pre_comp_cv, ts_waste_rate는 여러 제품에서 발생하지만,
  • api_l_impurity는 Code 13, 15, 17, 21 등 일부 제품에 집중적으로 결측이 발생하는 특징을 확인했다.

이를 바탕으로 다음과 같은 가설을 세웠다.

  • 가설 1 : 일부 batch에서는 pre_comp가 공정 내내 0으로 유지되어 평균이 0이 되었고, CV 계산이 불가능하여 결측이 발생했을 것이다.
  • 가설 2 : 일부 batch에서는 생산량(produced)과 폐기량(waste)이 모두 0으로 기록되어 폐기율 계산이 불가능했을 것이다.
  • 가설 3 : api_l_impurity는 계산식 문제가 아니라 특정 제품에서만 선택적으로 측정되거나 기록되지 않아 결측이 발생했을 것이다.

가설 검증 결과,

  • ts_pre_comp_cv 결측 batch의 pre_comp_mean은 모두 0
  • ts_waste_rate 결측 batch의 produced와 waste도 모두 0

으로 확인되어 두 변수는 계산식에 의해 발생한 결측임을 확인하였다.

 

반면 api_l_impurity는 특정 제품에서만 결측이 집중되었으며, 공정 변수 일부(ts_main_comp_mean, ts_tbl_fill_mean, ts_SREL_mean)에서는 정상 batch와 통계적으로 유의한 차이가 있었지만 모든 공정 변수에서 동일한 패턴이 나타나지는 않았다.

따라서 api_l_impurity는 하나의 원인으로 설명되는 결측이 아니라 제품 특성, 시험 수행 여부, 일부 공정 조건 등이 함께 영향을 준 MAR(Missing At Random)에 가까운 결측으로 판단하였다.

 

 

2. 팀원들과 EDA 결과 공유

각자 진행한 EDA를 공유하면서 프로젝트 방향에 대해 논의했다.

현재까지 진행한 분석은 다음과 같다.

  • Target(dissolution_av) 분포 분석
  • 제품(code)별 용출률 차이 분석(ANOVA, Tukey HSD)
  • 결측치 발생 패턴 분석
  • 원자재 품질 변수 및 시계열 변수와 용출률의 상관관계 분석

하지만 Code를 제외하면 대부분의 변수는 용출률과 강한 상관관계를 보이지 않았다.

 

제약 제조 품질은

  • 제품 특성(Code)
  • 원자재 품질
  • 제조 공정
  • 공정 안정성(시계열)

등이 함께 작용하는 결과이기 때문에 단일 변수 하나로는 용출률을 충분히 설명하기 어렵다.

 

 

 

3. 프로젝트 방향 정리

EDA 결과를 바탕으로 프로젝트의 방향성을 다음과 같이 정리하였다.

 

단순 중요한 변수를 찾는 프로젝트가 아니라,

"원자재만 사용할 때보다 공정 정보를 추가하면 얼마나 성능이 향상되는가?"

"시계열 공정 안정성 정보까지 추가하면 예측력이 얼마나 좋아지는가?"를 검증하는 프로젝트로 진행하기로 했다.

 

즉,

  • 원자재 데이터만 사용한 모델
  • 원자재 + 공정 데이터 모델
  • 원자재 + 공정 + 시계열 파생변수 모델

을 비교하여 어떤 정보가 실제 예측 성능 향상에 기여하는지를 확인해볼 필요가 있을 것 같다.

 


 

느낀 점...?

오늘 가장 크게 느낀 점은 EDA는 반드시 강한 상관관계를 찾는 과정만은 아니라는 것이다.

처음에는 Code를 제외하면 의미 있는 변수가 거의 없어 분석을 잘못한 줄 알았다. 하지만 오히려 단일 변수만으로는 설명되지 않는다는 사실 자체가 중요한 결과였고, 이것이 머신러닝 모델을 사용하는 이유가 될 수 있지 않을까.....

 

EDA에서 얻은 결과를 바탕으로 모델링 전략을 세우는 과정이 생각보다 훨씬 중요하다는 것을 느꼈고, 내일부터는 여러 데이터를 조합했을 때 실제 예측 성능이 얼마나 달라지는지 확인해보자...