code{white-space: pre;}
Pius Dahinden, PhD, Gerente de Ciencias Analíticas, Tillotts Pharma
Abstracto
Desde que entró en vigor en 2014 la nueva directriz GMP de la UE (EudraLex Volumen 4), Capítulo 6 (Control de calidad), realizar un análisis de tendencias sobre los datos de estabilidad de los productos farmacéuticos es un requisito adicional de control de calidad analítico. El Grupo de Trabajo de Control de Calidad Analítico (AQCWG) de la Academia Europea de Cumplimiento (ECA) ha elaborado un procedimiento operativo estándar para la evaluación de resultados fuera de expectativas (OOE) y fuera de tendencia (OOT). Para la evaluación de los datos de estabilidad, se recomienda utilizar el procedimiento de gráfico de control de regresión (RCC) para comparar los lotes actuales con los datos de lotes históricos. Sin embargo, las pendientes y/o intersecciones estimadas a partir de los datos históricos del lote están sujetas a incertidumbre. El ECA AQCWG propone un método de regresión de coeficientes aleatorios (RCR) simplificado que tiene esto en cuenta. Se presenta un script JMP recientemente desarrollado que implementa el procedimiento RCC/RCR recomendado. El script simplifica la identificación de puntos OOE/OOT en datos de estabilidad y proporciona toda la información necesaria en la salida, junto con una visualización gráfica adecuada.
Introducción
Los fabricantes aplican el control estadístico de procesos (SPC) para garantizar la calidad de los artículos producidos y evitar pérdidas financieras causadas por procesos de producción fuera de control. El control de procesos significa que un proceso en ejecución se monitorea de manera rutinaria y que, si alguno de los parámetros monitoreados muestra una tendencia anómala, se toman medidas para volver a poner el proceso bajo control. SPC es una herramienta que permite a los fabricantes detectar tempranamente cambios en un proceso, lo que les permite investigar problemas que causan problemas y tomar acciones correctivas en una etapa temprana. Una herramienta poderosa para el monitoreo de procesos es el método del gráfico de control que fue popularizado por Shewhart [6]. La Figura 1 muestra la vista esquemática de un gráfico de control típico.
A diferencia de los procesos de producción en los que no debería haber ninguna tendencia, existen muchos problemas de gestión de datos con una tendencia inherente. Para el análisis de problemas de gestión de datos de ese tipo, el método de gráfico de control convencional se ha combinado con el análisis de regresión, y Mandel [4] se refirió a este enfoque como "gráfico de control de regresión" (RCC). Como el control limita, es razonable utilizar intervalos de tolerancia (TI). Para monitorear los datos de estabilidad de productos farmacéuticos almacenados en las condiciones de almacenamiento recomendadas (p. ej., 25 °C / 60 % RH), los RCC se utilizan para monitorear, p. ej., la degradación del ingrediente farmacéutico activo o la acumulación de impurezas a lo largo del tiempo, para respaldar la fecha de caducidad del producto, es decir, para confirmar la estabilidad del medicamento durante la vida útil indicada en la etiqueta.
Figure_1Figura 1
Figura 1 Composición típica del gráfico de control
Un gráfico de control generalmente muestra los valores X X o una estadística de varios valores (por ejemplo, la media) de la característica de calidad de una muestra versus el número de muestra o el tiempo. En general, el gráfico contiene una línea central que representa el valor medio. X ¯ \overset{\overline{}}{X} del proceso de control. Un supuesto fundamental es que los datos se distribuyen normalmente. Dos líneas horizontales características adicionales son los límites de control inferior y superior (LCL y UCL, respectivamente) a una distancia de ± 3 desviaciones estándar (SD) de la línea central, de modo que, mientras el proceso esté bajo control, el 99,7% de los los puntos de datos estarán dentro de estos límites debido a una variación aleatoria que se denomina variación de causa común. Las líneas a una distancia de ± 2 SD de la línea central se denominan límites de advertencia inferior y superior (LWL y UWL, respectivamente), mientras que las líneas a una distancia de ± 1 SD de la línea central no tienen un nombre específico. Con la ayuda de estas líneas, un gráfico de control se puede dividir en zonas C a A. Las reglas para la detección de variaciones de causas especiales que caracterizan un proceso que no está bajo control utilizan las frecuencias de observaciones en estas zonas como base para tomar decisiones.
Procedimientos y Resultados
El RCC aplicado a los datos de estabilidad de un producto farmacéutico tiene como objetivo responder dos preguntas: 1) ¿Está el lote actual fuera de las expectativas (OOE) o fuera de la tendencia (OOT) en términos de los lotes históricos (es decir, con respecto al TI derivado de los datos históricos)? y 2) ¿es el punto de datos medido más recientemente del lote actual OOE en términos del lote actual (es decir, con respecto a su intervalo de predicción (PI))?
Se necesitan un mínimo de tres puntos de datos del lote actual para evaluar una tendencia en términos de la pregunta 1. Para la evaluación de la pregunta 2 se necesitan al menos cuatro puntos de datos porque el punto de datos medido más recientemente no debe usarse para la construcción del PI.
Dado que es muy probable que los lotes históricos individuales varíen con respecto a sus interceptos y sus pendientes, un modelo de mínimos cuadrados ordinario (pendiente común – intercepto común) podría no ser significativo. Por esta razón, el Grupo de Trabajo de Control de Calidad Analítico (AQCWG) de la Academia Europea de Cumplimiento (ECA) recomienda hacer uso del método de "regresión de coeficientes aleatorios" (RCR) que tiene en cuenta la variabilidad de las intersecciones y pendientes de los lotes individuales [7]. Un modelo RCR simplificado (modelo modificado de Carter y Yang [1]) contiene dos parámetros desconocidos, es decir, la intercepción b 1 \beta_{1} y la pendiente b 2 \beta_{2} . Este procedimiento está de acuerdo con las directrices de la OMS [9] y la ICH [2].
El término OOT ha sido definido por la Agencia Reguladora de Medicamentos y Productos Sanitarios del Reino Unido (MHRA) como un resultado de una prueba de estabilidad que no sigue la tendencia esperada, ya sea en comparación con otros lotes de estabilidad o con respecto a resultados anteriores recopilados durante un estudio de estabilidad. [8]. El término OOS ha sido definido por la MHRA como un resultado de prueba que no cumple con los criterios de aceptación predeterminados o un resultado de prueba que queda fuera de los criterios de aceptación establecidos que se han establecido en compendios oficiales y/o en la documentación de la empresa [8 ]. Hasta el momento no existe una definición formal del término OOE. El ECA AQCWG propone (tanto para pruebas cualitativas como cuantitativas) definir los resultados OOE como hallazgos anómalos, inesperados o inusuales que no pueden clasificarse ni como fuera de especificación (OOS) ni como OOT [7].
Modelo RCR
El modelo RCR simplificado se puede escribir como
𝐲yo=𝛃1i+𝛃2i•𝐭yo+𝛆yo\mathbf{y}_{\text{ij}} = \mathbf{\beta}_{1i} + \mathbf{\beta}_{2i} \bullet \mathbf{t}_{\text{ij}} + \mathbf{\varepsilon}_{\text{ij}}
dónde 𝐲 i \mathbf{y}_{i} es un norte i × 1 n_ {i} \veces 1 vector que representa el i th yo^{\text{th}} lotes norte i n_ {i} mediciones repetidas (donde j = 1 , ⋯ , norte i j = 1,\ \cdots,\ n_{i} , con norte i n_ {i} que representa el número total de mediciones repetidas del lote i i ) en la variable de respuesta (por ejemplo, ensayo [%], suma de impurezas [%] o disolución [%]), 𝛃 1 i \mathbf{\beta}_{1i} y 𝛃 2 i \mathbf{\beta}_{2i} son vectores de las intersecciones y pendientes específicas del lote, respectivamente, 𝐭 i \mathbf{t}_{i} es el i th yo^{\text{th}} vector de tiempo del lote (por ejemplo, [Mes]), y 𝛆 i \mathbf{\varepsilon}_{i} es un norte i × 1 n_ {i} \veces 1 vector de norte i n_ {i} errores aleatorios. Un requisito previo para este modelo RCR es una relación lineal entre la respuesta y la variable explicativa. Si la relación no debe ser lineal, se debe aplicar una transformación adecuada antes de realizar el modelado RCR.
It is assumed that each εyo\varepsilon_{\text{ij}} comes from a univariate normal population with mean zero, variance σ2\sigma^{2}, and all εyo\varepsilon_{\text{ij}}'s are independent of each other (conditional independence) and of the model coefficients β1i\beta_{1i} and β2i\beta_{2i}. This assumption is reasonable because it is highly improbable that the analytical method variability depends on the batch being tested or the point in time when the testing is executed. It is further assumed that each batch's regression coefficient vector, 𝛃i\mathbf{\beta}_{i}, is independent of their and all other batch's vectors of random errors, 𝛆k\mathbf{\varepsilon}_{k}.
El modelado RCR consta de tres pasos.
Paso a) Ajustar un modelo de regresión lineal simple a los datos de cada lote
The data associated with batch ii are denoted by (tyo,yyo)\left( t_{\text{ij}},y_{\text{ij}} \right), where yyoy_ {\text{ij}} represents the ithi^{\text{th}} batch's measured response at time point tjt_ {j}, where j=1,⋯,nij = 1,\ \cdots,\ n_{i}. The individual time points tjt_ {j} may differ between the batches, and so may the total number of time points nin_{i}. The design matrix 𝐗i\mathbf{X}_{i} for batch ii can be written in matrix form as follows.
𝐗i=[1ti1⋮⋮1tini]\mathbf{X}_{i} = \begin{bmatrix}1&t_{i1}\\\vdots&\vdots\\1&t_{in_{i}}\\\end{bmatrix}
Esta matriz está normalizada y designada por 𝐌 i \mathbf{M}_{i} .
𝐌i=(𝐗i′𝐗i)−1\mathbf{M}_{i} = \left( \mathbf{X}_{i}^{'}\mathbf{X}_{i} \right)^{- 1}
Las estimaciones de las intersecciones. b i 1 \beta_{i1} , las pistas b i 2 \beta_{i2} , el "error cuadrático medio" de la regresión MSE i = σ i y ^ 2 \text{MSE}_{i} = \sigma_{i\hat{y}}^{2} y los grados de libertad df i = ( norte i − 2 ) \text{df}_{i} = \left( n_{i} - 2 \right) asociado con MSE i \text{MSE}_{i} se obtienen ajustando un modelo de regresión lineal simple a los datos de cada lote. Las intersecciones y pendientes. ( 𝛃 1 , 𝛃 2 ) ′ \left( \mathbf{\beta}_{1},\mathbf{\beta}_{2} \right)^{'} son estimados por
𝐛i=(𝐗i′𝐗i)−1𝐗i′𝐲i\mathbf{b}_{i} = \left( \mathbf{X}_{i}^{'}\mathbf{X}_{i} \right)^{- 1}\mathbf{X}_{ i}^{'}\mathbf{y}_{i}.
Paso b) Estimar la matriz de varianza-covarianza del error
La estimación de la matriz de varianza-covarianza del error de los coeficientes aleatorios comienza estimando el conjunto MSE \text{MSE} de todos los lotes, es decir MSE piscina \text{MSE}_{\text{grupo}} , como sigue.
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}}
El numerador de esta ecuación se puede expresar de la siguiente manera.
dfi•MSEi=ESSi=𝛆^i′𝛆^i=(𝐲i−𝐗i𝐛i)′(𝐲i−𝐗i𝐛i)\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}\ derecha)^{'}\left(\mathbf{y}_{i} - \mathbf{X}_{i}\mathbf{b}_{i}\right)
La matriz de varianza-covarianza de la muestra 𝐒 cama y desayuno \mathbf{S}_{\text{bb}} de las intersecciones y pendientes estimadas ( 𝛃 1 , 𝛃 2 ) ′ \left( \mathbf{\beta}_{1},\mathbf{\beta}_{2} \right)^{'} se calcula de la siguiente manera.
𝐒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} - {\ sombrero{\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 𝚺^CAMA Y DESAYUNO{\hat{\mathbf{\Sigma}}}_{\text{ββ}} can be estimated as follows.
𝚺^CAMA Y DESAYUNO=𝐒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{bmatriz}
dónde 𝐌 ¯ = 1 norte • ∑ i = 1 norte 𝐌 i \overset{\overline{}}{\mathbf{M}} = \frac{1}{n} \bullet \sum_{i = 1}^{n}\mathbf{M}_{i} , es decir, la matriz de varianza-covarianza del modelo medio. La varianza del error σ ^ 2 {\sombrero{\sigma}}^{2} estima la varianza del método analítico. El componente de la varianza de la intercepción σ b 1 2 \sigma_{\beta_{1}}^{2} representa la variación dentro del lote de la respuesta observada en el lanzamiento del producto debido únicamente al proceso de fabricación, es decir, excluyendo la variación que se debe al método analítico. El componente de variación de la pendiente. σ b 2 2 \sigma_{\beta_{2}}^{2} representa la variación entre lotes de las tasas de degradación.
Since the variance-covariance matrix 𝚺^CAMA Y DESAYUNO{\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.
Paso c) Estimar el vector medio de coeficientes mediante un estimador de mínimos cuadrados ponderados (WLS)
La estimación del vector medio de coeficientes comienza con el cálculo de la estimación de 𝐖 i \mathbf{W}_{i} ,
𝐖i=(𝚺^CAMA Y DESAYUNO+σ^2•𝐌i)−1\mathbf{W}_{i} = \left( {\hat{\mathbf{\sigma}}}_{\text{ββ}} + {\hat{\sigma}}^{2} \bullet \mathbf {M}_{i}\derecha)^{-1}
que corresponde a la inversa de la varianza de la estimación del parámetro de regresión para el i th yo^{\text{th}} lote. Con base en esta ecuación la 2 × i 2 \veces yo La matriz dimensional de las estimaciones de los coeficientes de intersección y pendiente, es decir, la estimación de mínimos cuadrados ponderados, se obtiene ahora mediante la siguiente ecuación:
𝛃^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)
dónde 𝛀 \mathbf{\Omega} es una estimación de la varianza del estimador de mínimos cuadrados ponderado. El promedio de las estimaciones de la intersección representa la respuesta en el lanzamiento del producto promediada durante el proceso de fabricación, y el promedio de las estimaciones de la pendiente representa la pendiente común.
Intervalo de tolerancia (TI) para el modelo RCR
Los coeficientes del modelo RCR. b 1 \beta_{1} y b 2 \beta_{2} describir la tendencia general, es decir, la tendencia común de los lotes históricos. El TI para el modelo RCR se puede calcular con la ayuda de la estimación y ^ j {\sombrero{y}}_{j} para la recta de regresión y su error estándar σ y ^ , R C R \sigma_{\sombrero{y},RCR} según el método propuesto por Scholz y Vangel [5] de la siguiente manera. Su método utiliza el concepto de tamaño de muestra efectivo.
y^j±k•σy^,RCR{\hat{y}}_{j} \pm k \bullet \sigma_{\hat{y},\text{RCR}}
El término de error σ y ^ , R C R \sigma_{\sombrero{y},RCR} se calcula por
σy^,RCR=D(𝐭(𝚺^CAMA Y DESAYUNO+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)
dónde h = [ 1 t 1 ⋮ ⋮ 1 t k ] , 1999 . k ϵ POR \mathbf{t} = \begin{bmatrix}1 & t_{1}\\\vdots&\vdots\\1 & t_{k}\\end{bmatrix},\k\ \epsilon\mathbb{\text {\ POR}} , y D D es la diagonal del argumento. El factor k k es dado por
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}
donde el factor t norte * − 1 , z pag • norte * , γ t_{n^{*} - 1,z_{p} \bullet \sqrt{n^{*}},\gamma} es el γ \gama cuantil de la distribución t con norte * − 1 norte^{*} - 1 grados de libertad y el parámetro de no centralidad z pag • norte * z_{p} \bullet \sqrt{n^{*}} , dónde z pag z_ {p} es el pag pag cuantil de la distribución normal estándar. El parámetro norte * norte^{*} es el tamaño de muestra efectivo dado por
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}}\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}
donde el parámetro F F y la relación de varianza ρ \rho están definidos por
| f=1∑i=1nb(nin)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}} |
dónde σ b 2 \sigma_{b}^{2} es la variación entre lotes, σ mi 2 \sigma_{e}^{2} es la variación dentro del lote (o variación del método), norte i n_ {i} es el número de medidas por lote i i , es decir i = 1 , ⋯ , norte b i = 1,\ \cdots,\ n_{b} , norte b nótese bien} es el número de lotes históricos, y norte norte es el número total de muestras, es decir norte = ∑ i = 1 norte b norte i n = \sum_{i = 1}^{n_{b}}n_{i} .
El TI cubre pag ( 100 % ) p\izquierda( 100\% \derecha) de la población con una probabilidad de γ ( 100 % ) \gamma\izquierda( 100\% \derecha) . El concepto de tamaño de muestra efectivo tiene en cuenta que los datos dentro del lote están más correlacionados que los datos entre lotes, lo que disminuye la cantidad de información independiente. Por esta razón siempre es cierto lo siguiente: norte * ≤ norte n^{*} \leq n . El caso ideal norte * = norte norte^{*} = norte se realiza si los datos dentro del lote no están totalmente correlacionados.
Implementación de RCC/RCR en JMP
El script JSL que implementa el procedimiento RCC/RCR está estructurado en varias partes.
En primer lugar, se deben definir los nombres de los lotes de referencia y de prueba y los distintos nombres de variables para la respuesta, el tiempo, los lotes y las condiciones de almacenamiento.
El modelo RCR se construye (Carter y Yang simplificado [1]) como se describió anteriormente.
El TI para el modelo RCR se construye utilizando el método propuesto por Scholz y Vangel [5].
Se genera una ventana de informe que resume los parámetros calculados en forma tabular y gráfica.
Ejemplo
Para evaluar la funcionalidad del script se generaron varios conjuntos de datos para nueve lotes históricos y un lote actual. El siguiente fragmento de código ejecuta el paso a ) del ajuste del modelo RCR, es decir, las intersecciones (a, 𝛃 1 \mathbf{\beta}_{1} ), pendientes (b, 𝛃 2 \mathbf{\beta}_{2} ), (raíz) errores cuadráticos medios ((RMSE ) MSE, MSE i \text{MSE}_{i} ), grados de libertad (df, df i \text{df}_{i} ) y número de observaciones (n, norte i n_ {i} ) del i i Los lotes históricos se recopilan y almacenan en vectores de longitud. norte b nótese bien} .
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, 𝚺^CAMA Y DESAYUNO{\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.
En el paso c ) los coeficientes del modelo RCR ab.hat ( 𝛃 ^ WLS {\sombrero{\mathbf{\beta}}}_{\text{WLS}} ) se estiman con la ayuda del siguiente fragmento de código.
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 );
El siguiente fragmento de código muestra la construcción del TI para el modelo RCR según Scholz und Vangel [5]. Para la construcción del intervalo se utilizan las estimaciones del coeficiente de pendiente y de intersección promedio almacenados en el vector 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 ) );
En la última parte del script se preparan los resultados para mostrarlos en una ventana de informe. En la Figura 2 se muestra un informe de ejemplo.
Los resultados resumidos en la ventana del informe permiten responder las preguntas planteadas al comienzo del capítulo 3 de la siguiente manera: 1) dado que el punto de datos de 18 meses (es decir, la medición más reciente) del lote actual se encuentra fuera del TI ajustado a los datos de de los lotes históricos, se debe concluir que el lote actual es OOE/OOT, y 2) dado que el punto de datos de 18 meses del lote actual queda fuera del PI del lote actual, se debe concluir que el lote actual también es OOE / OOT en términos del lote actual. Se debería llegar a la misma conclusión en la estación temporal anterior, aunque el punto temporal de 12 meses esté dentro del PI del lote actual. Sin embargo, dado que este punto queda fuera del TI ajustado a los datos de los lotes históricos, la conclusión general en la estación temporal de 12 meses debe haber sido que se trata de un punto OOE/OOT.
Como se mencionó al comienzo del capítulo 3, es muy probable que los lotes históricos individuales varíen con respecto a sus interceptos y sus pendientes y que por esta razón el modelo RCR supera al modelo de mínimos cuadrados ordinario. Se pueden diferenciar cinco casos: caso I: sin variación de intercepto, sin variación de pendiente; caso II: variación de intersección, sin variación de pendiente; caso III: sin variación de intersección, variación de pendiente; caso IV: variación de intersección, variación de pendiente; y caso V: no linealidad. Los resultados se resumen en la Figura 3 para los cinco casos. Los gráficos en la Figura 3 muestran que el modelo RCR representa mejor los datos en los casos donde las intersecciones y/o pendientes varían y es muy similar al método básico en los casos donde no hay variabilidad en las intersecciones y pendientes.
Figure_2Figura 2
Figura 2 Salida del script que implementa el método RCC/RCR
La ventana está dividida en las partes "Evaluación histórica de lotes", "Evaluación de lotes actuales (parámetros de modelo individuales)" y la visualización gráfica que resume los datos históricos y actuales del lote. Los datos de los lotes históricos están representados por puntos azules () y los datos del lote actual por cruces rojas (). El TI ajustado a los datos de los lotes históricos está representado por la banda delimitada por las líneas discontinuas azules y el IP ajustado a los datos del lote actual (pero sin incluir la observación más reciente) por la banda delimitada por las líneas discontinuas rojas .
Figura 3 Comparación de los intervalos del modelo RCR y los intervalos del modelo de regresión lineal básico en diferentes situaciones
El ajuste del modelo RCR está representado por la línea de regresión sólida azul y las líneas de puntos azules del intervalo de tolerancia correspondiente (95% de confianza y 95% de cobertura). El ajuste del modelo básico está representado por la línea de regresión discontinua de color púrpura y el tono púrpura del intervalo de predicción correspondiente (95% de confianza), es decir, los límites de confianza para un valor predicho individual. Las líneas discontinuas grises en el panel Va representan el ajuste no lineal calculado sobre la base de la respuesta al cuadrado. Los seis paneles comparan los intervalos del modelo RCR y los intervalos del modelo de regresión lineal básica en las siguientes situaciones: Panel I: caso "sin variación en el intercepto, sin variación en la pendiente"; Panel II: caso de "variación de intersección, sin variación de pendiente"; Panel III: caso "sin variación de intersección, variación de pendiente"; Panel IV: caso de "variación de intersección, variación de pendiente"; Panel Va: caso de "no linealidad"; Panel Vb: caso de "no linealidad" después de la transformación, es decir, elevación al cuadrado, de la variable de respuesta.
Conclusión
El script JMP presentado en este manuscrito es una herramienta adecuada y sólida para evaluar los datos de estabilidad de un lote actual de un medicamento con respecto a los resultados OOE y OOT. Un requisito previo es la disponibilidad de datos históricos de estabilidad de al menos tres lotes con al menos cuatro puntos temporales de cada uno de estos lotes.
Bibliografía
Carter, RL y Yang, MCK Inferencia de muestras grandes en modelos de regresión de coeficientes aleatorios. Comunicaciones en estadística: teoría y métodos (1986) 15 (8): 2507-2525. ENLACE
Conover, WJ (1980), Estadística práctica no paramétrica, Nueva York: John Wiley and Sons, Inc.
Guía ICH Q1A(R2), Pruebas de estabilidad de nuevos fármacos y productos, versión paso 4, 6 de febrero de 2003. ENLACE
Mandel, BJ Gráfico de control de regresión. J Qual Technol (1969) 1 (1): 1-9. ENLACE
Scholz, F. y Vangel, M. Límites de tolerancia y límites de confianza de Cpk bajo efectos de lote. Publicado en: Avanzado en Modelos Estocásticos de Confiabilidad, Calidad y Seguridad. Editado por Kahle, W., von Collani, E., Franz, J. y Jensen, U. Birkhäuser, Boston, 1998, 361-379. ENLACE
Shewhart, Washington (1939). Método estadístico desde el punto de vista del control de calidad. (Deming, NOSOTROS). Washington, DC, Escuela de Graduados, Departamento de Agricultura.
Procedimiento operativo estándar – Guía de gestión de datos de laboratorio – Resultados fuera de expectativas (OOE) y fuera de tendencia (OOT). Grupo de trabajo de control de calidad analítico de la Academia Europea de Cumplimiento (ECA), Christopher Burgess, Borrador V 0.3, 2015.
Agencia Reguladora de Medicamentos y Productos Sanitarios del Reino Unido (MHRA), Investigaciones fuera de especificación, notas de presentación y paquete para delegados, 28 de agosto de 2013. ENLACE
Serie de informes técnicos de la OMS, núm. 953, Anexo 2 Pruebas de estabilidad de ingredientes farmacéuticos activos y productos farmacéuticos terminados, 2009. ENLACE