제 이름은 데이비드 번햄입니다. 이번 발표에서는 제품의 유통기한을 시간 경과에 따른 변질을 모델링하여 예측하는 방법에 대해 살펴보겠습니다. 제품을 온도와 습도가 조절되는 환경에 보관하는 방법도 있지만, 충분한 데이터를 확보하여 모델을 구축하려면 몇 달 또는 몇 년이 걸릴 수 있습니다. 하지만 본질적으로 불안정한 신제품을 시장에 출시하는 경우에는 어떨까요? 이런 경우에는 가능한 한 빨리 정보를 얻어야 합니다.
가속 안정성 시험의 역할은 단 몇 주 만에 이러한 데이터를 얻는 것입니다. 예를 들어 고온에 보관하는 등 제품에 스트레스를 가함으로써 이를 달성할 수 있습니다. 저는 이러한 가속 안정성 시험에서 얻은 데이터를 모델링하도록 설계된 JSL 애플리케이션의 개발자입니다. 이 작업은 Pega Analytics와 몇몇 제약 회사의 협력으로 진행되었습니다. Pega Analytics는 제가 15년 전에 설립한 회사로, 주로 JMP 교육을 제공하지만 JSL 서비스도 제공합니다. 오늘 이 발표에서는 의약품 정제의 분해 모델링 과정을 살펴보겠습니다.
이러한 변질은 정제가 완전히 안정적이지 않기 때문에 발생합니다. 시간이 지남에 따라 불순물이 생성됩니다. 저는 이러한 변화를 과학적으로 설명하기 위해 동역학 모델을 사용할 수 있습니다. 불순물은 정제 내부와 주변 환경의 열 에너지와 수분에 의해 생성됩니다. 이러한 연구에서 얻은 데이터를 살펴보겠습니다. 보관 온도는 높고 상대 습도도 높습니다. 이러한 가속 작용, 즉 단 2주라는 짧은 기간 동안 제품에 스트레스를 가함으로써 측정 가능한 양의 불순물이 생성되고, 이러한 수치의 변동이 충분히 나타나므로 모델을 구축할 수 있습니다.
모델이 어떻게 생겼는지 보여드리겠습니다. 이 모델은 세 가지 구성 요소로 이루어져 있습니다. 온도와 상대 습도는 보관 조건을 나타냅니다. 그리고 시간 요소는 시간에 따른 불순물의 변화를 보여줍니다. 이 데이터를 사용하여 모델을 구축하면 두 가지 작업을 수행할 수 있습니다. 첫째, 보관 조건을 정상적인 무부하 조건으로 낮춥니다. 둘째, 이 데이터를 기반으로 제품의 미래 변화를 예측합니다. Y축을 조정하여 더 잘 보이도록 하겠습니다. 이 예시에서는 시간 경과에 따른 변화 추이가 매우 평평하고 안정적인 것을 볼 수 있습니다. 또한, 보라색 선, 즉 제품의 1% 규격 기준치 아래에 위치해 있습니다. 이 동적 모델은 모든 것이 양호해 보입니다.
우리가 구축할 수 있는 또 다른 유형의 모델이 있는데, 바로 포장 모델입니다. 포장이 왜 필요한지 설명해 드리겠습니다. 이를 위해 불안정한 제품을 예로 들어보겠습니다. 온도를 다시 50도로 올리겠습니다. 그러면 약 50~60일 후 불순물이 규격 한계를 초과하여 더 이상 사용 가능한 제품이 아니게 됩니다. 물론 이 예시에서는 온도를 50도로 올렸지만, 이것이 일반적인 보관 조건이라고 가정해 보겠습니다. 그렇다면 어떻게 해야 할까요? 바로 포장을 도입하는 것입니다. 포장의 역할은 습도를 낮추는 것입니다.
습도를 낮추면 시간 경과에 따른 변화 그래프가 평평해지는 것을 볼 수 있습니다. 실제로 습도를 낮추면 온도 변화에 대한 민감도도 줄어듭니다. 여기서는 상대 습도 20%를 유지하고 있는데, 이는 제가 포장 작업을 할 때 통제된 환경에서 달성할 수 있는 수치입니다. 정제를 병에 넣고 20% 습도에서 병뚜껑을 닫습니다. 이 과정에는 포장 모델이 필요하지 않습니다. 그냥 정제를 병에 넣으면 되니까요. 하지만 시간이 지나면서 병 안의 습도가 올라갑니다. 정말 흥미로운 점이죠. 병은 단단해 보이지만, 습기가 병 측면을 통해 스며들고, 우리는 이 투과 현상을 모델링할 수 있습니다. 정말 흥미로운 물리적 현상입니다.
제습제를 첨가하면 건조 속도를 늦출 수 있고, 제습제의 효과를 모델링할 수도 있습니다. 모델을 사용하면 투입하는 제습제의 양에 따라 다양한 시나리오를 분석할 수 있습니다. 이것이 바로 우리가 포장 모델에 관심을 갖는 이유입니다. 하지만 포장 모델은 매우 전문적이고, 연구 범위가 넓으며, 물리학과 수학에 대한 흥미를 불러일으키는 분야입니다. 하지만 더 많은 사람들이 이해할 수 있도록, 저는 동역학 모델에 집중하려고 합니다. 포장 모델을 사용하더라도 습도와의 상관관계를 이해하지 못하면 아무 소용이 없습니다. 따라서 저는 동역학 모델에 초점을 맞추겠습니다. 또한 이러한 모델을 구축할 때 발생하는 어려움, 특히 모델 선택 과정에서 발생하는 어려움에 대해서도 이야기하고 싶습니다.
가속 안정성 연구에서 모델 선택 문제는 매우 독특한 과제라고 생각합니다. JSL 애플리케이션이 이 문제를 해결하는 데 도움이 될 것입니다. 하지만 애플리케이션 자체를 살펴보기 전에, JMP 기능을 사용하여 이러한 모델을 구축하는 기본적인 메커니즘을 먼저 이해해 주시길 바랍니다. 이 데이터에 대해 구축할 수 있는 가장 간단한 모델이라고 생각되는 것을 소개해 드리겠습니다. 여기에 모델 공식이 있습니다. 이 공식은 아레니우스 방정식에 기반합니다. 온도와 시간에 대한 지수항, 그리고 상대 습도 항이 포함되어 있습니다. 아레니우스 방정식을 확장하여 습도를 포함시킨 것입니다. 이제 이 공식의 성능을 보여드리겠습니다.
이 열을 다시 표시하면, 이 공식이 불순물 함량을 예측하는 결과가 나오는데, 정확하지 않습니다. 10%라고 예측하는데 실제 값은 2.5%입니다. 무슨 문제일까요? 공식을 다시 살펴보면, 공식을 만들 때 여러 열의 변수를 기반으로 하는 표현식을 사용한다는 것은 잘 알고 계실 겁니다. 하지만 매개변수를 추가할 수 있다는 사실은 모르시는 분들도 계실 수 있습니다. 매개변수를 추가하고, 이름을 지정하고, 값을 할당할 수 있습니다. 이 공식에는 세 개의 매개변수가 있는데, 각 매개변수에는 임의로 숫자가 할당되어 있습니다. 하지만 제가 원하는 것은 이런 방식이 아닙니다. 저는 이 매개변수들에 대해 최적의 값을 선택하고 싶습니다.
저는 모델을 데이터에 맞춰 조정하는 방식으로 이 작업을 수행합니다. 이 과정은 JMP의 비선형 플랫폼을 사용하여 이루어집니다. 비선형 플랫폼을 좀 더 자세히 살펴보겠습니다. 먼저 예측 공식에 모델을 할당하고, 반응 변수에 불순도를 할당합니다. 그러면 "시작하려면 시작"을 클릭하라는 창이 나타납니다. 시작 버튼을 클릭하기 전에 어떤 과정인지 간단히 설명드리겠습니다. 우리는 이러한 매개변수들을 가지고 있고, 초기값을 입력했습니다. 제가 하려는 것은 이러한 값들을 최적화하는 것입니다. 시작 버튼을 클릭하면 가우스-뉴턴 알고리즘이 적용되어 오차 제곱합을 최소화하는 값을 선택합니다. 최소 제곱 회귀와 유사한 개념입니다. 원하신다면 이를 평균 제곱근 오차(RMSE) 약 2로 변환할 수도 있습니다. 이것이 최종 모델입니다.
다음으로, 제가 할 수 있는 최선이 이것인지 질문해 볼 수 있습니다. 비교할 수 있는 두 번째 모델이 있으면 좋겠고, 제가 보여드린 모델보다 훨씬 더 복잡한 모델을 만들 수도 있습니다. 더 복잡한 모델을 보여드리겠습니다. 이렇게 생겼습니다. 이 모델은 더 많은 매개변수를 가지고 있고, 그 매개변수들은 더 복잡한 표현식과 연결되어 있다는 점에서 더 복잡합니다. 표현식에 대한 자세한 설명은 생략하겠습니다. 저는 이 모델을 피팅하는 메커니즘에 집중하고 싶습니다. 왜냐하면 '실행' 버튼을 클릭하면 실패하기 때문입니다. 저는 이러한 모델을 구축하는 데 있어서 몇 가지 이유와 어려움을 살펴보고 싶습니다. '실행' 버튼을 다시 클릭하라는 메시지가 나타납니다. 다시 클릭해도 여전히 실패합니다. 별 도움이 되지 않습니다.
무슨 일이죠? 최대 반복 횟수를 초과했습니다. 최대값은 60인데, 이게 무슨 뜻일까요? 경사 하강 알고리즘을 사용하고 있는데, 마치 언덕 위에 앉아서 언덕 아래로 내려가는 것과 같습니다. 그런데 60걸음밖에 걸을 수 없다고 하네요. 왜 이렇게 제한이 있는지 잘 모르겠습니다. 요즘 컴퓨터는 60걸음 이상 걷는 데 아무 문제가 없는데 말이죠. 제한을 6,000으로 설정해 보겠습니다. 매개변수를 원래대로 되돌리고 다시 '실행' 버튼을 눌러 보겠습니다. 여전히 실패하지만, 이번에는 다른 오류 메시지가 나타납니다. 수렴 기준이 너무 엄격해서 완화해야 한다는 메시지입니다. 수렴 기준값이 너무 작은데요. 10의 마이너스 15승은 너무 작잖아요.
작은 값을 원하지만, 10의 마이너스 7승은 작은 값이라고 생각합니다. 이렇게 해 보겠습니다. 다시 초기 매개변수로 되돌린 다음 '실행'을 클릭하겠습니다. 드디어 수렴했습니다. 복잡한 모델은 때때로 훨씬 더 많은 작업이 필요하다는 것을 알 수 있습니다. 이제 두 결과를 비교해 보겠습니다. 오른쪽 모델은 오차 제곱합이 128이고 평균 제곱근 오차는 약 2.5인 반면, 왼쪽 모델은 평균 제곱근 오차가 2이고 오차 제곱합이 91입니다. 오른쪽 모델이 왼쪽 모델보다 더 나은 성능을 보입니다. 적어도 서로 다른 모델을 비교할 수는 있습니다. 하지만 왼쪽 모델이 여전히 해당 모델을 최적으로 나타내는 것은 아니므로 이 비교를 할 때는 주의해야 합니다. 다른 방법을 보여드리겠습니다.
두 번째 모델에 대한 분석을 다시 시작하겠습니다. 이번에는 '시작' 버튼을 누르지 않겠습니다. 앞서 말씀드렸듯이 이것은 경사 하강 알고리즘입니다. 마치 언덕을 내려가는 것처럼, 우리가 걸을 수 있는 걸음 수에 대해 이야기했지만, 시작 위치에 따라 결과가 달라집니다. 시작 위치가 다르면 결과 위치도 달라지죠. 시작 위치는 이 값에 따라 결정됩니다. 저는 다양한 시작 조건을 탐색해 보고 싶습니다. JMP에는 이러한 시작 조건을 그리드 검색으로 찾을 수 있는 아주 유용한 기능이 있습니다. 이 그리드를 정의해야 하는데, 제가 타이핑과 말하기를 동시에 잘 못해서 타이핑을 하겠습니다. 제가 중얼거리는 소리가 들릴 수도 있지만, 어쨌든 설정을 해야 합니다.
1부터 10까지 3씩 증가합니다. 이게 가장 큰 경우인데, 1부터 100,000까지 100번째 단계입니다. 0부터 10까지, 이렇게 10개를 만들어 보겠습니다. 자, 이제 제가 중얼거리는 건 그만하고 다시 말씀드리겠습니다. 설정이 완료되었습니다. '실행' 버튼을 클릭하면 JMP가 모든 초기 조건을 평가합니다. 27,000개의 조건이 있는데, 한번 살펴보겠습니다. 전부 다 살펴보는 건 아니지만, 보시다시피 27,000개입니다. 각 행에 대해 이러한 매개변수에 대한 초기 조건 조합을 구하고 오차 제곱합을 계산했습니다. 이제 이 결과를 오름차순으로 정렬해 보겠습니다. 가장 좋은 오차 제곱합은 145입니다. 여전히 이것과 비교하면 좋지 않습니다. 하지만 아직 알고리즘을 완성한 것은 아니라는 점을 기억하세요. 이것은 단지 초기 조건을 찾는 과정일 뿐입니다.
이것들이 제가 시작할 매개변수입니다. 이것들을 복사하고 표 작업을 마치겠습니다. 이제 닫겠습니다. 여기에 붙여넣겠습니다. 이것이 제 초기 조건입니다. 이제 '실행'을 클릭하겠습니다. 수렴이 완료되었으니 결과를 살펴보겠습니다. 보시다시피 오차 제곱합이 1입니다. 지난번에는 128이었는데, 이제 1로 줄었습니다. 91과 비교하면 엄청나게 좋은 결과입니다. 제곱평균오차는 0.2로, 2보다 10배나 작습니다. 제가 보여드린 것은 이러한 모델을 적합시키는 데 따르는 몇 가지 어려움입니다. 하지만 복잡한 모델의 경우 초기 조건에 대해 그리드 탐색을 하지 않으면 최적의 해를 얻지 못할 가능성이 매우 높다는 중요한 교훈을 얻을 수 있습니다.
저는 다양한 모델의 여러 매개변수를 평가하고, 서로 다른 모델들을 비교할 수 있습니다. 평균 제곱근 오차(RMSE)를 사용할 수도 있지만, 복잡한 모델에 불이익을 주기 위해 소프트웨어에서 최소한 AIC 통계량(모델 비교 통계량)을 계산할 수도 있습니다. 이제 모델 구축 및 비교를 지원하는 JSL 애플리케이션으로 넘어가 보겠습니다. 소프트웨어를 실행하면 이렇게 보입니다. 먼저 새 프로젝트 이름을 지정해야 합니다. 저는 Berlin이라고 하겠습니다. 이미 Berlin이라는 프로젝트가 있으니 Berlin 2라고 이름을 바꾸고 확인을 클릭합니다. 여기 보이는 아이콘들은 워크플로를 나타냅니다. 우선 애플리케이션에 대해 좀 더 자세히 살펴보겠습니다.
JMP가 하는 일을 생각해 보세요. JMP는 모델을 적합시키고, 통계 분석을 수행하고, 시각화를 할 수 있는 기능을 제공합니다. JSL 스크립트를 작성할 때 이러한 모든 기능은 JMP가 어려운 작업을 모두 처리해 주기 때문에 상대적으로 쉽게 사용할 수 있습니다. 이 애플리케이션은 여기에 더해 워크플로를 제공하는 것을 목표로 합니다. 몇 가지 단계가 있습니다. 이 단계들은 아직 실행할 수 없으며 잠겨 있습니다. 이 두 단계는 실행 가능하며 권장 단계입니다. 워크플로, 즉 수행해야 할 일련의 작업을 제공할 뿐만 아니라 정보도 저장합니다. 한 번 설정하면 다시 설정할 필요가 없습니다. 모델을 적합시켰다면 다시 적합시킬 필요가 없습니다.
내일, 다음 달, 내년에 다시 돌아와서 살펴볼 수 있습니다. 이것이 바로 이 프로젝트의 핵심입니다. 모든 정보가 시간이 지나도 보존되도록 하는 것이죠. 자, 시작해 볼까요? 첫 번째 단계, 권장 단계는 제품을 선택하는 것입니다. 여기서 제가 하려는 것은 액체 제품인지 고체 제품인지를 판단하는 것입니다. 전문 용어로 액체 제품은 큰 분자이고, 정제는 작은 분자입니다. 저는 이것을 약간 다르게, 모델링 관점에서 생각합니다. 액체는 pH에 민감하고, 예를 들어 백신은 pH에 민감할 수 있습니다. 반면에 정제는 습도에 민감할 수 있습니다. 저는 정제를 먹겠습니다. 정제를 먹겠다고 말하지 말았어야 했는데. 웃음이 나올 것 같네요.
다음으로 할 일은 데이터를 할당하는 것인데, 데이터가 필요합니다. 이것은 데이터 테이블입니다. 이 테이블에는 네 가지 불순물이 연결되어 있습니다. 다시 애플리케이션으로 돌아와서 이 데이터를 할당하면, 데이터를 사용할지 확인하는 메시지가 나타납니다. 네, 사용하겠습니다. 그러면 데이터가 프로젝트에 복사되었고, 더 이상 데이터 테이블을 열어둘 필요가 없다고 알려줍니다. 이 데이터는 프로젝트의 일부로 저장되지만, 테이블을 직접 볼 필요는 없습니다. 여전히 열 매핑을 할 수 있으므로, 이 네 가지 불순물을 선택하겠습니다. 이것들이 제 응답입니다. 이것들에 모델을 적용할 것입니다. 각 불순물에 대해 여러 모델을 적용해 보고, 각각에 대해 가장 적합한 모델을 선택할 것입니다.
컬럼 매핑을 마무리하겠습니다. 이제 각 응답에 대해 사양을 입력할 수 있습니다. 1%를 입력하겠습니다. 즉, 불순물 수준이 1% 미만이면 사용 가능한 제품이라고 정의하는 것입니다. 시간에 따른 불순물 변화를 살펴보면, 1% 수준을 넘어서는 시점이 제품의 유효 수명입니다. 마지막 단계는 모델 옵션을 제공하는 것입니다. 이 데이터에 적용할 수 있는 모델은 총 8가지이며, 이에 대해 설명드리겠습니다. 불순물의 시간 경과에 따른 변화를 생각해 보면, 시간이 지남에 따라 증가할 수도 있고, 증가율이 둔화되거나 증가할 수도 있습니다. 감속 모델과 가속 모델이라는 개념이 있습니다.
이러한 모델을 표현하는 방법은 여러 가지가 있습니다. 마우스를 잃어버렸네요. 다시 모델 옵션으로 돌아가 보겠습니다. 모델 유형은 총 8가지입니다. 이 모델들은 온도와 수분 활성도를 나타내는 표현식 또는 항을 포함합니다. 수분 활성도는 상대 습도 또는 절대 습도로 표현할 수 있습니다. 따라서 총 16가지 모델 변형이 있습니다. 데모를 위해 8가지 모델 변형 중 상대 습도와 관련된 변형만 살펴보겠습니다. 거의 다 됐습니다. 한 가지 더 있습니다. 데이터는 스트레스 조건의 보관 데이터입니다. 표준 보관 조건, 즉 섭씨 25도, 습도 65%를 제공해야 합니다.
이로써 프로젝트 설정이 완료되었습니다. 이제 운동학적 모델을 피팅해 보겠습니다. 많은 분들이 요청하신 대로 자동 피팅 기능을 사용하여 모든 모델을 피팅하고 확인 버튼만 누르면 됩니다. 모든 모델 선택 과정이 자동으로 진행되지만, 모델 선택의 어려움을 제대로 이해해 주셨으면 합니다. 자동 피팅만으로는 유용한 정보를 얻을 수 없습니다. 적어도 하나의 불순물에 대해 개별적으로 피팅하는 과정을 살펴보겠습니다. 각 불순물에 대해, 또는 저는 첫 번째 불순물에 대해서만 설명하겠지만, 적합한 모델을 찾는 3단계 과정을 거치겠습니다. 첫 번째 단계는 모델을 피팅하는 것입니다. 이 단계에서는 각 모델을 차례로 피팅합니다. 피팅이 완료되면 모델 피팅이 완료되었음을 확인하는 대시보드가 표시됩니다.
마지막 단계는 이 여덟 가지 모델 중 하나를 선택하는 것입니다. 하지만 그 전에 중간 단계에서 후보 목록을 만드는 것이 편리합니다. 두 번째 단계는 바로 그 후보 목록을 만드는 것입니다. 소프트웨어는 신호등 시스템을 통해 이 과정을 간소화합니다. 녹색 영역에 있는 모델은 가장 가능성이 높은 모델이고, 노란색 영역에 있는 모델은 가능성이 낮으며, 빨간색 영역에 있는 모델은 제외할 수 있습니다. 이를 검증해 보겠습니다. 가장 좋은 모델이 감속하는 모델이라고 가정해 봅시다. 불순물이 시간이 지남에 따라 감속한다면, 가속하는 것이 아니므로 가속하는 모델은 제외하는 것이 타당합니다.
이 소프트웨어는 그런 논리를 사용하지 않고 있는데, 어쩌면 그런 지능적인 기능이 있어야 할지도 모릅니다. 지금은 그저 차가운 통계만 사용하고 있습니다. AIC 통계를 계산하는 거죠. AIC는 모델 비교 통계로, 모델의 복잡성에 따라 불이익을 줍니다. JMP는 여러 곳에서 이 통계를 사용합니다. JMP 전반에 걸쳐 사용되는 지표입니다. 비선형 플랫폼에서는 직접 사용되지 않지만, 소프트웨어 내에서 계산할 수 있습니다. 저는 녹색 영역에 있는 두 모델에만 집중하겠습니다. 이 두 모델을 제거하면 최종 후보 모델은 이 두 개가 됩니다. 이제 제가 선호하는 모델을 선택하거나, 적어도 소프트웨어가 최종 선택에 도움이 되는 더 많은 정보를 제공해 줄 것입니다.
지금은 이 두 모델에만 집중하고 있습니다. 통계 자체는 이 단계에서는 그다지 도움이 되지 않는데, 녹색 영역에 있는 모델들을 구분하기가 어렵기 때문입니다. R 제곱이나 평균 제곱근 오차 같은 수치를 보면 거의 차이가 없습니다. 그래서 그런 부분은 무시하고 진단 그래프에 집중하기로 했습니다. 여러 진단 그래프를 살펴보고, 제가 선택한 두 모델에 대한 그래프를 비교해 보겠습니다. 제가 소프트웨어에 사용자 편의성을 높이는 기능을 추가했는데, 두 모델을 나란히 놓고 볼 수 있는 기능이 특히 유용합니다. 이제 목록에서 첫 번째 모델을 보여드리겠습니다. 왼쪽에는 가장 성능이 좋은 모델이, 오른쪽에는 다른 모델이 있습니다.
우리가 보고 있는 것이 실제 값과 예측 값이라는 점을 명확히 해봅시다. 실제 데이터 포인트와 예측된 데이터 포인트를 비교하는 것입니다. 완벽한 모델이라면 모든 데이터가 45도 각도의 빨간색 선 위에 있을 것입니다. 이 그래프를 통해 모델이 데이터를 얼마나 잘 예측하는지 알 수 있을 뿐 아니라 두 모델을 비교할 수도 있습니다. 여기서 가장 눈에 띄는 점은 두 그래프가 완전히 똑같다는 것입니다. 너무나 유사해서 볼 때마다 소프트웨어에 버그가 있는 건가 싶을 정도입니다. 사실은 서로 다른 그래프를 보여주고 있는 것이 아니라, 두 그래프는 분명히 다릅니다. 여기 있는 데이터 포인트는 빨간색 선 위에 있고, 또 다른 데이터 포인트는 빨간색 선 밖에 있습니다. 두 그래프는 다르지만, 얼마나 유사한지 알 수 있습니다. 이것이 바로 모델 선택의 어려움입니다. 이 그래프에서 아주 잘 나타나 있습니다.
다른 그래프를 한번 볼까요? 잔차의 정규 확률 플롯을 살펴보겠습니다. 잔차가 직선을 이루기를 기대합니다. 이 경우 왼쪽 그래프가 오른쪽 그래프보다 확실히 더 좋습니다. 왼쪽 그래프는 통계적으로도 가장 좋은 결과를 보여줍니다. 이 단계에서는 통계적으로 가장 좋은 모델을 선택하는 것이 맞다고 생각할 수 있습니다. 통계적으로도, 진단적으로도 가장 좋은 모델을 선택한다고 해서 해고될 가능성은 낮으니까요. 하지만 이러한 모델을 어떻게 활용할지도 생각해 봐야 합니다. 예측 프로파일러를 살펴볼 수도 있습니다. 예측값이 동일하다는 것은 이미 확인했으니, 프로파일러 결과도 비슷하게 보일 것입니다. 적어도 우리가 가진 데이터 범위 내에서는 비슷하게 보일 것입니다. 하지만 모델을 실제로 사용하는 방법은 프로파일러를 이용하는 것이 아닙니다.
먼저 예측 프로파일러에 대해 설명드리겠습니다. 아마 온도와 상대 습도를 예상하고 계실 텐데, 이 두 가지는 드롭다운 메뉴로 제공됩니다. 우리는 시간 경과에 따른 변화에만 집중할 것입니다. 자, 그럼 제가 하고 싶은 것은 무엇일까요? 온도를 일반적인 보관 조건인 25도, 습도 65%로 되돌리고 싶습니다. 그런 다음 이 그래프의 시간 요소를 확장해 보겠습니다. 이것 또한 편의성을 높이는 방법입니다. 이 그래프들을 외삽하면 됩니다. 이제 확연한 차이를 보실 수 있습니다. 두 모델 모두 외삽을 통해 온도와 습도의 변화 속도가 감소하는 것을 보여주지만, 왼쪽 그래프의 감소폭이 훨씬 더 큽니다.
이것이 어떤 결과를 가져오는지 살펴보겠습니다. 먼저 오른쪽 모델을 보겠습니다. 이 지점은 모델이 기준선을 넘는 지점입니다. 여기서 기준선은 이 지점에서의 사양 임계값입니다. 하지만 우리가 관심을 갖는 지점은 이 지점이 아닙니다. 수명 모델링을 할 때는 실제로 상위 신뢰 구간과 교차하는 지점을 살펴봅니다. 바로 그 지점입니다. 300일이 조금 넘는 지점이죠. 왼쪽 모델은 600일이 조금 안 되는 지점입니다. 이 수치들은 매우 중요하며 소프트웨어에서 계산되어 여기에 나와 있습니다. 하지만 저는 여러분이 이 수치들이 어디에서 왔는지, 그리고 모델 선택에 있어 얼마나 중요한지 이해하시길 바랐습니다. 왜냐하면 종종 이러한 수치들이 서로 다른 모델 간에 유의미한 차이를 보이는 유일한 통계치이기 때문입니다. 그렇다면 어떻게 해야 할까요? 모델링을 하는 이유를 생각해 봅시다.
저는 이 제품의 유통기한을 알려드리려는 게 아닙니다. 만약 유통기한을 알고 싶으시다면, 온도와 습도가 조절되는 보관실에 2년 동안 보관해 보시면 됩니다. 저희가 하려는 것은 이 제품이 예상보다 빨리 고장 날 가능성을 평가하는 것입니다. 이 분석 결과는 300일 후에 고장 날 가능성이 있음을 보여줍니다. 물론 그렇지 않을 수도 있습니다. 왼쪽 모델이 맞을 수도 있고, 600일까지 사용할 수 있을 수도 있습니다. 하지만 저는 위험을 최소화하는 접근 방식을 취하고 싶습니다. 그래서 두 번째 모델을 선택할 것 같습니다. 그리고 그 이유를 설명드리겠습니다. 녹색 영역에 있는 모델들을 바탕으로 위험 기반 접근 방식을 취하고 있다고 말씀드릴 수 있습니다.
만약 이 결과가 마음에 들지 않으신다면, 과학적 판단이나 다른 근거에 기반한 결과라고 말씀하실 수도 있습니다. 아니면 그냥 "이 결과가 마음에 든다"라고 하셔도 됩니다. 하지만 설명을 덧붙일 수도 있고, 아니면 통계적으로 가장 좋은 결과를 보인 왼쪽 모델을 선택할 수도 있습니다. 궁극적으로는 선택할 수 있습니다. 하지만 저는 이것이 합리적인 선택, 즉 위험 기반 평가라고 생각합니다. 저는 이 모델을 선택하겠습니다. 이로써 해당 불순물에 대한 모델 선택이 완료되었습니다. 이 과정을 모든 불순물에 대해 반복할 수 있으며, 요약을 보여드리면 불순물 1에 대한 세 단계를 모두 완료한 것을 확인할 수 있습니다. 나머지 세 가지 불순물에 대해서도 같은 방식으로 진행할 수 있습니다. 수동으로 진행할 수도 있고, 자동 맞춤 기능을 사용할 수도 있습니다. 이제 이 세 가지 불순물에 대해 자동 맞춤을 적용할 수 있습니다.
이렇게 하면 몇 분 동안 화면만 쳐다보고 있어야 할 거예요. 대신 다른 프로젝트로 전환하는 방법을 보여드릴게요. 다른 프로젝트를 선택하면 데이터는 동일하지만, 네 가지 불순물 모두 자동 피팅이 적용된 상태입니다. 출력 결과가 어떻게 나오는지 보여드리려고요. 자동 피팅 버튼을 클릭했다면 다음과 같은 출력 결과가 나타날 겁니다. 먼저 불순물 1에 주황색 버튼이 있는 것을 볼 수 있습니다. 소프트웨어에는 신호등 시스템이 많이 사용되는데, 다른 불순물들은 모두 초록색입니다. 주황색은 무엇을 의미할까요? 바로 모델 선택에 있어 모호성이 존재했다는 뜻입니다. 선택할 수 있는 모델이 두 개나 있었기 때문이죠. 다른 불순물들은 모호성이 전혀 없습니다.
다른 경우에는 통계치가 가장 작은, 즉 통계적으로 가장 좋은 모델을 선택했습니다. 하지만 이 경우에는 CI 침해 기간을 기준으로 선택했습니다. 이 기간들이 표시되어 있습니다. 이것은 311인데, 앞서 봤던 숫자입니다. 아이콘을 클릭하면, 마우스 커서를 올려놓으면 추정치가 311에서 569 사이라는 것을 알 수 있습니다. 클릭하면 신호등 시스템이 나타나서 두 번째 모델이 선택되었다는 것을 보여줍니다. 이 모델은 이 수치에 대해 최악의 경우를 가장 많이 예측했기 때문입니다. 하지만 항상 그런 것은 아닙니다. 여기서는 유효 기간이 매우 짧습니다. 녹색 아이콘이 있는데, 이는 추정치의 범위가 매우 일관적이라는 것을 의미합니다. 녹색 영역에 있는 모델은 네 개인데, 모두 거의 같은 수치를 예측합니다. 따라서 통계치를 기반으로 가장 좋은 모델을 선택할 수 있습니다.
모델들이 서로 얼마나 일관성 있게 작동하는지에 따라 다양한 결정이 내려집니다. 궁극적으로 우리는 모든 모델을 적합시키고 각 불순물에 가장 적합한 모델을 선택하는 과정을 거쳤습니다. 이러한 불순물들은 단일 제품에 대한 것이며, 이를 바탕으로 분석을 진행할 수 있습니다. 예를 들어, 대시보드 형식으로 모델들을 요약하여 다양한 모델들을 비교해 볼 수 있습니다. 또한 다양한 보관 조건을 테스트해 볼 수도 있습니다. 이것이 한 가지 분석 방법입니다. 다른 방법으로는, 이 동역학 모델을 보관 모델에 적용하여 제품을 담을 수 있는 다양한 용기를 살펴보는 것입니다.
제가 오늘 다룬 내용을 요약해 보겠습니다. 다시 말씀드리자면, 우리는 가속 안정성 연구에서 얻은 데이터를 바탕으로 이야기를 시작했습니다. 이 연구는 제품에 스트레스를 가하는 방식입니다. 제가 이야기한 제품은 의약품, 즉 정제입니다. 저는 불순물의 변화를 모델링할 수 있습니다. 이러한 동역학 모델을 구축할 수 있습니다. 비선형 플랫폼을 사용하여 이러한 모델을 생성하는 메커니즘을 살펴보았고, 이 플랫폼을 사용하는 데 있어 몇 가지 어려움도 보여드렸습니다. 그리고 JSL 애플리케이션을 사용하여 모델 적합 과정을 자동화하고 모델 선택 과정을 간소화하는 방법을 설명했습니다. 더 나아가 포장 제품에도 적용할 수 있습니다. 이것으로 오늘 제 발표를 마치겠습니다. 감사합니다.