<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
code{white-space: pre;}
Pius Dahinden, PhD, Manager Analytical Science, Tillotts Pharma
Abstrakt
Seit Inkrafttreten des neuen EU-GMP-Leitfadens (EudraLex Band 4) Kapitel 6 (Qualitätskontrolle) im Jahr 2014 ist die Durchführung einer Trendanalyse der Arzneimittelstabilitätsdaten eine zusätzliche analytische Qualitätskontrollanforderung. Die Analytical Quality Control Working Group (AQCWG) der European Compliance Academy (ECA) hat eine Standardarbeitsanweisung für die Bewertung von Ergebnissen außerhalb der Erwartungen (OOE) und außerhalb des Trends (OOT) ausgearbeitet. Zur Beurteilung von Stabilitätsdaten empfiehlt sich die Verwendung des Regression Control Chart (RCC)-Verfahrens zum Vergleich aktueller Chargen mit Daten historischer Chargen. Die aus den historischen Chargendaten selbst geschätzten Steigungen und/oder Abschnitte unterliegen jedoch Unsicherheiten. Die ECA AQCWG schlägt eine vereinfachte Zufallskoeffizienten-Regressionsmethode (RCR) vor, die dies berücksichtigt. Es wird ein neu entwickeltes JMP-Skript vorgestellt, das das empfohlene RCC/RCR-Verfahren implementiert. Das Skript erleichtert die Identifizierung von OOE-/OOT-Punkten in Stabilitätsdaten und liefert alle notwendigen Informationen in der Ausgabe, zusammen mit einer entsprechenden grafischen Darstellung.
Einführung
Um die Qualität der produzierten Artikel sicherzustellen und finanzielle Verluste durch außer Kontrolle geratene Produktionsprozesse zu vermeiden, wenden Hersteller eine statistische Prozesskontrolle (SPC) an. Prozesskontrolle bedeutet, dass ein laufender Prozess routinemäßig überwacht wird und dass Maßnahmen ergriffen werden, um den Prozess wieder unter Kontrolle zu bringen, wenn einer der überwachten Parameter einen ungewöhnlichen Trend aufweist. SPC ist ein Tool, das es Herstellern ermöglicht, Änderungen in einem Prozess frühzeitig zu erkennen, sodass sie störungsverursachende Probleme untersuchen und frühzeitig Korrekturmaßnahmen ergreifen können. Ein leistungsstarkes Werkzeug zur Prozessüberwachung ist die von Shewhart [6] populär gemachte Kontrollkartenmethode. Abbildung 1 zeigt die schematische Ansicht einer typischen Kontrollkarte.
Im Gegensatz zu Produktionsprozessen, bei denen es keinen Trend geben sollte, gibt es viele Datenverwaltungsprobleme mit einem inhärenten Trend. Zur Analyse derartiger Datenverwaltungsprobleme wurde die herkömmliche Kontrollkartenmethode mit der Regressionsanalyse kombiniert, und dieser Ansatz wurde von Mandel [4] als „Regression Control Chart“ (RCC) bezeichnet. Als Kontrollgrenzen ist die Nutzung von Toleranzintervallen (TI) sinnvoll. Zur Überwachung der Stabilitätsdaten pharmazeutischer Produkte, die unter den empfohlenen Lagerbedingungen (z. B. 25 °C / 60 % relative Luftfeuchtigkeit) gelagert werden, werden RCCs verwendet, um z. B. den Abbau des pharmazeutischen Wirkstoffs oder die Ansammlung von Verunreinigungen im Laufe der Zeit zu überwachen und dies zu unterstützen Verfallsdatum des Produkts, dh um die Stabilität des Arzneimittels für die Dauer der angegebenen Haltbarkeitsdauer zu bestätigen.
Figure_1Abbildung 1
Abbildung 1 Typische Kontrolldiagrammzusammensetzung
Ein Kontrolldiagramm zeigt normalerweise die Werte anXXoder eine Statistik mehrerer Werte (z. B. des Mittelwerts) des Qualitätsmerkmals einer Probe über der Probenanzahl oder der Zeit. Im Allgemeinen enthält das Diagramm eine Mittellinie, die den Mittelwert darstelltX¯\overset{\overline{}}{X}des kontrollierten Prozesses. Eine Grundannahme ist, dass die Daten normalverteilt sind. Zwei zusätzliche charakteristische horizontale Linien sind die unteren und oberen Kontrollgrenzen (LCL bzw. UCL) in einem Abstand von ± 3 Standardabweichungen (SD) von der Mittellinie, so dass, solange der Prozess unter Kontrolle ist, 99,7 % der Datenpunkte werden aufgrund zufälliger Variation, die als Variation aufgrund gemeinsamer Ursache bezeichnet wird, innerhalb dieser Grenzen liegen. Die Linien in einem Abstand von ± 2 SD von der Mittellinie werden als untere und obere Warngrenze (LWL bzw. UWL) bezeichnet, während die Linien in einem Abstand von ± 1 SD von der Mittellinie keinen spezifischen Namen haben. Mithilfe dieser Linien kann eine Kontrollkarte in die Zonen C bis A unterteilt werden. Regeln zur Erkennung von Abweichungen aufgrund besonderer Ursachen, die charakterisieren, dass ein Prozess nicht unter Kontrolle ist, nutzen die Häufigkeit der Beobachtungen in diesen Zonen als Entscheidungsgrundlage.
Verfahren und Ergebnisse
RCC, das auf Stabilitätsdaten eines pharmazeutischen Produkts angewendet wird, zielt darauf ab, zwei Fragen zu beantworten: 1) Liegt die aktuelle Charge außerhalb der Erwartungen (OOE) oder außerhalb des Trends (OOT) in Bezug auf die historischen Chargen (d. h. in Bezug auf den aus historischen Daten abgeleiteten TI)? und 2) ist der zuletzt gemessene Datenpunkt der aktuellen Charge OOE in Bezug auf die aktuelle Charge (dh in Bezug auf ihr Vorhersageintervall (PI))?
Für die Beurteilung eines Trends im Sinne von Frage 1 sind mindestens drei Datenpunkte der aktuellen Charge erforderlich. Für die Bewertung von Frage 2 werden mindestens vier Datenpunkte benötigt, da der zuletzt gemessene Datenpunkt nicht für die Erstellung des PI verwendet werden sollte.
Da es sehr wahrscheinlich ist, dass die einzelnen historischen Chargen hinsichtlich ihrer Achsenabschnitte und Steigungen variieren, ist ein gewöhnliches Modell der kleinsten Quadrate (gemeinsame Steigung – gemeinsamer Achsenabschnitt) möglicherweise nicht aussagekräftig. Aus diesem Grund empfiehlt die Analytical Quality Control Working Group (AQCWG) der European Compliance Academy (ECA), die Methode der „Random-Koeffizienten-Regression“ (RCR) zu verwenden, die die Variabilität der Achsenabschnitte und Steigungen der einzelnen Chargen berücksichtigt [7]. Ein vereinfachtes RCR-Modell (modifiziertes Modell von Carter und Yang [1]) enthält zwei unbekannte Parameter, nämlich den Achsenabschnittβ1\beta_{1}und die Steigungβ2\beta_{2}. Dieses Verfahren steht im Einklang mit den Leitlinien der WHO [9] und ICH [2].
Der Begriff OOT wurde von der britischen Arzneimittel- und Gesundheitsbehörde (MHRA) als ein Stabilitätstestergebnis definiert, das nicht dem erwarteten Trend folgt, weder im Vergleich zu anderen Stabilitätschargen noch im Hinblick auf frühere Ergebnisse, die während einer Stabilitätsstudie gesammelt wurden [8]. Der Begriff OOS wurde von der MHRA als ein Testergebnis definiert, das nicht den vorgegebenen Akzeptanzkriterien entspricht, oder als ein Testergebnis, das außerhalb der festgelegten Akzeptanzkriterien liegt, die in offiziellen Kompendien und/oder durch Unternehmensdokumentationen festgelegt wurden [8 ]. Bisher gibt es keine formale Definition des Begriffs OOE. Die ECA AQCWG schlägt vor (sowohl für qualitative als auch für quantitative Tests), OOE-Ergebnisse als anomale, unerwartete oder ungewöhnliche Ergebnisse zu definieren, die weder als außerhalb der Spezifikation (OOS) noch als OOT klassifiziert werden können [7].
RCR-Modell
Das vereinfachte RCR-Modell kann wie folgt geschrieben werden:
𝐲ij=𝛃1ich+𝛃2ich•𝐭ij+𝛆ij\mathbf{y}_{\text{ij}} = \mathbf{\beta}_{1i} + \mathbf{\beta}_{2i} \bullet \mathbf{t}_{\text{ij}} + \mathbf{\varepsilon}_{\text{ij}}
Wo𝐲ich\mathbf{y}_{i}ist einNich×1n_{i} \times 1Vektor, der die darstelltichThi^{\text{th}}ChargenNichn_{i}wiederholte Messungen (woJ=1,⋯,Nichj = 1,\ \cdots,\ n_{i}, mitNichn_{i}Stellt die Gesamtzahl der wiederholten Messungen einer Charge darichich) auf die Antwortvariable (z. B. Gehalt [%], Summe der Verunreinigungen [%] oder Auflösung [%]),𝛃1ich\mathbf{\beta}_{1i}Und𝛃2ich\mathbf{\beta}_{2i}sind Vektoren der stapelspezifischen Achsenabschnitte bzw. Steigungen,𝐭ich\mathbf{t}_{i}ist derichThi^{\text{th}}Zeitvektor des Batches (z. B. [Monat]) und𝛆ich\mathbf{\varepsilon}_{i}ist einNich×1n_{i} \times 1Vektor vonNichn_{i}zufällige Fehler. Voraussetzung für dieses RCR-Modell ist ein linearer Zusammenhang zwischen der Antwort und der erklärenden Variablen. Sollte die Beziehung nicht linear sein, muss vor der RCR-Modellierung eine entsprechende Transformation angewendet werden.
Es wird davon ausgegangen, dass jederεij\varepsilon_{\text{ij}}stammt aus einer univariaten Normalpopulation mit Mittelwert Null und Varianzσ2\sigma^{2}, und allesεij\varepsilon_{\text{ij}}sind unabhängig voneinander (bedingte Unabhängigkeit) und von den Modellkoeffizientenβ1ich\beta_{1i}Undβ2ich\beta_{2i}. Diese Annahme ist sinnvoll, da es höchst unwahrscheinlich ist, dass die Variabilität der Analysemethode von der getesteten Charge oder dem Zeitpunkt der Testdurchführung abhängt. Es wird weiterhin davon ausgegangen, dass der Regressionskoeffizientenvektor jeder Charge𝛃ich\mathbf{\beta}_{i}, ist unabhängig von ihren und den Zufallsfehlervektoren aller anderen Chargen,𝛆k\mathbf{\varepsilon}_{k}.
Die RCR-Modellierung umfasst drei Schritte.
Schritt a) Anpassen eines einfachen linearen Regressionsmodells an die Daten jeder Charge
Die mit dem Batch verknüpften Datenichichwerden mit bezeichnet(Tij,jij)\left( t_{\text{ij}},y_{\text{ij}} \right), Wojijy_{\text{ij}}repräsentiert dieichThi^{\text{th}}gemessene Reaktion der Charge zum ZeitpunktTJt_{j}, WoJ=1,⋯,Nichj = 1,\ \cdots,\ n_{i}. Die einzelnen ZeitpunkteTJt_{j}kann zwischen den Chargen unterschiedlich sein, ebenso wie die Gesamtzahl der ZeitpunkteNichn_{i}. Die Designmatrix𝐗ich\mathbf{X}_{i}für Chargeichichkann wie folgt in Matrixform geschrieben werden.
𝐗ich=[1Tich1⋮⋮1TichNich]\mathbf{X}_{i} = \begin{bmatrix} 1 & t_{i1} \\ \vdots & \vdots \\ 1 & t_{in_{i}} \\ \end{bmatrix}
Diese Matrix wird normalisiert und mit bezeichnet𝐌ich\mathbf{M}_{i}.
𝐌ich=(𝐗ich'𝐗ich)−1\mathbf{M}_{i} = \left( \mathbf{X}_{i}^{'}\mathbf{X}_{i} \right)^{- 1}
Die Schätzungen für die Abschnitteβich1\beta_{i1}, die Pistenβich2\beta_{i2}, der „mittlere quadratische Fehler“ der RegressionMSEich=σichj^2\text{MSE}_{i} = \sigma_{i\hat{y}}^{2}und die Freiheitsgradedfich=(Nich−2)\text{df}_{i} = \left( n_{i} - 2 \right)verknüpft mitMSEich\text{MSE}_{i}werden durch Anpassen eines einfachen linearen Regressionsmodells an die Daten jeder Charge erhalten. Die Abschnitte und Steigungen(𝛃1,𝛃2)'\left( \mathbf{\beta}_{1},\mathbf{\beta}_{2} \right)^{'}werden geschätzt von
𝐛ich=(𝐗ich'𝐗ich)−1𝐗ich'𝐲ich\mathbf{b}_{i} = \left( \mathbf{X}_{i}^{'}\mathbf{X}_{i} \right)^{- 1}\mathbf{X}_{ i}^{'}\mathbf{y}_{i}.
Schritt b) Schätzung der Fehler-Varianz-Kovarianz-Matrix
Die Schätzung der Fehler-Varianz-Kovarianz-Matrix der Zufallskoeffizienten beginnt mit der Schätzung der gepoolten KoeffizientenMSE\text{MSE}aller Chargen, d.hMSESchwimmbad\text{MSE}_{\text{pool}}, folgendermaßen.
MSESchwimmbad=σ^2=∑ich=1Ndfich•MSEich∑ich=1Bdfich\text{MSE}_{\text{pool}} = {\hat{\sigma}}^{2} = \frac{\sum_{i = 1}^{n}{\text{df}_{i } \bullet \text{MSE}_{i}}}{\sum_{i = 1}^{B}\text{df}_{i}}
Der Zähler in dieser Gleichung kann wie folgt ausgedrückt werden.
dfich•MSEich=SSEich=𝛆^ich'𝛆^ich=(𝐲ich−𝐗ich𝐛ich)'(𝐲ich−𝐗ich𝐛ich)\text{df}_{i} \bullet \text{MSE}_{i} = \text{SSE}_{i} = {\hat{\mathbf{\varepsilon}}}_{i}^{' }{\hat{\mathbf{\varepsilon}}}_{i} = \left( \mathbf{y}_{i} - \mathbf{X}_{i}\mathbf{b}_{i} \ rechts)^{'}\left( \mathbf{y}_{i} - \mathbf{X}_{i}\mathbf{b}_{i} \right)
Die Stichproben-Varianz-Kovarianz-Matrix𝐒bb\mathbf{S}_{\text{bb}}der geschätzten Abschnitte und Steigungen(𝛃1,𝛃2)'\left( \mathbf{\beta}_{1},\mathbf{\beta}_{2} \right)^{'}wird wie folgt berechnet.
𝐒bb=1N−1∑ich=1N(𝐛ich−β^ULS)(𝐛ich−β^ULS)'\mathbf{S}_{\text{bb}} = \frac{1}{n - 1}\sum_{i = 1}^{n}\left( \mathbf{b}_{i} - {\ hat{\beta}}_{\text{ULS}} \right)\left( \mathbf{b}_{i} - {\hat{\beta}}_{\text{ULS}} \right)^ {'}
Woβ^ULS=1N∑ich=1N𝐛ich{\hat{\beta}}_{\text{ULS}} = \frac{1}{n}\sum_{i = 1}^{n}\mathbf{b}_{i}, also der mittlere Vektor der Koeffizienten, also Achsenabschnitte und Steigungen (ULS steht für „Unweighted Least-Squares“). Nun zur Varianz-Kovarianz-Matrix𝚺^ββ{\hat{\mathbf{\Sigma}}}_{\text{ββ}}lässt sich wie folgt abschätzen.
𝚺^ββ=𝐒bb−σ^2N•∑ich=1N(𝐗ich'𝐗ich)−1=𝐒bb−σ^2•𝐌¯=[σβ12σβ1β2σβ1β2σβ22]{\hat{\mathbf{\Sigma}}}_{\text{ββ}} = \mathbf{S}_{\text{bb}} - \frac{{\hat{\sigma}}^{2} }{n} \bullet \sum_{i = 1}^{n}\left( \mathbf{X}_{i}^{'}\mathbf{X}_{i} \right)^{- 1} = \mathbf{S}_{\text{bb}} - {\hat{\sigma}}^{2} \bullet \overset{\overline{}}{\mathbf{M}} = \begin{bmatrix} \sigma_{\beta_{1}}^{2} & \sigma_{\beta_{1}\beta_{2}} \\ \sigma_{\beta_{1}\beta_{2}} & \sigma_{\beta_ {2}}^{2} \\ \end{bmatrix}
Wo𝐌¯=1N•∑ich=1N𝐌ich\overset{\overline{}}{\mathbf{M}} = \frac{1}{n} \bullet \sum_{i = 1}^{n}\mathbf{M}_{i}, also die mittlere Varianz-Kovarianz-Matrix des Modells. Die Fehlervarianzσ^2{\hat{\sigma}}^{2}schätzt die Varianz der Analysemethode. Die Intercept-Varianzkomponenteσβ12\sigma_{\beta_{1}}^{2}stellt die Varianz der Reaktion innerhalb der Charge dar, die bei der Produktfreigabe beobachtet wurde und ausschließlich auf den Herstellungsprozess zurückzuführen ist, d. h. unter Ausschluss der Varianz, die auf die Analysemethode zurückzuführen ist. Die Steigungsvarianzkomponenteσβ22\sigma_{\beta_{2}}^{2}stellt die Varianz der Abbauraten zwischen den Chargen dar.
Da die Varianz-Kovarianz-Matrix𝚺^ββ{\hat{\mathbf{\Sigma}}}_{\text{ββ}}Wird die Differenz zweier Matrizen geschätzt, ist das Ergebnis möglicherweise nicht positiv-definitiv, d. h. der Achsenabschnitt und/oder die Steigungsvarianzkomponente(n) können negativ sein. Eine mögliche Lösung hierfür ist das Ersetzen der negativen Werte durch 0. Dies ist ein einfacher Erste-Hilfe-Ansatz für negative Varianzschätzungen und entspricht der Umwandlung eines Zufallseffekts in einen festen Effekt. Für den Fall, dass beide Varianzen Null sind, entspricht das RCR-Modell dem OLS-Modell (Ordinary Least Squares).
Schritt c) Schätzen des Koeffizientenmittelwertvektors durch einen gewichteten Kleinste-Quadrate-Schätzer (WLS).
Die Schätzung des Koeffizientenmittelwertvektors beginnt mit der Berechnung der Schätzung von𝐖ich\mathbf{W}_{i},
𝐖ich=(𝚺^ββ+σ^2•𝐌ich)−1\mathbf{W}_{i} = \left( {\hat{\mathbf{\Sigma}}}_{\text{ββ}} + {\hat{\sigma}}^{2} \bullet \mathbf {M}_{i} \right)^{- 1}
was dem Kehrwert der Varianz der Regressionsparameterschätzung für entsprichtichThi^{\text{th}}Charge. Basierend auf dieser Gleichung2×ich2 \times iDie dimensionale Matrix der Schätzungen des Achsenabschnitts und des Steigungskoeffizienten, d. h. die gewichtete Schätzung der kleinsten Quadrate, wird nun durch die folgende Gleichung erhalten:
𝛃^WLS=(∑ich=1N𝐖ich)−1(∑ich=1N𝐖ich𝐛ich)=𝛀(∑ich=1N𝐖ich𝐛ich){\hat{\mathbf{\beta}}}_{\text{WLS}} = \left( \sum_{i = 1}^{n}\mathbf{W}_{i} \right)^{- 1}\left( \sum_{i = 1}^{n}\mathbf{W}_{i}\mathbf{b}_{i} \right) = \mathbf{\Omega}\left( \sum_{ i = 1}^{n}\mathbf{W}_{i}\mathbf{b}_{i} \right)
Wo𝛀\mathbf{\Omega}ist eine Schätzung für die Varianz des gewichteten Kleinste-Quadrate-Schätzers. Der Durchschnitt der Schnittpunktschätzungen stellt die über den Herstellungsprozess gemittelte Reaktion bei der Produktfreigabe dar, und der Durchschnitt der Steigungsschätzungen stellt die gemeinsame Steigung dar.
Toleranzintervall (TI) für das RCR-Modell
Die RCR-Modellkoeffizientenβ1\beta_{1}Undβ2\beta_{2}Beschreiben Sie den allgemeinen Trend, also den gemeinsamen Trend der historischen Chargen. Mit Hilfe der Schätzung kann der TI für das RCR-Modell berechnet werdenj^J{\hat{y}}_{j}für die Regressionsgerade und ihren Standardfehlerσj^,RCR\sigma_{\hat{y},RCR}nach der von Scholz und Vangel [5] vorgeschlagenen Methode wie folgt. Ihre Methode nutzt das Konzept der effektiven Stichprobengröße.
j^J±k•σj^,RCR{\hat{y}}_{j} \pm k \bullet \sigma_{\hat{y},\text{RCR}}
Der Fehlertermσj^,RCR\sigma_{\hat{y},RCR}wird berechnet durch
σj^,RCR=D(𝐭(𝚺^ββ+1N𝛀)𝐭'+σ^2)\sigma_{\hat{y},RCR} = D\left( \sqrt{\mathbf{t}\left( {\hat{\mathbf{\Sigma}}}_{\text{ββ}} + \frac {1}{n}\mathbf{\Omega} \right)\mathbf{t}^{\mathbf{'}}\mathbf{+}{\hat{\sigma}}^{2}} \right)
Wo𝐭=[1T1⋮⋮1Tk],kϵN\mathbf{t} = \begin{bmatrix} 1 & t_{1} \\ \vdots & \vdots \\ 1 & t_{k} \\ \end{bmatrix},\ k\ \epsilon\mathbb{\text {\ N}}, UndDDist die Diagonale des Arguments. Der Faktorkkist gegeben durch
k=N−1N•1N*−1•TN*−1,zP•N*,γk = \sqrt{\frac{n - 1}{n}} \bullet \frac{1}{\sqrt{n^{*} - 1}} \bullet t_{n^{*} - 1,\ z_ {p} \bullet \sqrt{n^{*}},\gamma}
wo der FaktorTN*−1,zP•N*,γt_{n^{*} - 1,z_{p} \bullet \sqrt{n^{*}},\gamma}ist derγ\GammaQuantil der T Verteilung mitN*−1n^{*} - 1Freiheitsgrade und der NichtzentralitätsparameterzP•N*z_{p} \bullet \sqrt{n^{*}}, WozPz_{p}ist derPPQuantil der Standardnormalverteilung. Der ParameterN*n^{*}ist die effektive Stichprobengröße gegeben durch
N*=[σB2σB2+σe2•∑ich=1NB(NichN)2+1N•σe2σB2+σe2]−1=[ρ•1F+1+(1−ρ)•1N]−1{n^{*} = \left\lbrack \frac{\sigma_{b}^{2}}{\sigma_{b}^{2} + \sigma_{e}^{2}} \bullet \sum_{ i = 1}^{n_{b}}\left( \frac{n_{i}}{n} \right)^{2} + \frac{1}{n} \bullet \frac{\sigma_{e }^{2}}{\sigma_{b}^{2} + \sigma_{e}^{2}} \right\rbrack}^{- 1} = \left\lbrack \rho \bullet \frac{1 }{f + 1} + \left( 1 - \rho \right) \bullet \frac{1}{n} \right\rbrack^{- 1}
wo der ParameterFFund das Varianzverhältnisρ\rhowerden definiert durch
| F=1∑ich=1NB(NichN)2−1f = \frac{1}{\sum_{i = 1}^{n_{b}}\left( \frac{n_{i}}{n} \right)^{2}} - 1 |
ρ=σB2σB2+σe2\rho = \frac{\sigma_{b}^{2}}{\sigma_{b}^{2} + \sigma_{e}^{2}} |
WoσB2\sigma_{b}^{2}ist die Varianz zwischen den Chargen,σe2\sigma_{e}^{2}ist die Varianz innerhalb der Charge (oder Methodenvarianz),Nichn_{i}ist die Anzahl der Messungen pro Chargeichich, dhich=1,⋯,NBi = 1,\ \cdots,\ n_{b},NBn_{b}ist die Anzahl der historischen Chargen undNNist die Gesamtzahl der Proben, d. hN=∑ich=1NBNichn = \sum_{i = 1}^{n_{b}}n_{i}.
Die TI deckt abP(100%)p\left( 100\% \right)der Bevölkerung mit einer Wahrscheinlichkeit vonγ(100%)\gamma\left( 100\% \right). Das Konzept der effektiven Stichprobengröße berücksichtigt, dass die Daten innerhalb der Chargen stärker korrelieren als die Daten zwischen den Chargen, was die Menge an unabhängigen Informationen verringert. Aus diesem Grund gilt immer:N*≤Nn^{*} \leq n. Der IdealfallN*=Nn^{*} = nwird realisiert, wenn die Daten innerhalb der Charge völlig unkorreliert sind.
Implementierung von RCC / RCR in JMP
Das JSL-Skript, das das RCC/RCR-Verfahren implementiert, ist in mehrere Teile gegliedert.
Zunächst müssen die Referenz- und Testchargennamen sowie die verschiedenen Variablennamen für die Antwort, die Zeit, die Chargen und die Lagerbedingungen definiert werden.
Das RCR-Modell ist wie oben beschrieben aufgebaut (vereinfacht nach Carter und Yang [1]).
Der TI für das RCR-Modell wird mit der von Scholz und Vangel [5] vorgeschlagenen Methode erstellt.
Es wird ein Berichtsfenster generiert, das die berechneten Parameter in tabellarischer und grafischer Form zusammenfasst.
Beispiel
Zur Beurteilung der Skriptfunktionalität wurden verschiedene Datensätze für neun historische Chargen und eine aktuelle Charge generiert. Der folgende Codeausschnitt führt den Schritt aus A ) der RCR-Modellanpassung, also die Achsenabschnitte (a,𝛃1\mathbf{\beta}_{1}), Steigungen (b,𝛃2\mathbf{\beta}_{2}), (Wurzel) mittlere Fehlerquadrate ((RMSE ) MSE,MSEich\text{MSE}_{i}), Freiheitsgrade (df,dfich\text{df}_{i}) und Anzahl der Beobachtungen (n,Nichn_{i}) desichichHistorische Chargen werden gesammelt und in Längenvektoren gespeichertNBn_{b}.
For( i = 1, i <= n.refBatches, i++,
fm = Fit Model(
Y( :Eval( responseVariable ) ),
Effects( :Month ),
Personality( "Standard Least Squares" ),
Emphasis( "Minimal Report" ),
Where( :Batch == refBatches[i] ),
Invisible
);
fit = fm << Run;
fitr = fit << Report;
a.i[i, 1] = fitr["Parameter Estimates"][Number Col Box( 1 )] << Get( 1 );
b.i[i, 1] = fitr["Parameter Estimates"][Number Col Box( 1 )] << Get( 2 );
RMSE.i[i, 1] = fitr["Summary of Fit"][Number Col Box( 1 )] << Get( 3 );
df.i[i, 1] = fitr["Analysis of Variance"][Number Col Box( 1 )] << Get( 2 );
n.i[i, 1] = fitr["Summary of Fit"][Number Col Box( 1 )] << Get( 5 );
);
For( i = 1, i <= n.refBatches, i++,
MSE.i[i] = RMSE.i[i] ^ 2
);
Schritt B ) beginnt mit der Schätzung der gepoolten MSE (MSE.pool,MSESchwimmbad\text{MSE}_{\text{pool}}). Anschließend wird die mittlere Modell-Varianz-Kovarianz-Matrix (M.bar,𝐌¯\overset{\overline{}}{\mathbf{M}}) wird geschätzt, die dann mit der Stichproben-Varianz-Kovarianz-Matrix (S,𝐒bb\mathbf{S}_{\text{bb}}), um die Varianz-Kovarianz-Matrix (Sigma.hat,𝚺^ββ{\hat{\mathbf{\Sigma}}}_{\text{ββ}}).
ab.i = a.i || b.i; // Matrix of the intercept and slope vectors
S = Covariance( ab.i ); // Sample variance-covariance matrix of the intercepts and slopes
MSE.pool = Sum( E Mult( df.i, MSE.i ) ) / Sum( df.i ); // Pooled MSE
RMSE.pool = Sqrt( MSE.pool );
M.i = J( 2, 2, 0 );
For( i = 1, i <= n.refBatches, i++,
dat << Select All Rows << Invert Row Selection;
dat << Select Where( :Batch == refBatches[i] );
x = dat << Get As Matrix( {"Month"} );
x.length = N Row( x ); // Number of observations
colReprIntcpt = J( x.length, 1, 1 ); // Column of 1 representing the intercept
x = colReprIntcpt || x; // Design matrix of the OLS model
M.i = M.i + Inverse( x` * x );
);
M.bar = M.i / n.refBatches; // Mean model variance-covariance matrix
Sigma.hat = S - MSE.pool * M.bar;
Sigma.hat[Loc( Diag( Sigma.hat ) < 0 )] = 0; // Replace negative values on the diagonal of Sigma.hat by 0.
Im Gleichschritt C ) die RCR-Modellkoeffizienten ab.hat (𝛃^WLS{\hat{\mathbf{\beta}}}_{\text{WLS}}) werden mithilfe des folgenden Codeausschnitts geschätzt.
M.i = J( 2, 2, 0 );
W.i = J( 2, 2, 0 );
For( i = 1, i <= n.refBatches, i++,
dat << Select All Rows << Invert Row Selection;
dat << Select Where( :Batch == refBatches[i] );
x = dat << Get As Matrix( {"Month"} );
colReprIntcpt = J( n.i[i, 1], 1, 1 ); // Column of 1 representing the intercepts
x = colReprIntcpt || x; // Design matrix of the linear model
M.i = M.i + Inverse( x` * x );
W.i = W.i + Inverse( Sigma.hat + MSE.pool * M.i );
);
Omega = Inverse( W.i );
ab.hat = Omega * (W.i * ab.i`);
ab.hat = ab.hat`;
ab.hat.bar = V Mean( ab.hat );
Der nächste Codeausschnitt zeigt die Konstruktion des TI für das RCR-Modell nach Scholz und Vangel [5]. Für die Konstruktion des Intervalls werden die im ab.hat.bar-Vektor gespeicherten durchschnittlichen Schnittpunkt- und Steigungskoeffizientenschätzungen verwendet.
utp = Associative Array( dat:Month ); // Unique time points
time.points = Matrix( utp << Get Keys ); // Vector with (new) time points for which the response is sought
n.new = N Row( time.points ); // Number of data points of the new data set
m.x = J( n.new, 1, 1 ) || time.points; // Design matrix
n = Sum( n.i ); // Total number of data points
df.th = n - 2; // Number of degrees of freedom if only fixed effects are allowed, i.e. if a "common slope, common intercept" model is appropriate.
df = df.th;
variance.ratio = Sigma.hat[1, 1] / (Sigma.hat[1, 1] + MSE.pool);
t.f = 1 / Sum( (df.i / n) ^ 2 ) - 1;
If( Sigma.hat[1, 1] == 0,
df.eff = df,
df.eff = 1 / (variance.ratio / (t.f + 1) + (1 - variance.ratio) / n)
);
// Calculation of the k.eff factor on the basis of the effective number of degrees of freedom.
k.eff = Sqrt( (n - 1) / n ) * 1 / Sqrt( df.eff - 1 ) * t Quantile(
gamma,
(df.eff - 1),
(Normal Quantile( (1 - alpha) ) * Sqrt( df.eff ))
);
t.quantil = t Quantile( (1 - alpha / 2), df.eff );
y.hat = ab.hat.bar[1] + ab.hat.bar[2] * time.points;
LTL = y.hat - k.eff * Vec Diag( Sqrt( m.x * (Sigma.hat + Omega / n.refBatches) * m.x` + MSE.pool ) );
UTL = y.hat + k.eff * Vec Diag( Sqrt( m.x * (Sigma.hat + Omega / n.refBatches) * m.x` + MSE.pool ) );
Im letzten Teil des Skripts werden die Ergebnisse für die Anzeige in einem Berichtsfenster aufbereitet. Ein Beispielbericht ist in Abbildung 2 dargestellt.
Die im Berichtsfenster zusammengefassten Ergebnisse ermöglichen die Beantwortung der zu Beginn von Kapitel 3 gestellten Fragen wie folgt: 1) Da der 18-Monats-Datenpunkt (dh die letzte Messung) der aktuellen Charge außerhalb des an die Daten angepassten TI liegt Aus den historischen Chargen muss geschlossen werden, dass die aktuelle Charge OOE/OOT ist, und 2) da der 18-Monats-Datenpunkt der aktuellen Charge außerhalb des PI der aktuellen Charge liegt, muss gefolgert werden, dass die aktuelle Charge ebenfalls OOE ist / OOT in Bezug auf die aktuelle Charge. Die gleiche Schlussfolgerung sollte bereits bei der vorherigen Zeitstation gezogen werden, obwohl der 12-Monats-Zeitpunkt innerhalb des PI der aktuellen Charge liegt. Da dieser Punkt jedoch außerhalb des an die Daten der historischen Chargen angepassten TI liegt, muss die Gesamtschlussfolgerung an der 12-Monats-Zeitstation gewesen sein, dass es sich um einen OOE/OOT-Punkt handelt.
Wie zu Beginn von Kapitel 3 erwähnt, ist es sehr wahrscheinlich, dass die einzelnen historischen Chargen hinsichtlich ihrer Achsenabschnitte und ihrer Steigungen variieren und dass das RCR-Modell aus diesem Grund das gewöhnliche Modell der kleinsten Quadrate übertrifft. Es können fünf Fälle unterschieden werden: Fall I: keine Achsenabschnittsvariation, keine Steigungsvariation; Fall II: Achsenabschnittsvariation, keine Steigungsvariation; Fall III: keine Achsenabschnittsvariation, Steigungsvariation; Fall IV: Achsenabschnittsvariation, Steigungsvariation; und Fall V: Nichtlinearität. Die in Abbildung 3 zusammengefassten Ergebnisse für alle fünf Fälle. Die Diagramme in Abbildung 3 zeigen, dass das RCR-Modell die Daten in den Fällen besser darstellt, in denen die Achsenabschnitte und/oder Steigungen variieren, und der Basismethode in den Fällen sehr ähnlich ist, in denen keine Achsenabschnitts- und Steigungsvariabilität vorliegt.
Figure_2Figur 2
Abbildung 2 Ausgabe des Skripts zur Implementierung der RCC/RCR-Methode
Das Fenster gliedert sich in die Teile „Historische Chargenbewertung“, „Aktuelle Chargenbewertung (einzelne Modellparameter)“ und die grafische Darstellung, die die historischen und aktuellen Chargendaten zusammenfasst. Die Daten historischer Chargen werden durch blaue Punkte () dargestellt und die Daten der aktuellen Charge durch rote Kreuze (). Der an die Daten der historischen Chargen angepasste TI wird durch das durch die blauen gepunkteten Linien begrenzte Band dargestellt, und der an die Daten der aktuellen Charge angepasste PI (jedoch ohne Einbeziehung der jüngsten Beobachtung) wird durch das durch die roten gestrichelten Linien begrenzte Band dargestellt .
Abbildung 3 Vergleich der RCR-Modellintervalle und der grundlegenden linearen Regressionsmodellintervalle in verschiedenen Situationen
Die Anpassung des RCR-Modells wird durch die blaue durchgezogene Regressionslinie und die blauen gepunkteten Linien des entsprechenden Toleranzintervalls (95 % Konfidenz und 95 % Abdeckung) dargestellt. Die grundlegende Modellanpassung wird durch die violette gestrichelte Regressionslinie und den violetten Farbton des entsprechenden Vorhersageintervalls (95 % Konfidenz) dargestellt, d. h. die Konfidenzgrenzen für einen einzelnen vorhergesagten Wert. Die grauen gestrichelten Linien in Tafel Va stellen die nichtlineare Anpassung dar, die auf der Grundlage der quadrierten Antwort berechnet wurde. Die sechs Panels vergleichen die Intervalle des RCR-Modells und die Intervalle des grundlegenden linearen Regressionsmodells in den folgenden Situationen: Panel I: Fall „keine Achsenabschnittsvariation, keine Steigungsvariation“; Panel II: Fall „Achsenabschnittsvariation, keine Steigungsvariation“; Panel III: Fall „keine Achsenabschnittsvariation, Steigungsvariation“; Panel IV: Fall „Achsenabschnittsvariation, Steigungsvariation“; Panel Va: Fall „Nichtlinearität“; Panel Vb: „Nichtlinearität“-Fall nach Transformation, also Quadrierung, der Antwortvariablen.
Abschluss
Das in diesem Manuskript vorgestellte JMP-Skript ist ein geeignetes und robustes Werkzeug zur Bewertung der Stabilitätsdaten einer aktuellen Charge eines Arzneimittelprodukts im Hinblick auf OOE- und OOT-Ergebnisse. Voraussetzung ist die Verfügbarkeit historischer Stabilitätsdaten von mindestens drei Chargen mit mindestens vier Zeitpunkten jeder dieser Chargen.
Literaturverzeichnis
Carter, RL und Yang, MCK Große Stichprobeninferenz in Regressionsmodellen mit Zufallskoeffizienten. Kommunikation in der Statistik – Theorie und Methoden (1986) 15 (8): 2507-2525. VERKNÜPFUNG
Conover, WJ (1980), Practical Nonparametric Statistics, New York: John Wiley and Sons, Inc.
ICH Guidance Q1A(R2), Stability Testing of New Drug Substances and Product, Version Schritt 4, 6. Februar 2003. VERKNÜPFUNG
Mandel, BJ Regressionskontrolldiagramm. J Qual. Technol (1969) 1 (1): 1-9. VERKNÜPFUNG
Scholz, F. und Vangel, M. Toleranzgrenzen und Cpk-Konfidenzgrenzen unter Batch-Effekten. Veröffentlicht in: Advanced in Stochastic Models for Reliability, Quality and Safety. Herausgegeben von Kahle, W., von Collani, E., Franz, J. und Jensen, U. Birkhäuser, Boston, 1998, 361-379. VERKNÜPFUNG
Shewhart, WA (1939). Statistische Methode aus Sicht der Qualitätskontrolle. (Deming, WIR). Washington, D.C, Die Graduiertenschule, das Landwirtschaftsministerium.
Standardarbeitsanweisung – Leitfaden zur Labordatenverwaltung – Ergebnisse außerhalb der Erwartungen (OOE) und außerhalb des Trends (OOT). Arbeitsgruppe für analytische Qualitätskontrolle der European Compliance Academy (ECA), Christopher Burgess, Draft V 0.3, 2015.
United Kingdom Medicines and Healthcare Products Regulatory Agency (MHRA), Out Of Specification Investigations, Präsentationsnotizen und Delegiertenpaket, 28. August 2013. VERKNÜPFUNG
Technische Berichtsreihe der WHO, Nr. 953, Anhang 2 Stabilitätstests von pharmazeutischen Wirkstoffen und pharmazeutischen Fertigprodukten, 2009. VERKNÜPFUNG