code{white-space: pre;}
Pius Dahinden, PhD, Direttore Scienze analitiche, Tillotts Pharma
Astratto
Da quando la nuova linea guida GMP dell'UE (EudraLex Volume 4) Capitolo 6 (Controllo di qualità) è entrata in vigore nel 2014, l'esecuzione di un'analisi delle tendenze sui dati sulla stabilità dei prodotti farmaceutici è un ulteriore requisito di controllo della qualità analitica. Il gruppo di lavoro sul controllo della qualità analitica (AQCWG) della European Compliance Academy (ECA) ha elaborato una procedura operativa standard per la valutazione dei risultati fuori dalle aspettative (OOE) e fuori dal trend (OOT). Per la valutazione dei dati di stabilità si consiglia di utilizzare la procedura della carta di controllo della regressione (RCC) per il confronto dei lotti attuali con i dati dei lotti storici. Tuttavia, le pendenze e/o le intercetta stimate dai dati storici dei lotti stessi sono soggette a incertezza. L’AQCWG della Corte dei conti europea propone un metodo semplificato di regressione a coefficienti casuali (RCR) che ne tiene conto. Viene presentato uno script JMP di nuova concezione che implementa la procedura RCC/RCR consigliata. Lo script rende semplice l'identificazione dei punti OOE/OOT nei dati di stabilità e fornisce in output tutte le informazioni necessarie, insieme ad un'apposita visualizzazione grafica.
introduzione
I produttori applicano il controllo statistico del processo (SPC) per garantire la qualità degli articoli prodotti e per prevenire perdite finanziarie causate da processi di produzione fuori controllo. Controllo di processo significa che un processo in corso viene regolarmente monitorato e che, qualora uno qualsiasi dei parametri monitorati dovesse presentare un andamento anomalo, vengono adottate misure per riportare il processo sotto controllo. L'SPC è uno strumento che consente ai produttori di rilevare tempestivamente i cambiamenti in un processo, consentendo loro di indagare sui problemi che causano problemi e intraprendere azioni correttive in una fase iniziale. Un potente strumento per il monitoraggio del processo è il metodo della carta di controllo reso popolare da Shewhart [6]. La Figura 1 mostra la vista schematica di una tipica carta di controllo.
A differenza dei processi produttivi in cui non dovrebbe esserci alcun trend, ci sono molti problemi di gestione dei dati con un trend intrinseco. Per l'analisi di problemi di gestione dei dati di questo tipo, il metodo convenzionale della carta di controllo è stato combinato con l'analisi di regressione, e questo approccio è stato denominato da Mandel [4] "carta di controllo della regressione" (RCC). Poiché il controllo limita l'utilizzo degli intervalli di tolleranza (TI), è ragionevole. Per monitorare i dati di stabilità dei prodotti farmaceutici conservati nelle condizioni di conservazione consigliate (ad esempio, 25 °C/60% di umidità relativa), gli RCC vengono utilizzati per monitorare, ad esempio, la degradazione dell'ingrediente farmaceutico attivo o l'accumulo di impurità nel tempo, per supportare la data di scadenza del prodotto, ovvero per confermare la stabilità del prodotto farmaceutico per tutta la durata di conservazione indicata sull'etichetta.
Figure_1Figura 1
Figura 1 Composizione tipica della carta di controllo
Un grafico di controllo solitamente mostra i valori X X o una statistica di diversi valori (ad esempio la media) delle caratteristiche qualitative di un campione rispetto al numero del campione o al tempo. In generale, il grafico contiene una linea centrale che rappresenta il valore medio X ¯ \overset{\overline{}}{X} del processo in controllo. Un presupposto fondamentale è che i dati siano distribuiti normalmente. Due ulteriori linee orizzontali caratteristiche sono i limiti di controllo inferiore e superiore (rispettivamente LCL e UCL) a una distanza di ± 3 deviazioni standard (SD) dalla linea centrale in modo tale che, finché il processo è sotto controllo, il 99,7% delle i punti dati rientreranno in questi limiti a causa di una variazione casuale denominata variazione causa comune. Le linee a una distanza di ± 2 SD dalla linea centrale sono chiamate limiti di avviso inferiore e superiore (rispettivamente LWL e UWL) mentre le linee a una distanza di ± 1 SD dalla linea centrale non hanno un nome specifico. Con l'aiuto di queste linee una carta di controllo può essere suddivisa in zone da C ad A. Le regole per il rilevamento di variazioni di cause speciali che caratterizzano un processo non sotto controllo utilizzano le frequenze delle osservazioni in queste zone come base decisionale.
Procedure e risultati
L'RCC applicato ai dati di stabilità di un prodotto farmaceutico mira a rispondere a due domande: 1) Il lotto attuale è fuori aspettativa (OOE) o fuori tendenza (OOT) in termini di lotti storici (cioè riguardo al TI derivato da dati storici) , e 2) è il punto dati misurato più recentemente del batch corrente OOE in termini di batch corrente (cioè relativo al suo intervallo di previsione (PI))?
Per la valutazione di un trend in termini di domanda 1 sono necessari almeno tre punti dati del lotto attuale. Per la valutazione della domanda 2 sono necessari almeno quattro punti dati perché il punto dati misurato più recentemente non dovrebbe essere utilizzato per il costruzione del PI.
Poiché è molto probabile che i singoli lotti storici varino rispetto alle loro intercettazioni e alle loro pendenze, un modello ordinario dei minimi quadrati (pendenza comune – intercetta comune) potrebbe non essere significativo. Per questo motivo il gruppo di lavoro sul controllo della qualità analitica (AQCWG) della European Compliance Academy (ECA) raccomanda di utilizzare il metodo della "regressione dei coefficienti casuali" (RCR) che tiene conto della variabilità delle intercettazioni e delle pendenze dei singoli lotti [7]. Un modello RCR semplificato (modello Carter e Yang modificato [1]) contiene due parametri sconosciuti, ovvero l'intercetta β 1 \beta_{1} e la pendenza β 2 \beta_{2} . Questa procedura è conforme alle linee guida dell'OMS [9] e dell'ICH [2].
Il termine OOT è stato definito dalla Medicines and Healthcare Products Regulatory Agency (MHRA) del Regno Unito come un risultato del test di stabilità che non segue l'andamento previsto, né rispetto ad altri lotti di stabilità né rispetto ai risultati precedenti raccolti durante uno studio di stabilità [8]. Il termine OOS è stato definito dall'MHRA come un risultato di test che non è conforme ai criteri di accettazione predeterminati o un risultato di test che non rientra nei criteri di accettazione stabiliti stabiliti nei compendi ufficiali e/o nella documentazione aziendale [8 ]. Finora non esiste una definizione formale del termine OOE. L'AQCWG dell'ECA propone (sia per i test qualitativi che quantitativi) di definire i risultati OOE come risultati anomali, inaspettati o insoliti che non possono essere classificati né come fuori specifica (OOS) né come OOT [7].
Modello RCR
Il modello RCR semplificato può essere scritto come:
𝐲ij=𝛃1i+𝛃2i•𝐭ij+𝛆ij\mathbf{y}_{\text{ij}} = \mathbf{\beta}_{1i} + \mathbf{\beta}_{2i} \bullet \mathbf{t}_{\text{ij}} + \mathbf{\varepsilon}_{\text{ij}}
Dove 𝐲 io \mathbf{y}_{i} è un N io × 1 n_{i} \volte 1 vettore che rappresenta il io th io^{\text{th}} lotto N io n_{i} misurazioni ripetute (dove J = 1 , ⋯ , N io j = 1,\ \cdots,\ n_{i} , con N io n_{i} che rappresenta il numero totale di misurazioni ripetute del lotto io io ) sulla variabile di risposta (ad esempio dosaggio [%], somma delle impurità [%] o dissoluzione [%]), 𝛃 1 io \mathbf{\beta}_{1i} E 𝛃 2 io \mathbf{\beta}_{2i} sono vettori rispettivamente delle intercetta e delle pendenze specifiche del batch, 𝐭 io \mathbf{t}_{i} è il io th io^{\text{th}} il vettore temporale del batch (ad esempio [Mese]) e 𝛆 io \mathbf{\varepsilon}_{i} è un N io × 1 n_{i} \volte 1 vettore di N io n_{i} errori casuali. Un prerequisito per questo modello RCR è una relazione lineare tra la risposta e la variabile esplicativa. Se la relazione non dovesse essere lineare è necessario applicare un'opportuna trasformazione prima di eseguire la modellazione RCR.
Si presume che ciascuno ε ij \varepsilon_{\text{ij}} proviene da una popolazione normale univariata con media zero, varianza σ 2 \sigma^{2} , e tutto ε ij \varepsilon_{\text{ij}} sono indipendenti tra loro (indipendenza condizionata) e dai coefficienti del modello β 1 io \beta_{1i} E β 2 io \beta_{2i} . Questa ipotesi è ragionevole perché è altamente improbabile che la variabilità del metodo analitico dipenda dal lotto da testare o dal momento in cui viene eseguito il test. Si presuppone inoltre che il vettore dei coefficienti di regressione di ciascun batch, 𝛃 io \mathbf{\beta}_{i} , è indipendente dai loro vettori di errori casuali e da tutti gli altri batch, 𝛆 K \mathbf{\varepsilon}_{k} .
La modellazione RCR comprende tre fasi.
Passaggio a) Adattare un semplice modello di regressione lineare ai dati di ciascun batch
I dati associati al batch io io sono indicati con ( T ij , sì ij ) \sinistra( t_{\text{ij}},y_{\text{ij}} \right) , Dove sì ij y_{\text{ij}} rappresenta il io th io^{\text{th}} la risposta misurata del batch in un determinato momento T J t_{j} , Dove J = 1 , ⋯ , N io j = 1,\ \cdots,\ n_{i} . I singoli punti temporali T J t_{j} può differire tra i lotti, così come il numero totale di punti temporali N io n_{i} . La matrice progettuale 𝐗 io \mathbf{X}_{i} per lotto io io può essere scritta in forma matriciale come segue.
𝐗i=[1ti1⋮⋮1tini]\mathbf{X}_{i} = \begin{bmatrix}1&t_{i1}\\\vdots&\vdots\\1&t_{in_{i}}\\\end{bmatrix}
Questa matrice è normalizzata e designata da 𝐌 io \mathbf{M}_{i} .
𝐌i=(𝐗i′𝐗i)−1\mathbf{M}_{i} = \left( \mathbf{X}_{i}^{'}\mathbf{X}_{i} \right)^{- 1}
Le stime per le intercettazioni β io 1 \beta_{i1} , le piste β io 2 \beta_{i2} , l'"errore quadratico medio" della regressione MSE io = σ io sì ^ 2 \text{MSE}_{i} = \sigma_{i\hat{y}}^{2} e i gradi di libertà df io = ( N io − 2 ) \text{df}_{i} = \sinistra( n_{i} - 2 \destra) Associato a MSE io \text{MSE}_{i} si ottengono adattando un semplice modello di regressione lineare ai dati di ciascun lotto. Le intercettazioni e le pendenze ( 𝛃 1 , 𝛃 2 ) ' \left( \mathbf{\beta}_{1},\mathbf{\beta}_{2} \right)^{'} sono stimati da
𝐛i=(𝐗i′𝐗i)−1𝐗i′𝐲i\mathbf{b}_{i} = \left( \mathbf{X}_{i}^{'}\mathbf{X}_{i} \right)^{- 1}\mathbf{X}_{ i}^{'}\mathbf{y}_{i}.
Passo b) Stima della matrice varianza-covarianza dell'errore
La stima della matrice di varianza-covarianza dell'errore dei coefficienti casuali inizia con la stima del pool MSE \testo{MSE} di tutti i lotti, ad es MSE piscina \text{MSE}_{\text{pool}} , come segue.
MSEpool=σ^2=∑i=1ndfi•MSEi∑i=1Bdfi\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}}
Il numeratore in questa equazione può essere espresso come segue.
dfi•MSEi=SSEi=𝛆^i′𝛆^i=(𝐲i−𝐗i𝐛i)′(𝐲i−𝐗i𝐛i)\text{df}_{i} \bullet \text{MSE}_{i} = \text{SSE}_{i} = {\hat{\mathbf{\valuepsilon}}}_{i}^{' }{\hat{\mathbf{\varepsilon}}}_{i} = \left( \mathbf{y}_{i} - \mathbf{X}_{i}\mathbf{b}_{i}\ destra)^{'}\sinistra(\mathbf{y}_{i} - \mathbf{X}_{i}\mathbf{b}_{i}\destra)
La matrice di varianza-covarianza campionaria 𝐒 bb \mathbf{S}_{\text{bb}} delle intercettazioni e pendenze stimate ( 𝛃 1 , 𝛃 2 ) ' \left( \mathbf{\beta}_{1},\mathbf{\beta}_{2} \right)^{'} è calcolato come segue.
𝐒bb=1n−1∑i=1n(𝐛i−β^UL)(𝐛i−β^UL)′\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)^ {'}
where β^UL=1n∑i=1n𝐛i{\hat{\beta}}_{\text{ULS}} = \frac{1}{n}\sum_{i = 1}^{n}\mathbf{b}_{i}, i.e. the mean vector of the coefficients, i.e. intercepts and slopes (ULS stands for "Unweighted Least-Squares"). Now, the variance-covariance matrix 𝚺^BB{\hat{\mathbf{\Sigma}}}_{\text{ββ}} can be estimated as follows.
𝚺^BB=𝐒bb−σ^2n•∑i=1n(𝐗i′𝐗i)−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 \translated{\overline{}}{\mathbf{M}} = \begin{bmatrix} } \sigma_{\beta_{1}}^{2} & \sigma_{\beta_{1}\beta_{2}} \\\sigma_{\beta_{1}\beta_{2}} & \sigma_{\ beta_ {2}}^{2} \\\end{bmatrice}
Dove 𝐌 ¯ = 1 N • ∑ io = 1 N 𝐌 io \overset{\overline{}}{\mathbf{M}} = \frac{1}{n} \bullet \sum_{i = 1}^{n}\mathbf{M}_{i} , ovvero la matrice media della varianza-covarianza del modello. La varianza dell'errore σ ^ 2 {\hat{\sigma}}^{2} stima la varianza del metodo analitico. La componente di varianza dell'intercetta σ β 1 2 \sigma_{\beta_{1}}^{2} rappresenta la varianza all'interno del lotto della risposta osservata al rilascio del prodotto dovuta esclusivamente al processo di produzione, escludendo cioè la varianza dovuta al metodo analitico. La componente di varianza della pendenza σ β 2 2 \sigma_{\beta_{2}}^{2} rappresenta la varianza tra lotti dei tassi di degradazione.
Since the variance-covariance matrix 𝚺^BB{\hat{\mathbf{\Sigma}}}_{\text{ββ}} is estimated calculating the difference of two matrices, the result may not be positive-definite, i.e. the intercept and / or the slope variance component(s) may be negative. One possible remedy to this is replacing the negative value(s) with 0. This is a simple first-aid approach for negative variance estimates and is equivalent to converting a random effect into a fixed effect. In case that both variances are zero the RCR model corresponds to the ordinary least squares (OLS) model.
Passo c) Stima del vettore della media dei coefficienti mediante uno stimatore dei minimi quadrati pesati (WLS).
La stima del vettore media dei coefficienti inizia con il calcolo della stima di 𝐖 io \mathbf{W}_{i} ,
𝐖i=(𝚺^BB+σ^2•𝐌i)−1\mathbf{W}_{i} = \left( {\hat{\mathbf{\sigma}}}_{\text{ββ}} + {\hat{\sigma}}^{2} \bullet \mathbf {M}_{i}\destra)^{-1}
che corrisponde all'inverso della varianza della stima del parametro di regressione per il io th io^{\text{th}} lotto. Sulla base di questa equazione il 2 × io 2 \volte i la matrice dimensionale delle stime dell’intercetta e dei coefficienti di pendenza, ovvero la stima dei minimi quadrati ponderati, si ottiene ora dalla seguente equazione:
𝛃^WLS=(∑i=1n𝐖i)−1(∑i=1n𝐖i𝐛i)=𝛀(∑i=1n𝐖i𝐛i){\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)
Dove 𝛀 \mathbf{\Omega} è una stima della varianza dello stimatore dei minimi quadrati ponderati. La media delle stime dell'intercetta rappresenta la risposta media al rilascio del prodotto durante il processo di produzione, mentre la media delle stime della pendenza rappresenta la pendenza comune.
Intervallo di tolleranza (TI) per il modello RCR
I coefficienti del modello RCR β 1 \beta_{1} E β 2 \beta_{2} descrivere l'andamento generale, ovvero l'andamento comune dei lotti storici. Il TI per il modello RCR può essere calcolato con l'ausilio della stima sì ^ J {\ha{y}}_{j} per la retta di regressione e il suo errore standard σ sì ^ , R C R \sigma_{\hat{y},RCR} secondo il metodo proposto da Scholz e Vangel [5] come segue. Il loro metodo si avvale del concetto di dimensione effettiva del campione.
y^j±k•σy^,RCR{\hat{y}}_{j} \pm k \bullet \sigma_{\hat{y},\text{RCR}}
Il termine di errore σ sì ^ , R C R \sigma_{\hat{y},RCR} è calcolato da
σy^,RCR=D(𝐭(𝚺^BB+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)
Dove H = [ 1 T 1 ⋮ ⋮ 1 T K ] , 1999 . K ϵ DI \mathbf{t} = \begin{bmatrix}1 & t_{1}\\\vdots&\vdots\\1 & t_{k}\\end{bmatrix},\k\ \epsilon\mathbb{\text {\ DI}} , E D D è la diagonale dell'argomento. Il fattore K K è dato da
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}
dove il fattore T N * − 1 , z P • N * , γ t_{n^{*} - 1,z_{p} \bullet \sqrt{n^{*}},\gamma} è il γ \gamma quantile della distribuzione t con N * − 1 n^{*} - 1 gradi di libertà e il parametro di non centralità z P • N * z_{p} \bullet \sqrt{n^{*}} , Dove z P z_{p} è il P P quantile della distribuzione normale standardizzata. Il parametro N * n^{*} è la dimensione effettiva del campione data da
n*=[σb2σb2+σe2•∑i=1nb(nin)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}}\sinistra( \frac{n_{i}}{n} \destra)^{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}
dove il parametro F F e il rapporto di varianza ρ \rho sono definiti da
| f=1∑i=1nb(nin)2−1f = \frac{1}{\sum_{i = 1}^{n_{b}}\sinistra( \frac{n_{i}}{n} \right)^{2}} - 1 |
ρ=σb2σb2+σe2\rho = \frac{\sigma_{b}^{2}}{\sigma_{b}^{2} + \sigma_{e}^{2}} |
Dove σ B 2 \sigma_{b}^{2} è la varianza tra lotti, σ e 2 \sigma_{e}^{2} è la varianza all'interno del lotto (o varianza del metodo), N io n_{i} è il numero di misurazioni per lotto io io , cioè io = 1 , ⋯ , N B i = 1,\ \cdots,\ n_{b} , N B n_{b} è il numero di batch storici e N N è il numero totale di campioni, vale a dire N = ∑ io = 1 N B N io n = \somma_{i = 1}^{n_{b}}n_{i} .
Le coperture TI P ( 100 % ) p\sinistra( 100\%\destra) della popolazione con una probabilità pari a γ ( 100 % ) \gamma\sinistra( 100\% \destra) . Il concetto di dimensione effettiva del campione tiene conto del fatto che i dati intra-batch sono più correlati rispetto ai dati tra batch, il che diminuisce la quantità di informazioni indipendenti. Per questo motivo vale sempre quanto segue: N * ≤ N n^{*} \leq n . Il caso ideale N * = N n^{*} = n si realizza se i dati intra-batch sono totalmente non correlati.
Implementazione di RCC/RCR in JMP
Lo script JSL che implementa la procedura RCC/RCR è strutturato in più parti.
Innanzitutto devono essere definiti i nomi dei lotti di riferimento e di prova e i vari nomi delle variabili per la risposta, l'ora, i lotti e le condizioni di conservazione.
Il modello RCR è costruito (Carter e Yang semplificato [1]) come delineato sopra.
Il TI per il modello RCR è costruito utilizzando il metodo proposto da Scholz e Vangel [5].
Viene generata una finestra di report che riassume i parametri calcolati in forma tabellare e grafica.
Esempio
Per la valutazione della funzionalità dello script sono stati generati diversi set di dati per nove lotti storici e un lotto attuale. Il seguente frammento di codice esegue il passaggio a ) dell'adattamento del modello RCR, ovvero le intercetta (a, 𝛃 1 \mathbf{\beta}_{1} ), pendenze (b, 𝛃 2 \mathbf{\beta}_{2} ), (radice) errori quadratici medi ((RMSE ) MSE, MSE io \text{MSE}_{i} ), gradi di libertà (df, df io \text{df}_{i} ) e numero di osservazioni (n, N io n_{i} ) del io io i batch storici vengono raccolti e archiviati in vettori di lunghezza N B n_{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
);
Step b) starts with estimating the pooled MSE (MSE.pool, MSEpool\text{MSE}_{\text{pool}}). Subsequently, the mean model variance-covariance matrix (M.bar, 𝐌¯\overset{\overline{}}{\mathbf{M}}) is estimated, which is then combined with the sample variance-covariance matrix (S, 𝐒bb\mathbf{S}_{\text{bb}}) to obtain the variance-covariance matrix (Sigma.hat, 𝚺^BB{\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.
Nella fase c ) i coefficienti del modello RCR ab.hat ( 𝛃 ^ WLS {\hat{\mathbf{\beta}}}_{\text{WLS}} ) sono stimati con l'aiuto del seguente frammento di codice.
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 );
Il prossimo frammento di codice mostra la costruzione del TI per il modello RCR secondo Scholz und Vangel [5]. Per la costruzione dell'intervallo vengono utilizzate le stime dell'intercetta media e del coefficiente di pendenza memorizzate nel vettore ab.hat.bar.
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 ) );
Nell'ultima parte dello script vengono preparati i risultati per visualizzarli in una finestra di report. Un report di esempio è mostrato nella Figura 2.
I risultati riepilogati dalla finestra del report consentono di rispondere alle domande poste all'inizio del capitolo 3 come segue: 1) poiché il punto dati di 18 mesi (cioè la misurazione più recente) del lotto corrente si trova al di fuori del TI adattato ai dati di dei lotti storici si deve concludere che il lotto corrente è OOE/OOT e 2) poiché il punto dati di 18 mesi del lotto corrente non rientra nel PI del lotto corrente si deve concludere che anche il lotto corrente è OOE /OOT in termini di batch corrente. Si dovrebbe trarre la stessa conclusione già alla stazione temporale precedente, sebbene il punto temporale di 12 mesi rientri nel PI del lotto corrente. Tuttavia, poiché questo punto si trova al di fuori del TI adattato ai dati dei lotti storici, la conclusione generale alla stazione temporale di 12 mesi deve essere stata che si tratta di un punto OOE/OOT.
Come accennato all'inizio del capitolo 3 è molto probabile che i singoli lotti storici varino rispetto alle loro intercettazioni e alle loro pendenze e che per questo motivo il modello RCR surclassa il modello ordinario dei minimi quadrati. Si possono distinguere cinque casi: caso I: nessuna variazione di intercetta, nessuna variazione di pendenza; caso II: variazione di intercetta, nessuna variazione di pendenza; caso III: nessuna variazione di intercetta, variazione di pendenza; caso IV: variazione di intercetta, variazione di pendenza; e caso V: non linearità. I risultati riepilogati nella Figura 3 per tutti e cinque i casi. I grafici in Figura 3 mostrano che il modello RCR rappresenta meglio i dati nei casi in cui le intercettazioni e/o le pendenze variano ed è molto simile al metodo base nei casi in cui non vi è intercetta e variabilità della pendenza.
Figure_2Figura 2
Figura 2 Output dello script che implementa il metodo RCC/RCR
La finestra è suddivisa nelle parti "Valutazione batch storico", "Valutazione batch corrente (parametri del modello individuale)" e la visualizzazione grafica che riassume i dati storici e attuali del batch. I dati dei lotti storici sono rappresentati da punti blu () e i dati del lotto corrente da croci rosse (). Il TI adattato ai dati dei lotti storici è rappresentato dalla fascia delimitata dalle linee tratteggiate blu e il PI adattato ai dati del lotto corrente (ma senza includere l'osservazione più recente) dalla fascia delimitata dalle linee tratteggiate rosse .
Figura 3 Confronto tra gli intervalli del modello RCR e gli intervalli del modello di regressione lineare di base in diverse situazioni
L'adattamento del modello RCR è rappresentato dalla linea di regressione continua blu e dalle linee tratteggiate blu dell'intervallo di tolleranza corrispondente (confidenza al 95% e copertura al 95%). L'adattamento del modello di base è rappresentato dalla linea di regressione tratteggiata viola e dalla sfumatura viola del corrispondente intervallo di previsione (confidenza al 95%), ovvero i limiti di confidenza per un singolo valore previsto. Le linee tratteggiate grigie nel pannello Va rappresentano l'adattamento non lineare calcolato sulla base della risposta quadrata. I sei pannelli confrontano gli intervalli del modello RCR e gli intervalli del modello di regressione lineare di base nelle seguenti situazioni: Pannello I: caso "nessuna variazione di intercetta, nessuna variazione di pendenza"; Riquadro II: caso "variazione di intercetta, nessuna variazione di pendenza"; Riquadro III: caso "nessuna variazione di intercetta, variazione di pendenza"; Riquadro IV: caso "variazione di intercetta, variazione di pendenza"; Pannello Va: caso di "non linearità"; Riquadro Vb: caso di "non linearità" dopo trasformazione, cioè quadratura, della variabile risposta.
Conclusione
Lo script JMP presentato in questo manoscritto è uno strumento adatto e robusto per valutare i dati di stabilità di un lotto corrente di un prodotto farmaceutico rispetto ai risultati OOE e OOT. Un prerequisito è la disponibilità di dati storici sulla stabilità di almeno tre lotti con almeno quattro punti temporali di ciascuno di questi lotti.
Bibliografia
Carter, RL e Yang, MCK Inferenza di grandi campioni in modelli di regressione a coefficienti casuali. Comunicazioni in statistica - Teoria e metodi (1986) 15 (8): 2507-2525. COLLEGAMENTO
Conover, WJ (1980), Statistiche pratiche non parametriche, New York: John Wiley and Sons, Inc.
Guida ICH Q1A(R2), Stability Testing of New Drug Substances and Product, versione fase 4, 6 febbraio 2003. LINK
Mandel, Grafico di controllo della regressione di BJ. J Qual Technol (1969) 1 (1): 1-9. COLLEGAMENTO
Scholz, F. e Vangel, M. Limiti di tolleranza e limiti di confidenza Cpk sotto effetti batch. Pubblicato in: Modelli Stocastici Avanzati per Affidabilità, Qualità e Sicurezza. A cura di Kahle, W., von Collani, E., Franz, J. e Jensen, U. Birkhäuser, Boston, 1998, 361-379. COLLEGAMENTO
Shewhart, WA (1939). Metodo statistico dal punto di vista del controllo di qualità. (Deming, NOI). Washington, DC, The Graduate School, Dipartimento dell'Agricoltura.
Procedura operativa standard – Guida alla gestione dei dati di laboratorio – Risultati fuori dalle aspettative (OOE) e fuori tendenza (OOT). Gruppo di lavoro sul controllo della qualità analitica della European Compliance Academy (ECA), Christopher Burgess, bozza V 0.3, 2015.
Agenzia di regolamentazione dei medicinali e dei prodotti sanitari del Regno Unito (MHRA), Investigazioni fuori specifica, note di presentazione e pacchetto per delegati, 28 agosto 2013. LINK
Serie di rapporti tecnici dell'OMS, n. 953, Allegato 2 Test di stabilità degli ingredienti farmaceutici attivi e dei prodotti farmaceutici finiti, 2009. LINK