製藥公司必須透過測量產品在不同儲存溫度下的性能隨時間的變化來證明其保質期。為了加快測試速度,通常也會進行高溫測試。儘管阿倫尼烏斯早在1889年就證明瞭如何將不同溫度下的結果整合到一個模型中,但許多公司仍然分別分析每個溫度下的結果。將數據分層到不同的模型中並不經濟高效。
此外,還必須對保質期進行持續驗證,通常要求所有觀測值均在規格範圍內。但由於測量噪聲,這項標準往往無法滿足。因此,應改為要求測量值在初始保質期研究的預測區間內,這是一個較為寬鬆的要求。
JMP 的「降解/非線性路徑/恆定速率」平台中包含了阿倫尼烏斯方程式。然而,該平台缺乏「擬合模型」平台的一些優秀功能,例如學生化殘差圖、Box-Cox 轉換、隨機因子和預測區間。
感謝您給我這個機會來談談我們作為 JMP 合作夥伴如何幫助客戶降低成本,尤其是在智慧保質期運算和保質期驗證過程中避免不合格情況。
首先,我將介紹我們在客戶進行保質期研究時遇到的一些問題,特別是持續驗證過程中遇到的問題。先來看保質期研究,在設定保質期時,我們可以看到它是基於若干批次(通常是3-4個批次)來測量隨時間推移的變化。當然,最終水平取決於初始水平和變化斜率。理想情況下,所有批次的變化斜率應該相同。
但我們常發現不同批次的起始液位不同。這可能會帶來挑戰,因為後續批次在進行持續驗證時,起始液位可能也會不同。如果起始液位較低,讀取保存期限時可能會出現超出規格的情況。
我們建議的做法是,將保質期轉換為批次放行時的要求,也就是說,在時間 0 時,保質期值應該是多少,才能確保產品在保質期內符合規格。當然,我稍後會詳細解釋這一點。
我們也經常看到線性迴歸是基於絕對值進行的,但退化是相對的。如果退化程度很大,你實際上描述的並不是退化速率。解決方法很簡單:在進行迴歸之前,只需對資料取自然對數(Ln)即可。
抱歉打斷一下,皮埃爾。我看到一個按鈕,上面寫著「Zoom正在共享您的螢幕」。
我覺得它已經不在了。
有什麼辦法可以隱藏工作列嗎?因為它太大了,底部好像有兩個工作列。
好的,我們試試別的辦法。我覺得如果我喜歡這個,那這個會不會比較好?
是的,好多了。
因為我現在是以演示模式顯示的,所以也許我應該繼續以演示模式顯示它。
是的,看起來不錯。
我先試試看效果,因為之後我分享 JMP 檔案時會這樣做。這樣一來,我恐怕您在使用 JMP 時會看到任務欄。
嗯,還行吧。
我們應該那樣做嗎?
就這麼辦吧。
我做PPT的時候會用演示模式。我覺得這樣效果更好。
當然可以。完美。謝謝。
看來我們只能從頭開始了。
重新開始吧。抱歉。
大概兩分鐘,所以不算什麼大災難。
感謝您給我這個機會來談談我們作為 NNE 的 JMP 合作夥伴,如何幫助我們的客戶進行更好的保質期研究,尤其是在驗證過程中最大限度地減少不合格項的數量。
首先,我將簡要介紹我們在保質期研究,特別是持續驗證方面遇到的問題。我們將確保您所說的保質期仍然有效。我們會定期抽取一些批次進行測試。如果您查看第一項研究,即保質期估算研究,其中您設定了保質期,通常會選取3-4個批次,讓它們隨時間推移進行衰減。我們會測量這四個批次隨時間的變化,觀察它們的衰減程度,然後計算出保質期。
當然,隨著時間的推移,濃度水平取決於衰減斜率,而衰減斜率正是保存期限研究的主要目的。當然,濃度水平也取決於初始濃度。由於您的保質期估算研究中只有三到四個批次,並且您打算用後續批次進行驗證,如果後續批次的初始濃度低於您保質期研究中的批次,即使初始濃度較低並不意味著衰減速度更快,驗證結果也可能出現問題。
我們的解決方案實際上是將保質期方程式轉換為一個可節省時間的起始值,也就是一個放行限值。當然,這個數值應該優於您在保質期內的要求,因此留有調整的空間。這樣,您就不必對未來的批次過於敏感,因為您可以確保它們的起始值足夠高。我們也經常看到人們在進行時間回歸時採用絕對值,但降解是相對的。我們強烈建議您在進行迴歸之前對資料取自然對數 (Ln)。
我們也看到許多公司在測量結果的重複性方面面臨巨大挑戰,而保質期是最難測量的指標,因為顯而易見,您必須在非常不同的時間點對不同批次的產品進行測量,通常間隔數年。當然,情況瞬息萬變,如果您的測量系統不夠穩定,回歸曲線就會出現大量雜訊。您可以將測量時間點作為隨機因子納入模型來降低雜訊。
我們也經常看到一些公司在多種不同溫度下測試保質期,這很好,因為這樣可以加快測試速度。但不知何故,通常情況下,溫度模型都是單獨建立的。我們很少看到有人對溫度進行跨溫度建模。我們得到的通常是一個描述所有溫度的模型。當然,我們強烈建議對溫度進行跨溫度建模,因為這樣可以提供更多溫度範圍的數據來估計殘差。
在同一領域,我們也發現,當人們要對溫度進行建模時,當然需要所有不同溫度下的初始測量值(時間 0)。但實際上,你使用的是同一個測量值,因為時間 0 只是一個初始值。因此,在建立跨溫度的模型時必須格外小心,例如,如果存在錯誤溫度,就不應該出現四次相同的觀測值。
在不同溫度下進行建模時,非常重要的一點是,你只需要在一個溫度下進行一次記錄。這樣一來,具體是哪個溫度點其實不重要,因為它代表的是時間 0。這就是我們在設定保質期時經常遇到的問題。以下是我們針對此問題提出的一些解決方案。
然後,在進行保質期驗證時(也就是說,既然您已經確定了某個保質期,那麼就需要定期進行驗證,以證明該保質期仍然有效,ICH 對此有相關指南。JMP 中也包含了這部分內容,您稍後會看到。具體操作是,您通常會生產三到四個批次的產品,然後計算最差的斜率的置信期,並以此為單位來確定的成本最低。
但這有點棘手,因為這樣就假定你已經看到了前三批中的第一批,而通常情況下並非如此。這其實也是我們不建議使用ICH方法的原因,因為它常常會導致驗證問題。
我們也常看到,人們對斜率標準誤差的估計過於樂觀,因為他們假設觀測值是獨立的,自由度只有 n-1。然而,很多時候,一次分析中會進行多次測量。如果分析結果之間存在一對一的差異,則這些測量並非獨立測量,需要透過計算有效自由度來校正。僅僅將測量日期作為隨機因子是無法做到這一點的。
這樣一來,標準誤差通常會稍大一些,這看似是個問題。但實際上,它提高了初始值的要求,從而最大限度地降低了驗證失敗的風險。
最後但同樣重要的是,我們仍然看到許多公司聲稱,在驗證階段,所有測量結果都應該在規格範圍內。但是,如果確實存在測量問題(而且測量問題總是存在的),那麼由於測量問題,產品在保質期內實際上可能超出規格範圍。我們建議的做法是,建構一個具有合適自由度的模型。對於這個模型,實際上應該使用與設定保質期時相同的數據,並基於此建立一個預測區間,用於預測未來的觀測值。此區間通常會略寬於規格區間,從而最大限度地降低失效風險。
接下來我會簡要介紹公式、平台以及它們在 JMP 中的位置,但我會盡量快速地講解,因為我相信您之後可以在演示材料中找到這些公式,而且我認為在 JMP 中演示它們更有意思。不過,我們先從發布限制開始。
如何將斜率和斜率標準轉換為初始釋放限值?假設某種物質的含量會隨時間下降,而我們有一個下限規格。那麼,我們參考VSO關於穩定性、評估和最大科學性的指導原則,只需用下限規格減去估計的斜率(即保質期),就能得出保質期內的含量下降量。此外,還需要考慮一些不確定性,包括斜率的標準誤差以及初始值的測量標準差。
實際上,我們只是用了這個公式,只是因為標準差未知,所以需要將常態分位數轉換為t分位數。為了估計測量重複性,我們使用了模型中的IMC值。除此之外,其他步驟都與VSO指南中的描述完全一致。當然,在建立模型時,您需要從建模JMP中獲得斜率,根據下面的公式從建模JMP中獲得有效角度,獲得斜率的標準誤差,以及殘差誤差。
基於此,你可以將此值代入公式,即可得到下限發布量。如果瓶頸之一實際上是初始值的測量噪聲,你可以在初始階段進行多次測量並取平均值,從而將其抑制N的平方根。當然,這些測量在分析上會比較困難。
接下來,當我們要建立重量隨時間變化的模型時,可以直接點選「擬合模型」。當然,你可以在那裡進行迴歸分析。我們強烈建議你對結果進行鎖定,因為這樣對於恆定速率的反應,結果將與時間呈線性正比關係。當然,如果衰減很小,你也可以不鎖定結果。但為什麼要糾結於衰減的大小呢?只要鎖定結果,無論衰減大小,它都能正常運作。
如果你想建立跨溫度的模型,你必須使用阿倫尼烏斯方程,它能用活化能描述不同溫度下的衰減過程。如果你使用非線性路徑的降解平台,JMP 可以很好地描述這種情況,並且你可以在那裡建立跨所有溫度的模型。如果你找到了這個平台,其實很容易做到。我猜你找到的是正確的平台,但你最好還是自己找找,我稍後會在 JMP 中示範。
基於以上信息,您將得到模型係數。您將獲得截距、斜率、活化能,以及相應的標準誤差和協方差。將這些數據結合起來,您可以計算出每個溫度下的斜率及其標準誤差。然後,您可以將這些資料代入下限釋放量計算公式,從而確定下限釋放量。
所有這些模型參數、標準誤差和相關性,你都可以直接從 JMP 中得到。但你必須把它們代入我在這裡展示的這個方程式中。實際上,這並不像看起來那麼簡單。
因此,我們建議對阿倫尼烏斯方程式進行泰勒展開,因為泰勒展開可以將其擬合成多項式。通常情況下,三階多項式就足夠了,這需要四個不同的溫度。在「擬合模型」中,完成泰勒展開後,您可以新增隨機因子。正如我之前提到的,您需要將測量時間作為隨機因子。但通常您也希望將批次作為隨機因子,因為我們不僅想預測目前研究批次的情況,還想預測未來批次的情況。當然,您還能獲得更好的模型診斷結果。
如果你正確地調整阿倫尼烏斯溫度,使其在目標時刻為 0,那麼這裡的所有項都會消失,因為它們都為 0。這樣就很容易得到斜率和標準誤差,因為它們就是模型中時間參數前的係數和標準誤。這比我在上一張投影片中展示的要簡單得多。
然後,除了三階資料展開式之外,你還可以加入批次乘以時間的項,以及批次和時間的交互項,看看是否有批次相關的斜率。希望不會出現這種情況,但確實有可能出現,甚至更糟的是,我們可能還會加入阿倫尼烏斯溫度-時間乘以批次的項,看看活化能是否與批次相關。這種情況很少發生,當然也不應該發生。但我認為在做出假設之前進行檢查是件好事。
現在,我們進入 JMP 看看它是如何工作的。我現在切換到 JMP。這裡有一個案例,我研究了一些不同溫度和不同時間段的批次。我們先來看結果。這裡您可以看到啟用了 Ln 函數的結果。在 15、25、30 和 40 攝氏度這三個不同溫度下,從 0 個月到 36 個月,結果應該是線性的。
正如您所見,正如預期的那樣,溫度越高,斜率越大。這可以用阿倫尼烏斯方程式輕鬆描述。每個批次在每個時間點都進行兩次測量。您也可以看到,我們每天的測量值都會有一些波動。例如,您可以看到三個月時的所有測量值都高於迴歸方程,這表示當天我們測量的值偏高;而例如,在第九個月時,測量值通常偏低。顯然,這條曲線受到了……或者說這些數值受到了測量噪音的影響。這種情況很常見,因為測量時間點非常不同,很容易出現某些天的測量值高於其他天的情況。稍後您會看到這會造成什麼影響。
我們開始建模。您可以在 JMP 中進入降解分析。在那裡,您不能合併溫度數據,但可以按溫度進行分析。這實際上遵循了 ICH 指南。我剛剛打開了 15 度的模型。它的工作原理是,在顯著性水準為 0.25 的情況下,您可以假設斜率和截距相同。如果 P 值低於 25,則必須使用不同的截距和斜率。例如,您可以看到,對於 15 度,根據 ICH 指南和此顯著性標準,您可以假設斜率相同,但截距會不同。
然後,利用這些不同的截距和共同的斜率,你在每條迴歸線上都建立了一個共同的區間,然後你取「批次」這個詞,在本例中是批次 B。然後你指出,這個區間對應的是規格限值、下限規格限值、Ln 尺度,這就是你的保質期,在本例中是 55 個月。
這種方法雖然簡單易行,但也有一些問題。首先,0.25 的顯著水準很容易導致出現假陽性結果,即需要不同的斜率,但實際上可能並不需要。更糟的是,這種方法只考慮了前三個批次中最差的那一個。我的意思是,你最終得到的最差批次不太可能出現在前三個批次中。這可能會在後續的驗證過程中造成嚴重的問題。儘管這種方法簡單易行,但我們並不建議使用。
當然,你可以在「擬合模型」中創建完全相同的模型,這就是我在這裡展示的。同樣,首先按溫度建模,稍後我們會將它們結合起來。你可以看到,你可以輸入時間、批次和時間乘以批次,在本例中是 15 度。時間乘以批次這項可以考慮到斜率可能與批次有關,因此不能使用相同的斜率。你可以看到它的 P 值很高,但我不太喜歡使用 P 值,因為它們對樣本量、訊號雜訊比等因素非常敏感。我更傾向於使用資訊準則,它對不同的樣本量和噪音水平等因素更加穩健。我更喜歡 Akaike 資訊準則,它是負對數似然值,所以值越低越好。
如果我把時間乘以批次去掉,結果是 188 - ... 實際上會降到 -193,這意味著模型更好了。現在我已經證明可以使用共同斜率。接下來我可以考慮批次數。它的 P 值比較接近臨界值,仍然偏高,但我不用 P 值,我用的是資訊準則。如果我把它去掉,結果從 100 - 3 降到 -195。還在下降。這樣一來,我也證明了可以使用共同截距。
但是,正如我之前提到的,這裡要小心,因為這些數字並非相互獨立。我暫時不會告訴 JMP 這一點。你可以透過「擬合模型」並建立相同的模型來更好地解決這個問題。唯一的區別是,我現在將測量日期作為隨機因子。現在我可以校正這些測量值是分組的,也就是同一天的數據來自同一個分析。現在你可以看到得到了不同的 P 值。再次查看資訊準則,你可以看到批號乘以時間 -207,它下降到 -239。更好的模型,合理的共同斜率。但是現在看看當我移除批號時會發生什麼。結果與之前相同,只是增加了測量日期。它是 -239。現在它實際上增加到 -236。我不應該移除它,這意味著我不能假設共同截距。
這正是為什麼需要輸入測量日期的一個很好的例子,否則你可能會被數據並非相互獨立的事實所誤導。如果你想建立一個跨溫度的模型,正如我之前提到的,這很容易做到。只要進入降解數據分析,輸入這段非線性部分即可。實際上,你已經內建了阿倫尼烏斯方程,你會得到四個溫度下相同的截距、相同的斜率和相同的活化能。
然而,我已經證明,斜率相同沒問題,但截距相同就值得商榷了。我們需要的是截距和斜率都不同,而在這裡你無法做到這一點。你可以做的是,指定每個批次使用不同的參數。這樣一來,截距和斜率就都不同了,而在這個例子中,活化能卻相同,我認為這是合理的。
但在這裡,你無法真正同時擁有相同的斜率和不同的截距。不過,JMP 提供了一個解決方案。如果你進入非線性平台,就可以建立自己的擬合方程式。在那裡,你可以利用阿倫尼烏斯方程,像你在這裡看到的那樣,擁有相同的活化能和斜率,但截距不同。所以,這是可以實現的。
但這裡的困難在於你不能引入隨機因素。你很難對其進行校正,因為這些測量並非獨立測量。你也不能將批次作為隨機因素納入考慮。你很難建立一個描述批次的通用模型,而這通常正是你所需要的。
為此,我們通常會選擇“擬合模型”,並代入阿倫尼烏斯方程式的泰勒展開式,就像您在這裡看到的那樣。當然,要展開到一階、二階和三階,也要代入批次號以調整截距,代入批次號乘以時間,這樣才能處理斜率可能不同的情況(希望不會)。更糟的是,您還可以代入阿倫尼烏斯方程式的時間乘以批次號,以校正可能存在的批次依賴性活化能,這可能會很奇怪。
但觀察AICc,你會發現它沒有先扣除時間,而是達到了-730。真是太幸運了!隨著時間推移,它降到了-67。這是一個更好的模型。現在我已經證明,我可以擁有一個共同的活化能。相同的批次數乘以時間,它的P值接近臨界值。但是,再次觀察Akaike資訊準則,你會發現它實際上仍在下降。現在我也可以證明,我也可以擁有一個共同的斜率,這當然是一件好事。你也可以在這個模型中做到這一點。
如您所見,我已將測量日作為隨機效應加入模型,因為在擬合模型中可以輕鬆實現這一點。但在退化平台中則無法做到。
希望您已經看到,計算斜率的方法有很多種。我在這裡嘗試看看它們對您的下限釋放量有何影響。如果您運行這個小腳本,您實際上可以看到有很多不同的方法……我可以按溫度計算,也可以按隨機時間的溫度計算。這個退化平台涵蓋了所有方面,包括非線性退化、不帶隨機時間的泰勒退化以及隨機時間的泰勒退化等等。
在這裡,我只需輸入從這些模型中獲得的斜率和標準斜率即可。在這裡,您可以實際看到,如果您只進行一次測量批次放行,那麼最低放行限值是多少。您可以看到,我們建議的方法,即隨機時間泰勒展開法,可以得出最高的放行限值之一。當然,放行限值越高,後續持續驗證中出現問題的風險就越低。在這種情況下,我們要求所有批次的起始值都應在 10.09 左右。否則,我們無法確保它們在保質期內仍然有效。
您可以看到,如果我們隨機選擇一個時間點,並且只針對 15 度進行測試(這裡我們要求的是 15 度溫度不進行組合),您會得到更高的釋放限值。但這是因為透過建立單獨的模型,自由度會減少。實際上,我們可以透過建立跨溫度的模型來獲得更低的釋放限值,並且該限值仍然可靠。正如您在右側看到的,如果您在開始時進行兩次測量,批量釋放以抑制測量噪聲,則可以進一步降低釋放限值。如果您進行 10 次測量,則可以進一步降低釋放限值。您希望在開始時進行多少次測量?
當然,批量放行取決於您的測量噪聲,而這些噪聲分佈在瓶頸環節。但您使用的方法確實至關重要。如果您沒有對非獨立測量進行校正,則很容易得到過低的放行限值,這會在後續的驗證過程中引發問題。
如果您想對批次進行總體描述,例如設定保質期,那麼您還需要將批次作為隨機因素添加進去。現在我將批次和測量日期都作為隨機因素。現在我不僅描述了我用於研究的三個批次,而且還描述了批次的整體情況。然後您可以直接進入分析器。我將其設定為阿倫尼烏斯溫度 40.272,對應於 15 攝氏度。您可以看到這裡的保質期狀態。他們希望證明他們的產品保質期為 24 個月。如果您查看所有批次的整體曲線,可以發現它很好地保持在限值範圍內。這家公司完全可以證明他們的產品在 15 攝氏度下至少有 24 個月的保質期。
你可以看到我使用了 5% 的單側 Alpha 值,因為只有偏向一邊才會有問題。但是,如果我想預測單一測量值的具體位置(因為這裡只顯示了兩條線的位置),我可以再次運行相同的模型,並精確地執行相同的模型。我只是將 Alpha 值改為 0.135% 的單側值,就像 ±3σ 範圍內的誤差一樣。然後,你在這裡仍然可以看到相同的結果。當然,透過調整 Alpha 值,結果會稍微變寬一些。接下來,我想在這裡展示預測範圍。
遺憾的是,在 17 版本中,您無法在分析器上顯示預測限值。我稍後會切換到 18 版本早期試用版。它尚未正式發布,但即將推出。我會在 18 版本中運行相同的模型,因為 18 版本最大的優點在於,您可以在分析器上同時查看置信限值(這是比較隱藏的方法)。此外,您還可以查看預測限值或單一置信限值。這可以幫助您了解在給定批次的保存期限內,單一觀測值的預期範圍。您可以看到,預期值可能會略低於下限規格。
為了持續驗證,我們建議將要求設定為預測區間內的值略大於規格限值。這樣可以避免因測量問題而導致的不合格情況。
希望您已經意識到,在進行保質期和驗證時存在許多陷阱,但 JMP 提供了一套完善的工具來規避這些陷阱,並確保正確完成驗證工作。最後,我將回到我的演示文稿,再次展示我最初提出的問題,因為我們現在已經討論過這些問題了。當我們為客戶進行保質期評估時,我們強烈建議將其轉換為發布限值,因為這樣可以確保您未來生產的所有批次都能達到保質期要求,因為您為它們的起始期限設定了一個明確的標準。
當然,所有模型都要基於自然對數(Ln)資料。只需在模型對話方塊視窗中鎖定,即可得到線性迴歸模型。將時間作為模型中的隨機因子。這樣可以校正每天測量值可能不完全相同的情況。當然,使用阿倫尼烏斯方程式的泰勒展開式來建立跨溫度的模型也很容易。記住,不要進行多次註冊。時間 0 點只能在一個溫度下輸入。
然後,在進行持續的保質期驗證時,我們不建議使用ICH方法,因為它實際上假設您看到的是前三次檢測中最差的結果,而實際情況可能並非如此。計算放行限度時,獲得正確的斜率標準和自由度也至關重要。如果沒有獨立的測量數據,自由度不能簡單地用n-1表示。您通常需要將分析值作為隨機因子納入考慮。
最後,但同樣重要的是,請提供您正在進行的驗證的規格。這些規範應與您先前基於用於設定保質期的批次所做的預測區間相符。感謝您的關注。希望您能從本文中獲得啟發,了解如何使用 JMP 有效地進行保質期管理。非常感謝。