저희 배합 개발 프로젝트팀은 소규모 실험계획법(DOE)을 수립했습니다. 이 프로젝트는 새로운 실험용 페인트 배합에서 안료 안정성을 최적화하기 위해 다양한 측정 반응을 분석하는 것을 요구했습니다. 그러나 팀은 분석 결과에서 명확한 지침을 얻는 데 어려움을 겪었습니다. JMP의 데이터 재구성 도구를 활용하여 기존 데이터를 SLS 및 로지스틱 모델링을 통해 쉽게 분석할 수 있는 형식으로 재구성함으로써 안정성에 미치는 주요 영향 요인과 특정 요인 조합이 만족스러운 결과를 가져올 확률을 도출할 수 있었습니다.
안녕하세요, 저는 존 스틸입니다. 저는 악조노벨의 장식용 페인트 사업부 연구 개발 부서에서 근무하고 있습니다. 오늘 저는 저희 팀 중 한 곳에서 발생한 안료 안정성 최적화 문제에 대한 실험 설계(DoE) 데이터 재구성 과정에서 JMP를 어떻게 활용하는지 설명드리겠습니다.
이 문제는 처음에 페인트 시스템에 사용되는 세 가지 서로 다른 안정화 물질의 영향을 조사하기 위해 실험 설계(DoE)를 통해 시작되었습니다. 이 안정화 물질들은 안료의 응집을 방지하여 최종 제품에서 문제를 일으키는 것을 막습니다. 초기 DoE는 17번의 실험을 통해 이러한 안정화 물질의 다양한 상호작용과 함량을 살펴보았습니다. 안료 안정성 테스트의 일환으로, 각 DoE 실험마다 다섯 가지 서로 다른 안료를 테스트했습니다. 이 안료들은 전단 안정성과 혼합 안정성을 모두 테스트해야 했으며, 세 가지 시점에서 테스트를 진행했습니다.
실험설계는 일반적인 실험계획법(DoE)에서 기대할 수 있는 방식대로 정확하게 진행되었습니다. 모든 규칙과 고려 사항을 준수했습니다. 하지만 데이터를 분석하는 과정에서 몇 가지 문제가 발생하기 시작했습니다.
본 실험설계(DoE)에서는 전단 또는 혼합 시험, 안료 재료, 시험 시점의 각기 다른 조합을 각각 별개의 반응으로 입력하고 개별적으로 분석하였다. 전체적으로, 이러한 17개의 개별 실험설계 실행에 대해 총 25개의 개별 반응이 있었다.
위쪽 그래프에서 볼 수 있듯이, 일부 결과는 상당히 잘 모델링되었습니다. 선형성이 비교적 직선에 가깝고 R² 값도 상당히 좋습니다. 그러나 아래쪽 두 그래프에서 볼 수 있듯이, 다른 결과는 모델링이 잘 되지 않았습니다. 노이즈가 상당히 많고 R² 값이 매우 낮습니다.
아쉽게도 어떤 응답이 분석에 적합하고 어떤 응답이 적합하지 않은지에 대한 명확한 패턴은 발견되지 않았습니다. 이는 일부 응답의 데이터 범위가 매우 좁고, 값의 범위가 매우 작아서 차이가 크지 않았기 때문입니다.
초기 데이터 구조를 살펴보면, 세 가지 안정제의 농도별로 각 모델 실행 결과가 있습니다. 앞서 말씀드린 것처럼, 이 모델들은 다섯 가지 색소에 대해 테스트되었고, 각 색소는 한 시점, 두 번째 시점, 세 번째 시점에서 테스트되었습니다. 이러한 과정은 색소와 시점의 모든 조합과 각기 다른 테스트 유형에 대해 반복되었습니다.
비록 이러한 요소들이 개별적인 응답으로 입력되었지만, 분석 대상 데이터 자체 내의 하나의 요인으로 간주될 수도 있습니다. 이 테스트는 품질 관리 테스트의 일환으로 수행되었습니다. 전통적인 실험 설계 방식에서는 특정 시점과 특정 색상을 사용하여 테스트를 진행해야 하므로, 이러한 요소들을 일반적인 요인으로 취급하기는 어렵습니다. 물론 실험 설계의 특성상 모든 가능한 조합을 다 포함할 수는 없습니다.
분석 목적상, 이러한 요소들을 잠재적 숨은 요인으로 간주하고 데이터를 재구성하여 더 나은 분석 결과를 얻을 수 있습니다. 그렇다면 이제 어떻게 데이터를 재구성해야 할까요?
JMP로 이동하면 여기에는 설계 자체에서 나온 초기 데이터가 있습니다. ID 실행 결과, 다양한 안정화제 수준 형태의 요인, 그리고 각각의 개별 반응들이 있습니다. 여기에는 설명 목적으로 더미 데이터가 채워져 있습니다. 우리가 하려는 것은 이러한 각각의 반응을 본질적으로 하나의 반응으로 변환하는 것입니다.
JMP의 유용한 테이블 및 데이터 조작 도구를 사용하면 이 작업을 수행할 수 있습니다. 첫 번째 단계는 스택 기능을 사용하는 것입니다. 그런 다음 하나의 열로 결합하려는 개별 응답의 모든 열을 선택할 수 있습니다. "열 스택"을 클릭하면 해당 열들이 모두 여기에 표시됩니다.
아래쪽 섹션으로 이동하면 데이터 테이블의 초기 열 중 유지할 열을 선택할 수 있습니다. 여기서는 ID와 요인을 유지하겠습니다. 원한다면 데이터 및 응답 레이블과 열 헤더도 변경할 수 있습니다. 확인을 클릭하면 개별 실행의 ID, 요인, 그리고 모든 응답이 하나의 열에, 해당 응답 이름이 그 옆의 다른 열에 표시된 새로운 데이터 테이블이 나타납니다.
초기 데이터 테이블에서는 ID1에 대한 모든 결과가 1이 되고, ID2에 대한 모든 결과가 2가 되도록 데이터가 설정되어 있었습니다. 여기에서 ID1에 해당하는 행을 선택하면 모든 데이터가 전송된 것을 확인할 수 있습니다. 이러한 작업은 JMP의 스크립트 빌더를 사용하거나 워크플로 기능을 활용하여 자동화할 수 있습니다. 하지만 이번 경우는 일회성 검사였기 때문에 자동화가 필요하지 않았습니다.
다음 표를 보시면 현재 레이블에 시리얼 번호, 테스트 시간, 테스트 유형이 모두 혼합되어 있는 것을 확인할 수 있습니다. 이 자체만으로는 요인 분석 관점에서 그다지 유용하지 않습니다. 따라서 이 정보를 분리해야 하는데, 내장 도구를 사용하여 이 작업을 수행할 수 있습니다. [열], [유틸리티], [텍스트 열]로 이동하여 해당 열을 선택한 다음 구분 기호를 정의할 수 있습니다. 이 경우 구분 기호는 쉼표이며, 이를 사용하여 텍스트 문자열을 구분합니다.
쉼표를 입력하고 확인을 누르세요. 이제 새 열이 생성되어 '재료 1', '재료 2', '재료 3' 등으로 표시됩니다. 테스트 유형과 해당 테스트 시점 레이블이 이제 분리되었으므로, 이들을 별개의 요인으로 취급하고 초기 열을 완전히 삭제할 수 있습니다.
그 후에는 추가적인 서식 지정을 진행할 수 있습니다. 열 이름을 변경할 수 있고, 시간 지점의 경우 JMP의 내장 함수를 사용하여 텍스트 문자열을 숫자 값으로 변환할 수도 있습니다.
메뉴에서 해당 열을 선택하고 제자리에서 다시 코딩하면 시간 1을 1로, 시간 2를 2로, 시간 3을 3으로 변경할 수 있습니다. 이렇게 하면 모든 값이 변경됩니다. 그런 다음 열 정보에서 해당 변수를 문자열에서 숫자 변수 또는 요인으로 변경할 수 있습니다. 명목형으로 유지하거나 연속형 또는 순서형으로 변경할 수 있습니다. 이 경우에는 순서형으로 변경하겠습니다.
모든 재포맷 작업이 완료되면, 제 경험상 이 특정 유형의 테스트, 즉 실제로 얻어지는 기본적인 수치 값 자체는 그다지 중요하지 않습니다. 더 중요한 것은 테스트 통과 여부입니다. 이러한 개별 결과를 모델링 목적에 맞게 통과 또는 실패 조건으로 변환할 수 있습니다.
여기 데이터 표에는 약간 다른 결과값이 있지만, 마지막에 합격 또는 불합격 여부를 나타내는 별도의 열이 있습니다. 열 정보 섹션으로 이동하면 열 속성 아래에 값 색상 섹션과 수식 섹션이 추가된 것을 볼 수 있습니다.
여기서는 if 문을 사용하여 결과가 특정 값보다 크거나 작은지 확인하고, 해당 임계값에 따라 결과가 실패인지, 통과인지, 또는 데이터가 입력되지 않은 경우 공백인지 여부를 반환합니다. 값의 색상 섹션에서는 해당 값과 관련된 데이터 포인트 또는 셀의 색상을 지정할 수 있습니다. 이 경우 통과는 녹색, 실패는 빨간색입니다.
이 데이터를 모델링하는 과정에 들어가면, 현재 형식 그대로 데이터를 두고 테스트에 대한 변수를 사용하여 전단 테스트와 혼합 테스트를 각각 모델링하는 방법이 있는데, 이 방법이 더 편리할 때도 있습니다. 또는 데이터를 분할하는 방법도 있는데, 이는 기본적으로 스택 프로세스의 역순으로, 전단 테스트 결과를 한 열에, 혼합 테스트 결과를 다른 열에 표시하는 것입니다.
이를 위해 JMP의 테이블 도구에서 분할 기능을 사용합니다. 합격/불합격 결과와 시험 유형별로 분할합니다. 그런 다음 ID와 재질별로 그룹화하면 데이터가 같은 행에 유지됩니다. 원하는 열을 선택할 수 있는데, 여기서는 ID와 요인 열을 유지합니다. 또한 시간 정보도 포함해야 합니다. 이렇게 하면 혼합 시험과 전단 시험에 대한 별도의 열이 있는 데이터 테이블을 얻을 수 있습니다.
이제 이 데이터의 실제 모델링을 시작할 수 있습니다. 결과에 대한 합격/불합격 기준이 생겼습니다. 이 특정 문제에 대해 처음 사용했던 표준 선형 회귀 분석 방식과는 달리, 로지스틱 회귀 분석과 범주화 방법을 사용하여 분석을 시작할 수 있습니다. 제가 이미 준비해 둔 모델 중 하나를 실행해 보면, 초기 R² 값이 훨씬 더 높게 나옵니다. 0.9 정도의 값을 얻을 수 있을 뿐만 아니라, 결과에 영향을 미치는 요인들의 상대적 영향력과 요인들 간의 상호작용도 파악할 수 있습니다.
또 다른 유용한 기능은 아래로 스크롤하면 나오는 '혼동 행렬' 섹션입니다. 이는 범주형 모델의 성능을 보다 정확하게 나타내는 지표라고 할 수 있습니다. 합격 또는 불합격, 즉 1 또는 0으로 예측된 결과가 몇 개인지, 그리고 0 또는 불합격 결과가 불합격으로 예측된 결과가 몇 개인지를 보여줍니다. 이 경우 전체 데이터 세트에서 단 두 개의 결과만 잘못 분류되었습니다.
잠재적인 행동과 상호작용에 대해 더욱 심층적인 통찰력을 얻기 위해 데이터 시뮬레이션을 사용하여 데이터를 시각화할 수 있습니다. 로지스틱 모델의 경우, 시뮬레이션 도구는 일반 선형 회귀 및 수치형 모델에서 종종 볼 수 있는 프로파일러가 아닌, 등고선 프로파일러에서 찾을 수 있습니다.
그다음에는 시뮬레이션할 영역과 시뮬레이션에 사용할 데이터 포인트 수를 지정할 수 있습니다. 이렇게 시뮬레이션을 수행하면, 요인과 지정된 물질 수준, 시점의 무작위 조합 범위와 가장 가능성이 높은 결과뿐만 아니라, 합격 또는 불합격으로 분류될 확률도 얻을 수 있습니다.
보시다시피, 값이 1인 경우 거의 확실히 패스가 될 것이라는 의미인 반면, 패스가 될 확률이 약 60%에 불과한 경우도 있습니다.
여기서 모든 확률값을 가져와서 우리가 살펴보고자 하는 요소, 즉 안정화 물질, 안료, 그리고 시간 경과에 따라 그래프를 그릴 수 있습니다. 여기서는 셀 선택을 해제했습니다. 한 축에는 안정화제 1의 안정화 수준이 표시되고, 다른 축에는 안정화제 2와 안정화제 3의 임계값 범위가 표시됩니다. 이는 상자 셀 축 중 일부입니다. 아래쪽 축에는 각각 다른 안료 물질이 표시됩니다.
이 모든 것들은 통과할 확률과 실패할 확률에 따라 색깔로 구분됩니다. 처음에는 특정 재료가 특정 결과를 가져올지 여부에 대해 매우 불분명한 생각을 가지고 있었습니다. 무슨 일이 일어나고 있는지 모호했죠. 재구성된 데이터를 이렇게 시각화하니, 초록색 영역과 빨간색 영역을 즉시 확인할 수 있고, 잠재적인 실패 가능성이 있는 영역을 훨씬 더 심층적으로 이해할 수 있게 되었습니다.
보시다시피 재료 4와 5는 특히 안정제 2의 농도가 낮을수록 붉은색을 띠는 경향이 있습니다. 이는 잠재적으로 문제가 될 가능성이 더 높다는 것을 의미합니다. 반면 재료 1과 재료 3은 대부분의 경우 거의 녹색을 띠고 있습니다. 이 그래프에서 더 구체적인 결과를 얻고 싶다면, 로컬 데이터 필터를 추가하여 재료 1과 재료 3만 선택적으로 비교해 볼 수 있습니다.
요약하자면, 실험 설계의 결과와 산출물에는 처음에 고려하지 않았던 숨겨진 요인이나 요인과 유사한 속성이 있을 수 있으며, 이러한 요소들을 고려하지 않으면 모델링이 매우 부실한 데이터를 얻게 될 수 있습니다. 하지만 그렇다고 해서 데이터에 가치가 없다는 의미는 아닙니다. 때로는 이미 가지고 있는 데이터를 약간 다른 방식으로 구조화하는 것만으로도 더 큰 가치와 유용성을 얻을 수 있습니다. 다행히 JMP에는 이러한 과정을 매우 쉽게 만들어주는 유용한 도구들이 많이 내장되어 있습니다.
일단 그렇게 하셨다면, 유용한 정보와 결과를 얻기 위해 꼭 가장 기본적인 표준화된 선형 회귀 분석이나 수치 모델링만 사용할 필요는 없습니다. 오늘 제가 다루고 싶었던 내용은 여기까지입니다. 시간 내주셔서 감사합니다.