Dissolution stability of a modified release product 32nd MBSW May 19, 2009 David.LeBlond@abbott.com Outline • • • • • • • • • • Multivariate data set Mixed model (static view) Hierarchical model (dynamic view) Why a Bayesian approach? Selecting priors Model selection Parameter estimates Latent parameter (“BLUP”) estimates Posterior prediction Estimating future batch failure and level testing rates 2 Dissolution profiles N=378 tablets from B=10 batches 2 4 6 36 48 18 24 8 100 80 60 40 20 Batch 30 100 Mean 80 60 40 20 0 6 12 100 1 2 3 4 5 6 7 8 9 10 80 60 40 20 2 4 6 8 2 Hour 4 6 8 3 Dissolution Instability 0 5 10 20 30 40 50 8 100 80 60 Batch 40 1 2 3 4 5 6 7 8 9 10 Mean 20 1 2 3.5 100 80 60 40 20 0 10 20 30 40 50 0 Month 10 20 30 40 50 4 FDA Guidance Guidance for Industry Extended Release Oral Dosage Forms: Development, Evaluation, and Application of In Vitro/In Vivo Correlations CDER, Sept 1997 “VII.B. Setting Dissolution Specifications • A minimum of three time points … • … should cover the early, middle, and late stages of the dissolution profile. • The last time point … at least 80% of drug has dissolved …. [or] … when the plateau of the dissolution profile has been reached.” 5 100 Proposed dissolution limits 40 60 60 25 20 % Dissolution 80 80 30 14 2 4 Hours + jitter 6 8 6 USP <724> Drug Release L-20 L1 (n1=6) L2 (n2=n1+6) L-10 L U U+10 U+20 Xi X12 Xi X24 L3 (n3=n2+12) Xi #(Xi) <3 7 Tablet residuals from fixed model: Correlation among time points 110 100 105 110 105 r = 0.36 100 8hr %LC 95 90 85 90 95 50 85 60 60 r = 0.79 50 r = 0.54 3.5hr %LC 40 30 25 20 15 20 2hr %LC 20 40 30 25 20 15 All p-values < 0.0001 8 Batch slopes: Correlations among time points 0.1 0.2 0.2 0.1 8hr Slope 0.0 -0.1 -0.1 0.25 0.20 0.25 0.20 r = 0.21 p = 0.57 3.5hr Slope 0.10 0.07 0.08 0.08 0.07 2hr Slope 0.15 0.0 0.15 r = 0.76 p = 0.01 0.10 r = -0.37 p = 0.30 0.06 0.05 0.06 0.05 9 Batch intercepts: Correlations among time points 100 96 98 98 100 96 8hr Initial 94 92 90 92 48 r = 0.92 p = 0.0002 44 46 48 46 44 3.5hr Initial 42 94 90 r = 0.83 p = 0.003 40 38 40 42 38 21 19 20 20 19 2hr Initial 18 21 r = 0.65 p = 0.04 17 16 17 18 16 10 Mixed (static) modeling view N tablets (i) from B batches (j), testing at month xi y Xβ Zu e y1 I3 y I3 i y N 3 N 1 I 3 x1 I 3 I3 a 0 xi I 3 b 61 0 x N I 3 3 N 6 x1 I 3 0 0 xi I 3 0 0 0 I3 0 0 0 I3 a1 b1 0 1 a j 0 j b j x N I 3 3 N 6 B N 3 N 1 a B b B 6 B1 u ~ MVN 0, I B Vu e ~ MVN 0, I N Ve 11 Hierarchical (dynamic) Modeling view Data: i batchi xi yi T 1 ● ● ●●● 2 ● ● ●●● . . . . . . . . . . . . N ● ● ●●● Random intercept & slope for each batch: j=1:B j ~ MVN 3 a, V V Vu 0 j ~ MVN 3 b,V Dissolution result for each tablet: i=1:N ei ~ MVN 3 0,Ve yi batch batch xi ei i i 12 0 V 66 Tablet residual covariance (Ve) UN 6 param HAR1 4 param HCS 4 param 12 12 23 1 0 0 1 2 0 0 12 12 2 12 2 2 13 23 3 0 0 3 13 23 1 0 0 1 0 2 0 0 0 2 3 0 0 3 1 0 0 1 0 0 2 0 0 3 1 2 1 0 0 2 0 1 0 1 1 0 0 2 0 1 0 12 1 13 1 0 23 0 2 1 0 0 0 0 3 13 0 0 3 PD Ve: Acceptable range of determinant 1 0.8 0.6 HCS HAR1 0.4 0.2 0 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 rho 14 Why a Bayesian approach? • • • • • • • • Asymptotic approximations may not be valid Allows quantification of prior information Properly accounts for estimation uncertainty Lends itself to dynamic modeling viewpoint Requires fewer mathematical distractions Estimates quantities of interest easily Provides distributional estimates Fewer embarrassments (e.g., negative variance estimates) • Is a good complement to likelihood (only) methods • WinBUGS is fun to use 15 Tablet residual covariance (Ve) Priors UN 6 param HAR1 or HCS 4 param 12 12 22 13 23 sym ~ InvWishart 30 I 3 ,3 32 k2 ~ InvGamma(0.001,0.001), k 1,2,3 Unif (0.499,0.999) for HCS ~ Unif 0.999,0.999 for HAR1 16 InvWishart Prior Component marginal prior distributions 12 12 1 2 13 1 3 22 23 2 3 sym ~ InvWishart c I 3 ,3 32 40,000 draws i -0.8 -0.6 -0.4 -0.2 c=3 c=10 0.4-31 0 4 8 12 16 20 24 28 32 36 40 0 4 8 12 16 20 24 28 32 36 40 0 4 8 12 16 20 24 28 32 36 40 c=30 ij -1 c=1 4 8 c=100 0.2 0.4 0.6 0.8 1.4-98 2.4-164 0 0 0.8-54 12 16 20 24 28 32 36 40 4.4-299 1 0 4 8 12 16 20 24 28 32 36 40 17 Batch intercept & slope covariance (Vu) UN 12 params a21 a12 a13 2 0 a12 a 2 a 23 2 a 23 a3 a13 2 b1 b12 b13 0 b12 b22 b 23 2 b13 b 23 b 3 VC 6 params a21 0 0 2 0 0 a2 0 0 2 0 a3 2 b1 0 0 0 0 b22 0 2 0 0 b3 18 Batch intercept & slope Priors Process mean 6 param UN 12 param a21 a12 a22 a13 a 23 VC 6 param VC Common slope 3 param 20 4 a ~ MVN 3 50,10 I 3 , b ~ MVN 3 0,103 I 3 90 b21 sym ~ InvWishart c I 3 ,3, b12 b22 a23 b13 b 23 sym ~ InvWishart c I 3 ,3 b23 a2k ~ InvGamma(0.001,0.001) 2bk ~ InvGamma(0.001,0.001), k 1,2,3 a2k ~ InvGamma(0.001,0.001), k 1,2,3 19 Effect of Covariance Choice: Deviance Information Criterion Ve Vu DIC HCS VC 5476.17 HAR1 VC 5461.98 UN UN 5457.66 UN VC 5456.27 UN VC 5499.46 Common Slope 20 Parameter Estimates Proc MIXED vs WinBUGS a 17.4(0.5) 41.3(1.1) 94.0(0.9) 17.4(0.6) 41.3(1.3) 94.0(0.9) b 7.1(0.9) 2 16 . 7 ( 2 . 3 ) 10 7.5(4.2) 7.2(1.3) 2 16 . 9 ( 2 . 9 ) 10 8.2(5.2) V 0 0 2.2(1.1) 11.3(5.7) 0 0 0 0 6.0(3.4) 0 0 3.3(2.2) 14.6(9.1) 0 0 0 0 4.1(2.9) V 0 0 0.3(0.4) 3 0 1 . 2 ( 1 . 9 ) 0 10 0 0 13.4(8.5) 0 0 1.0(0.8) 3 0 4 . 6 ( 4 . 6 ) 0 10 0 0 23.7(17.8) Ve 0 0 2.7(0.2) 4 . 5 ( 0 . 4 ) 18 . 6 ( 1 . 4 ) 0 3.0(0.4) 10.0(1.1) 16.4(1.3) 0 0 2.8(0.2) 4 . 5 ( 0 . 4 ) 18 . 5 ( 1 . 4 ) 0 3.0(0.4) 9.8(1.1) 16.4(1.2) 21 Posterior from Proc Mixed (SAS 8.2) 391 proc mixed covtest; 392 class batch tablet time; 393 model y= time time*month/ noint s; 394 random time time*month/ type=un(1) subject=batch G s; 395 repeated / type=un subject=tablet R; 396 prior /out=posterior nsample=1000; NOTE: Convergence criteria met. WARNING: Posterior sampling is not performed because the parameter transformation is not of full rank. Runs in SAS 9.2, however… SAS only strictly “supports” the posterior if • random type=VC with no repeated, or • random and repeated types both = VC 22 WinBUGS dynamic modeling # Prior InvVe[1:T,1:3]~dwish(R[,],3) acent[1]~dnorm(0.0,0.0001) acent[2]~dnorm(50,0.0001) acent[3]~dnorm(100,0.0001) for ( j in 1:3) { b[ j ]~dnorm(0.0,0.001) gacent[ j ]~dgamma(0.001,0.001) gb[ j ]~dgamma(0.001,0.001) } # Likelihood # Draw the T intercepts and slopes for each batch for ( i in 1:B) { for ( j in 1:3) { alpha[i, j] ~ dnorm(acent[ j ], gacent[ j ]) beta[i, j] ~ dnorm(b[ j ], gb[ j ]) } } # Draw vector of results from each tablet for (obs in 1:N){ for ( j in 1:3){ mu[obs,j]<-alpha[Batch[obs],j]+beta[Batch[obs],j]*(Month[obs]-xbar)} y[obs,1:T ]~dmnorm(mu[obs, ], InvVe[ , ])} 23 Shrinkage of Bayesian and mixed model batch intercept and slope estimates Intercept (dissolution near batch release %LC) 105 20 48 19 45 18 17 8hr 100 3.5h 2hr 21 42 39 95 90 16 36 15 85 Bayesian Fixed Model Mixed Model Bayesian Fixed Model Mixed Model Bayesian Fixed Model Mixed Model Estimation Method Estimation Method Estimation Method 0.3 0.4 0.1 0.25 0.3 0.08 0.2 0.2 0.06 0.15 0.04 0.1 0.02 0.05 0 8hr 0.12 3.5h 2hr Slope (rate of change in dissolution %LC/month) 0.1 0 -0.1 -0.2 0 Bayesian Fixed Model Mixed Model Estimation Method Bayesian Fixed Model Mixed Model Estimation Method Bayesian Fixed Model Mixed Model Estimation Method 24 WinBUGS Batch intercept and slope estimates: Bayesian “BLUPs” Intercepts box plot: Init[,1] box plot: Init[,2] 22.0 50.0 box plot: Init[,3] [1,2] 105.0 [8,2] [8,1] [1,3] 20.0 [1,1] 100.0 [6,2] 45.0 [6,1] [7,1] 18.0 [2,1] [3,1] [4,1] [3,2] [5,1] [4,2] [9,2] [5,3] 40.0 16.0 90.0 14.0 35.0 box plot: slope[,1] 85.0 box plot: slope[,3] box plot: slope[,2] [8,1] Slopes 0.15 0.4 0.4 [3,2] [3,1] [1,1] [7,1] [9,1] [4,2] [6,2] [5,1] [1,2] [6,1] [2,1] [10,1] 0.2 [2,2] [5,3] [7,3] [3,3] [9,2] [5,2] [9,3] 0.3 [4,1] 0.1 [4,3] 0.2 [7,2] [6,3] [2,3] [8,2] [10,2] [1,3] 0.0 [8,3] 0.1 0.05 -0.2 0.0 0.0 [10,3] [4,3] [7,3] [7,2] [5,2] [2,2] [9,3] [3,3] 95.0 [10,1] [9,1] [8,3] [6,3] [2,3] [10,2] -0.1 -0.4 25 [10,3] Predicting future results Posterior predictive sample Posterior sample a(1) V(1) b(1) V(1) Ve(1) fut(1) fut (1) yfut,1(1) … yfut,24(1) : : : : : : : : : : a(d) V(d) b(d) V(d) Ve(d) fut (d) fut (d) yfut,1(d) … yfut,24(d) : : : : : : : : : : a(10000 V(10000 b(10000) V(10000) Ve(10000) fut (10000) fut (10000) ) ) yfut,1(10000 … yfut,24(10000) ) y (futd ),i ~ MVN3 (futd ) x (futd ) ,Ve( d ) 26 WinBUGS posterior predictions # Predict int & slope for future batches for (j in 1:3){ b_star[ j ]~dnorm(b[ j ], gb[ j ]) acent_pred[ j ]~dnorm(acent[ j ], gacent[ j ]) a_star[ j ]<-acent[ j ] - b[ j ]*xbar} # Obtain the Ve components Ve[1:3,1:3] <- invVe[ , ]) for (j in 1:3){ sigma[ j ] <- sqrt(Ve[j,j])} rho12 <- Ve[1,2]/sigma[1]/sigma[2] rho13 <- Ve[1,3]/sigma[1]/sigma[3] rho23 <- Ve[2,3]/sigma[2]/sigma[3] 27 Predicting testing results I(Pass @ L1) I(Pass @ L2) I(Pass @ L3) I(Fail) yfut,1(1) … yfut,24(1) 0 1 0 0 : : : : : : : yfut,1(d) … yfut,24(d) 1 0 0 0 : : : : : : : 0 0 0 1 yfut,1(10000 … yfut,24(10000) ) USP <724> Estimate Probabilities Pr(Pass @ L1) Pr(Pass @ L2) Pr(Pass @ L3) Pr(Fail) #(Pass @ L1)/ 10000 #(Pass @ L2)/ 10000 #(Pass @ L3)/ 10000 #(Fail)/ 10000 28 Semi-parametric bootstrap prediction “Fixed model” prediction (no shrinkage) • 10 intercept and 10 slope vectors via SLR • 378 tablet residual vectors -or“Mixed model” prediction (shrinkage) • 10 intercept vector BLUPs • 10 slope vector BLUPs • 378 tablet residual vectors Sample with replacement to construct future results 29 Probability of Passing at Level 2 (%) Level testing and failure rate predictions Probability of Passing at Level 1 (%) 100 95 90 85 80 Mixed Model 75 Fixed Model 70 Bayesian 65 60 0 6 12 18 24 30 36 42 35 Mixed Model 30 Fixed Model 25 Bayesian 20 15 10 5 0 0 48 6 12 Probability of Failing Dissolution Testing Probability of Passing at Level 3 (%) 2.5 2.25 2 Mixed Model 1.5 Fixed Model Bayesian 1.25 1 0.75 0.5 0.25 0 0 6 12 18 24 30 Months of Storage 24 30 36 42 48 Months of Storage Months of Storage 1.75 18 36 42 48 16 14 12 Mixed Model 10 Fixed Model 8 Bayesian 6 4 2 0 0 6 12 18 24 30 36 Months of Storage 30 42 48 Summary • A multivariate, hierarchical, Bayesian approach to dissolution stability illustrated • Some options for specifying the covariance priors • Estimation and shrinkage of the latent batch slope and intercept parameters • Posterior prediction of future data • Prediction of future failure and level testing rates • “Fixed” most pessimistic… (no shrinkage?) • “Mixed” lowest failure rate… (non-asymptotic?) • Give WinBUGS a try 31 Acknowledgements The invaluable suggestions of, encouragement from, and helpful discussions with John Peterson, GSK Oscar Go, J&J Jyh-Ming Shoung, J&J Stan Altan, J&J are greatly appreciated. Thank you too! David.LeBlond@abbott.com 32