#libraries
rm(list=ls())
#install.packages ("PopED")
library(PopED)
## Warning: package 'PopED' was built under R version 4.4.2
#packageVersion("PopED")
##Define the Model #one-compartment pharmacokinetic model with linear absorption
ff <- function(model_switch,xt,parameters,poped.db){
with(as.list(parameters),{
N = floor(xt/TAU)+1
f=(DOSE*Favail/V)*(KA/(KA - CL/V)) *
(exp(-CL/V * (xt - (N - 1) * TAU)) * (1 - exp(-N * CL/V * TAU))/(1 - exp(-CL/V * TAU)) -
exp(-KA * (xt - (N - 1) * TAU)) * (1 - exp(-N * KA * TAU))/(1 - exp(-KA * TAU)))
return(list( f=f,poped.db=poped.db))
})
}
#Define Parameters
sfg <- function(x,a,bpop,b,bocc){
parameters=c( V=bpop[1]*exp(b[1]),
KA=bpop[2]*exp(b[2]),
CL=bpop[3]*exp(b[3]),
Favail=bpop[4],
DOSE=a[1],
TAU=a[2])
}
#Define RUV
feps <- function(model_switch,xt,parameters,epsi,poped.db){
returnArgs <- ff(model_switch,xt,parameters,poped.db)
f <- returnArgs[[1]]
poped.db <- returnArgs[[2]]
y = f*(1+epsi[,1])+epsi[,2]
return(list(y=y,poped.db=poped.db))
}
#Create poped database
poped.db <- create.poped.database(
# Model
ff_fun=ff,
fg_fun=sfg,
fError_fun=feps,
bpop=c(V=72.8,KA=0.25,CL=3.75,Favail=0.9),
notfixed_bpop=c(1,1,1,0),
d=c(V=0.09,KA=0.09,CL=0.25^2),
sigma=c(prop=0.04,add=5e-6),
notfixed_sigma=c(1,0),
# Design
m=2,
groupsize=20,
a=list(c(DOSE=20,TAU=24),c(DOSE=40, TAU=24)),
maxa=c(DOSE=200,TAU=24),
mina=c(DOSE=0,TAU=24),
xt=c( 1,2,8,240,245),
# Design space
minxt=c(0,0,0,240,240),
maxxt=c(10,10,10,248,248),
bUseGrouped_xt=TRUE)
#Plot model prediction
plot_model_prediction(poped.db, model_num_points = 300)
#plot the expected prediction interval
plot_model_prediction(poped.db,
PI=TRUE,
separate.groups=T,
model_num_points = 300,
sample.times = FALSE)
#predictions numerically
dat <- model_prediction(poped.db,DV=TRUE)
head(dat,n=5);tail(dat,n=5)
## ID Time DV IPRED PRED Group Model DOSE TAU
## 1 1 1 0.06544170 0.06935572 0.05325024 1 1 20 24
## 2 1 2 0.13453152 0.12033579 0.09204804 1 1 20 24
## 3 1 8 0.18595947 0.21268212 0.16409609 1 1 20 24
## 4 1 240 0.05386206 0.11492172 0.12671376 1 1 20 24
## 5 1 245 0.22051299 0.27951732 0.24980320 1 1 20 24
## ID Time DV IPRED PRED Group Model DOSE TAU
## 196 40 1 0.1408510 0.1737935 0.1065005 2 1 40 24
## 197 40 2 0.3777897 0.2751737 0.1840961 2 1 40 24
## 198 40 8 0.3302235 0.3464009 0.3281922 2 1 40 24
## 199 40 240 0.1527364 0.2051454 0.2534275 2 1 40 24
## 200 40 245 0.5939644 0.5234824 0.4996064 2 1 40 24
#evaluate the initial design
(ds1 <- evaluate_design(poped.db))
## $ofv
## [1] 39.309
##
## $fim
## V KA CL d_V d_KA d_CL
## V 0.05336692 -8.683963 -0.05863412 0.000000 0.000000 0.000000
## KA -8.68396266 2999.851007 -14.43058560 0.000000 0.000000 0.000000
## CL -0.05863412 -14.430586 37.15243290 0.000000 0.000000 0.000000
## d_V 0.00000000 0.000000 0.00000000 999.953587 312.240246 3.202847
## d_KA 0.00000000 0.000000 0.00000000 312.240246 439.412556 2.287838
## d_CL 0.00000000 0.000000 0.00000000 3.202847 2.287838 3412.005199
## sig_prop 0.00000000 0.000000 0.00000000 575.347261 638.581909 1182.325475
## sig_prop
## V 0.0000
## KA 0.0000
## CL 0.0000
## d_V 575.3473
## d_KA 638.5819
## d_CL 1182.3255
## sig_prop 33864.3226
##
## $rse
## V KA CL d_V d_KA d_CL sig_prop
## 8.215338 10.090955 4.400304 39.844763 60.655110 27.562541 13.865357
#Try 5 samples with four early and one late - model “db_new1” DESIGN 2
poped.db_new1 <- create.poped.database(
# Model
ff_fun=ff,
fg_fun=sfg,
fError_fun=feps,
bpop=c(V=72.8,KA=0.25,CL=3.75,Favail=0.9),
notfixed_bpop=c(1,1,1,0),
d=c(V=0.09,KA=0.09,CL=0.25^2),
sigma=c(prop=0.04,add=5e-6),
notfixed_sigma=c(1,0),
# Design
m=2,
groupsize=20,
a=list(c(DOSE=20,TAU=24),c(DOSE=40, TAU=24)),
maxa=c(DOSE=200,TAU=24),
mina=c(DOSE=0,TAU=24),
xt=c( 1,2,8,10,248),
# Design space
minxt=c(0,0,0,0,240),
maxxt=c(10,10,10,10,248),
bUseGrouped_xt=TRUE)
#evaluate the design db_new1; This is DESIGN 2 - five samples
(ds2 <- evaluate_design(poped.db_new1))
## $ofv
## [1] 38.6089
##
## $fim
## V KA CL d_V d_KA d_CL
## V 0.05603522 -7.708389 0.2139121 0.00000 0.00000 0.00000
## KA -7.70838947 3247.802593 32.0070606 0.00000 0.00000 0.00000
## CL 0.21391207 32.007061 23.8488710 0.00000 0.00000 0.00000
## d_V 0.00000000 0.000000 0.0000000 1102.44707 246.02562 42.62909
## d_KA 0.00000000 0.000000 0.0000000 246.02562 515.05406 11.25545
## d_CL 0.00000000 0.000000 0.0000000 42.62909 11.25545 1405.95318
## sig_prop 0.00000000 0.000000 0.0000000 608.89790 795.37576 1870.41520
## sig_prop
## V 0.0000
## KA 0.0000
## CL 0.0000
## d_V 608.8979
## d_KA 795.3758
## d_CL 1870.4152
## sig_prop 35181.7085
##
## $rse
## V KA CL d_V d_KA d_CL sig_prop
## 7.431050 8.892071 5.777082 35.440487 52.564091 44.308695 14.090858
##Try 4 samples with three early and one late - model “db_new2”; DESIGN 3 - four samples
poped.db_new2 <- create.poped.database(
# Model
ff_fun=ff,
fg_fun=sfg,
fError_fun=feps,
bpop=c(V=72.8,KA=0.25,CL=3.75,Favail=0.9),
notfixed_bpop=c(1,1,1,0),
d=c(V=0.09,KA=0.09,CL=0.25^2),
sigma=c(prop=0.04,add=5e-6),
notfixed_sigma=c(1,0),
# Design
m=2,
groupsize=20,
a=list(c(DOSE=20,TAU=24),c(DOSE=40, TAU=24)),
maxa=c(DOSE=200,TAU=24),
mina=c(DOSE=0,TAU=24),
xt=c( 1,2,8,248),
# Design space
minxt=c(0,0,0,240),
maxxt=c(10,10,10,248),
bUseGrouped_xt=TRUE)
#evaluate the design db_new2; EVALUATE DESIGN 3 - four samples
(ds3 <- evaluate_design(poped.db_new2))
## $ofv
## [1] 37.02264
##
## $fim
## V KA CL d_V d_KA d_CL
## V 0.05093387 -8.914773 0.1572673 0.0000 0.00000 0.00000
## KA -8.91477347 2962.509660 18.6114517 0.0000 0.00000 0.00000
## CL 0.15726732 18.611452 23.2198932 0.0000 0.00000 0.00000
## d_V 0.00000000 0.000000 0.0000000 910.8544 329.05905 23.04160
## d_KA 0.00000000 0.000000 0.0000000 329.0590 428.54106 3.80578
## d_CL 0.00000000 0.000000 0.0000000 23.0416 3.80578 1332.77128
## sig_prop 0.00000000 0.000000 0.0000000 545.2588 594.11904 1935.44440
## sig_prop
## V 0.0000
## KA 0.0000
## CL 0.0000
## d_V 545.2588
## d_KA 594.1190
## d_CL 1935.4444
## sig_prop 24679.9751
##
## $rse
## V KA CL d_V d_KA d_CL sig_prop
## 9.231920 11.057673 5.789418 43.325191 63.926813 46.650646 17.228914
#Let’s try to optimize ds3. This is design db_new2; OPTIMIZE DESIGN 3
output <- poped_optim(poped.db_new2, opt_xt=TRUE)
## ===============================================================================
## Initial design evaluation
##
## Initial OFV = 37.0226
##
## Initial design
## expected relative standard error
## (%RSE, rounded to nearest integer)
## Parameter Values RSE_0
## V 72.8 9
## KA 0.25 11
## CL 3.75 6
## d_V 0.09 43
## d_KA 0.09 64
## d_CL 0.0625 47
## sig_prop 0.04 17
##
## ==============================================================================
## Optimization of design parameters
##
## * Optimize Sampling Schedule
##
## ************* Iteration 1 for all optimization methods***********************
##
## *******************************************
## Running Adaptive Random Search Optimization
## *******************************************
## Initial OFV = 37.0226
## It. 5 | OFV = 37.3458
## It. 10 | OFV = 37.4974
## It. 15 | OFV = 37.4974
## It. 20 | OFV = 37.4974
## It. 25 | OFV = 37.4974
## It. 30 | OFV = 37.4974
## It. 35 | OFV = 37.4974
## It. 40 | OFV = 37.4974
## It. 45 | OFV = 37.4974
## It. 50 | OFV = 37.5387
## It. 55 | OFV = 37.5704
## It. 60 | OFV = 37.5704
## It. 65 | OFV = 37.5704
## It. 70 | OFV = 37.5704
## It. 75 | OFV = 37.9761
## It. 80 | OFV = 39.0541
## It. 85 | OFV = 39.0541
## It. 90 | OFV = 39.2431
## It. 95 | OFV = 39.2431
## It. 100 | OFV = 39.2431
## It. 105 | OFV = 39.2431
## It. 110 | OFV = 39.2431
## It. 115 | OFV = 39.2431
## It. 120 | OFV = 39.2431
## It. 125 | OFV = 39.2431
## It. 130 | OFV = 39.2431
## It. 135 | OFV = 39.2431
## It. 140 | OFV = 39.2431
## It. 145 | OFV = 39.2431
## It. 150 | OFV = 39.2431
## It. 155 | OFV = 39.2431
## It. 160 | OFV = 39.2431
## It. 165 | OFV = 39.2431
## It. 170 | OFV = 39.2728
## It. 175 | OFV = 39.2728
## It. 180 | OFV = 39.2728
## It. 185 | OFV = 39.2728
## It. 190 | OFV = 39.2728
## It. 195 | OFV = 39.306
## It. 200 | OFV = 39.306
## It. 205 | OFV = 39.306
## It. 210 | OFV = 39.306
## It. 215 | OFV = 39.306
## It. 220 | OFV = 39.306
## It. 225 | OFV = 39.306
## It. 230 | OFV = 39.306
## It. 235 | OFV = 39.306
## It. 240 | OFV = 39.306
## It. 245 | OFV = 39.306
## It. 250 | OFV = 39.306
## It. 255 | OFV = 39.306
## It. 260 | OFV = 39.306
## It. 265 | OFV = 39.306
## It. 270 | OFV = 39.306
## It. 275 | OFV = 39.306
## It. 280 | OFV = 39.306
## It. 285 | OFV = 39.306
## It. 290 | OFV = 39.306
## It. 295 | OFV = 39.306
## It. 300 | OFV = 39.306
## It. 305 | OFV = 39.306
## It. 310 | OFV = 39.306
## It. 315 | OFV = 39.306
## It. 320 | OFV = 39.306
## It. 325 | OFV = 39.306
## It. 330 | OFV = 39.306
## It. 335 | OFV = 39.306
## It. 340 | OFV = 39.306
## It. 345 | OFV = 39.306
## It. 350 | OFV = 39.306
## It. 355 | OFV = 39.306
## It. 360 | OFV = 39.306
## It. 365 | OFV = 39.3212
## It. 370 | OFV = 39.3212
## It. 375 | OFV = 39.3212
## It. 380 | OFV = 39.3212
## It. 385 | OFV = 39.3212
## It. 390 | OFV = 39.3212
## It. 395 | OFV = 39.3212
## It. 400 | OFV = 39.3212
##
## Total iterations: 400
## Elapsed time: 7.61 seconds.
##
## Final OFV = 39.32122
## Parameters: 0.6239503 0.5691498 10 240
##
## *******************************************
## Running BFGS Optimization
## *******************************************
## initial value -39.321223
## final value -39.321848
## converged
##
## *******************************************
## Running Line Search Optimization
## *******************************************
##
## Initial parameters: 0.5862157 0.5857712 10 240
## Initial OFV: 39.32185
##
## Searching parameter 2
## Changed from 0.585771 to 10 ; OFV = 39.6065
## Searching parameter 4
## Changed from 240 to 240 ; OFV = 39.6065
## Searching parameter 1
## Changed from 0.586216 to 0.408173 ; OFV = 39.6162
## Searching parameter 3
## No change
##
## Elapsed time: 3.6 seconds.
##
## Final OFV = 39.61624
## Parameters: 0.4081729 10 10 240
##
## *******************************************
## Stopping criteria testing
## (Compare between start of iteration and end of iteration)
## *******************************************
## Difference in OFV: 2.59
## Relative difference in OFV: 7.01%
## Efficiency:
## ((exp(ofv_final) / exp(ofv_init))^(1/n_parameters)) = 1.4485
##
## Efficiency stopping criteria:
## Is (1.4485 <= 1.001)? No.
## Stopping criteria NOT achieved.
##
## Stopping criteria NOT achieved.
##
## ************* Iteration 2 for all optimization methods***********************
##
## *******************************************
## Running Adaptive Random Search Optimization
## *******************************************
## Initial OFV = 39.6162
## It. 5 | OFV = 39.6162
## It. 10 | OFV = 39.6162
## It. 15 | OFV = 39.6162
## It. 20 | OFV = 39.6162
## It. 25 | OFV = 39.6162
## It. 30 | OFV = 39.6162
## It. 35 | OFV = 39.6162
## It. 40 | OFV = 39.6162
## It. 45 | OFV = 39.6162
## It. 50 | OFV = 39.6162
## It. 55 | OFV = 39.6162
## It. 60 | OFV = 39.6162
## It. 65 | OFV = 39.6162
## It. 70 | OFV = 39.6162
## It. 75 | OFV = 39.6162
## It. 80 | OFV = 39.6162
## It. 85 | OFV = 39.6162
## It. 90 | OFV = 39.6162
## It. 95 | OFV = 39.6162
## It. 100 | OFV = 39.6162
## It. 105 | OFV = 39.6162
## It. 110 | OFV = 39.6162
## It. 115 | OFV = 39.6162
## It. 120 | OFV = 39.6162
## It. 125 | OFV = 39.6162
## It. 130 | OFV = 39.6162
## It. 135 | OFV = 39.6162
## It. 140 | OFV = 39.6162
## It. 145 | OFV = 39.6162
## It. 150 | OFV = 39.6162
## It. 155 | OFV = 39.6162
## It. 160 | OFV = 39.6162
## It. 165 | OFV = 39.6162
## It. 170 | OFV = 39.6162
## It. 175 | OFV = 39.6162
## It. 180 | OFV = 39.6162
## It. 185 | OFV = 39.6162
## It. 190 | OFV = 39.6202
## It. 195 | OFV = 39.6202
## It. 200 | OFV = 39.6202
## It. 205 | OFV = 39.6202
## It. 210 | OFV = 39.6202
## It. 215 | OFV = 39.6202
## It. 220 | OFV = 39.6202
## It. 225 | OFV = 39.6202
## It. 230 | OFV = 39.6202
## It. 235 | OFV = 39.6202
## It. 240 | OFV = 39.6202
## It. 245 | OFV = 39.6202
## It. 250 | OFV = 39.6202
## It. 255 | OFV = 39.6202
## It. 260 | OFV = 39.6202
## It. 265 | OFV = 39.6202
## It. 270 | OFV = 39.6202
## It. 275 | OFV = 39.6202
## It. 280 | OFV = 39.6202
## It. 285 | OFV = 39.6202
## It. 290 | OFV = 39.6202
## It. 295 | OFV = 39.6202
## It. 300 | OFV = 39.6202
## It. 305 | OFV = 39.6202
## It. 310 | OFV = 39.6202
## It. 315 | OFV = 39.6202
## It. 320 | OFV = 39.6202
## It. 325 | OFV = 39.6202
## It. 330 | OFV = 39.6202
## It. 335 | OFV = 39.6202
## It. 340 | OFV = 39.6202
## It. 345 | OFV = 39.6202
## It. 350 | OFV = 39.6202
## It. 355 | OFV = 39.6202
## It. 360 | OFV = 39.6202
## It. 365 | OFV = 39.6202
## It. 370 | OFV = 39.6202
## It. 375 | OFV = 39.6202
## It. 380 | OFV = 39.6202
## It. 385 | OFV = 39.6202
## Maximum number of identical optimal values reached (max_run=200), optimization stopped.
##
## Total iterations: 385
## Elapsed time: 7.19 seconds.
##
## Final OFV = 39.62022
## Parameters: 0.4927533 10 10 240
##
## *******************************************
## Running BFGS Optimization
## *******************************************
## initial value -39.620225
## final value -39.621173
## converged
##
## *******************************************
## Running Line Search Optimization
## *******************************************
##
## Initial parameters: 0.4649298 10 10 240
## Initial OFV: 39.62117
##
## Searching parameter 1
## No change
## Searching parameter 2
## Changed from 10 to 10 ; OFV = 39.6212
## Searching parameter 4
## Changed from 240 to 240 ; OFV = 39.6212
## Searching parameter 3
## Changed from 10 to 10 ; OFV = 39.6212
##
## Elapsed time: 3.58 seconds.
##
## Final OFV = 39.62117
## Parameters: 0.4649298 10 10 240
##
## *******************************************
## Stopping criteria testing
## (Compare between start of iteration and end of iteration)
## *******************************************
## Difference in OFV: 0.00494
## Relative difference in OFV: 0.0125%
## Efficiency:
## ((exp(ofv_final) / exp(ofv_init))^(1/n_parameters)) = 1.0007
##
## Efficiency stopping criteria:
## Is (1.0007 <= 1.001)? Yes.
## Stopping criteria achieved.
##
## Stopping criteria achieved.
##
## ===============================================================================
## FINAL RESULTS
## Optimized Sampling Schedule
## Group 1: 0.4649 10 10 240
## Group 2: 0.4649 10 10 240
##
## OFV = 39.6212
##
## Efficiency:
## ((exp(ofv_final) / exp(ofv_init))^(1/n_parameters)) = 1.4495
##
## Expected relative standard error
## (%RSE, rounded to nearest integer):
## Parameter Values RSE_0 RSE
## V 72.8 9 6
## KA 0.25 11 8
## CL 3.75 6 4
## d_V 0.09 43 33
## d_KA 0.09 64 53
## d_CL 0.0625 47 29
## sig_prop 0.04 17 19
##
## Total running time: 23.71 seconds
#Try 3 samples; two early and one late-DESIGN 4
poped.db_new3 <- create.poped.database(
# Model
ff_fun=ff,
fg_fun=sfg,
fError_fun=feps,
bpop=c(V=72.8,KA=0.25,CL=3.75,Favail=0.9),
notfixed_bpop=c(1,1,1,0),
d=c(V=0.09,KA=0.09,CL=0.25^2),
sigma=c(prop=0.04,add=5e-6),
notfixed_sigma=c(1,0),
# Design
m=2,
groupsize=20,
a=list(c(DOSE=20,TAU=24),c(DOSE=40, TAU=24)),
maxa=c(DOSE=200,TAU=24),
mina=c(DOSE=0,TAU=24),
xt=c( 0.5,10,240),
# Design space
minxt=c(0,0,240),
maxxt=c(11,11,248),
bUseGrouped_xt=TRUE)
#evaluate the design db_new3; EVALUATE DESIGN 4 (three samples)
(ds4 <- evaluate_design(poped.db_new3))
## $ofv
## [1] 37.78025
##
## $fim
## V KA CL d_V d_KA
## V 0.05158055 -7.282438 -0.08707705 0.00000 0.00000000
## KA -7.28243777 3023.869633 1.91317637 0.00000 0.00000000
## CL -0.08707705 1.913176 35.29007085 0.00000 0.00000000
## d_V 0.00000000 0.000000 0.00000000 934.13479 219.60255779
## d_KA 0.00000000 0.000000 0.00000000 219.60256 446.57827759
## d_CL 0.00000000 0.000000 0.00000000 7.06478 0.04619622
## sig_prop 0.00000000 0.000000 0.00000000 798.11012 804.44754370
## d_CL sig_prop
## V 0.000000e+00 0.0000
## KA 0.000000e+00 0.0000
## CL 0.000000e+00 0.0000
## d_V 7.064780e+00 798.1101
## d_KA 4.619622e-02 804.4475
## d_CL 3.078510e+03 1367.5364
## sig_prop 1.367536e+03 8482.8798
##
## $rse
## V KA CL d_V d_KA d_CL sig_prop
## 7.466088 8.960804 4.501765 39.251645 60.083959 30.202954 31.665172
#Let’s try to optimize ds4. This is design db_new3; OPTIMIZE DESIGN 4
output <- poped_optim(poped.db_new3, opt_xt=TRUE)
## ===============================================================================
## Initial design evaluation
##
## Initial OFV = 37.7803
##
## Initial design
## expected relative standard error
## (%RSE, rounded to nearest integer)
## Parameter Values RSE_0
## V 72.8 7
## KA 0.25 9
## CL 3.75 5
## d_V 0.09 39
## d_KA 0.09 60
## d_CL 0.0625 30
## sig_prop 0.04 32
##
## ==============================================================================
## Optimization of design parameters
##
## * Optimize Sampling Schedule
##
## ************* Iteration 1 for all optimization methods***********************
##
## *******************************************
## Running Adaptive Random Search Optimization
## *******************************************
## Initial OFV = 37.7803
## It. 5 | OFV = 37.7803
## It. 10 | OFV = 37.7803
## It. 15 | OFV = 37.7803
## It. 20 | OFV = 37.7803
## It. 25 | OFV = 37.7803
## It. 30 | OFV = 37.7803
## It. 35 | OFV = 37.7803
## It. 40 | OFV = 37.7803
## It. 45 | OFV = 37.7803
## It. 50 | OFV = 37.8366
## It. 55 | OFV = 37.8366
## It. 60 | OFV = 37.8366
## It. 65 | OFV = 37.8366
## It. 70 | OFV = 37.8366
## It. 75 | OFV = 37.8366
## It. 80 | OFV = 37.8366
## It. 85 | OFV = 37.8366
## It. 90 | OFV = 37.8366
## It. 95 | OFV = 37.8366
## It. 100 | OFV = 37.8366
## It. 105 | OFV = 37.8366
## It. 110 | OFV = 37.8366
## It. 115 | OFV = 37.8366
## It. 120 | OFV = 37.8366
## It. 125 | OFV = 37.8516
## It. 130 | OFV = 37.8516
## It. 135 | OFV = 37.8516
## It. 140 | OFV = 37.8516
## It. 145 | OFV = 37.8516
## It. 150 | OFV = 37.8516
## It. 155 | OFV = 37.8516
## It. 160 | OFV = 37.8516
## It. 165 | OFV = 37.8516
## It. 170 | OFV = 37.8516
## It. 175 | OFV = 37.8516
## It. 180 | OFV = 37.8516
## It. 185 | OFV = 37.8527
## It. 190 | OFV = 37.8527
## It. 195 | OFV = 37.8527
## It. 200 | OFV = 37.8527
## It. 205 | OFV = 37.8527
## It. 210 | OFV = 37.8527
## It. 215 | OFV = 37.8527
## It. 220 | OFV = 37.8527
## It. 225 | OFV = 37.8527
## It. 230 | OFV = 37.8527
## It. 235 | OFV = 37.8527
## It. 240 | OFV = 37.8527
## It. 245 | OFV = 37.8527
## It. 250 | OFV = 37.8527
## It. 255 | OFV = 37.8527
## It. 260 | OFV = 37.8527
## It. 265 | OFV = 37.8527
## It. 270 | OFV = 37.8527
## It. 275 | OFV = 37.8527
## It. 280 | OFV = 37.8527
## It. 285 | OFV = 37.8527
## It. 290 | OFV = 37.8527
## It. 295 | OFV = 37.8534
## It. 300 | OFV = 37.8534
## It. 305 | OFV = 37.8534
## It. 310 | OFV = 37.8534
## It. 315 | OFV = 37.8534
## It. 320 | OFV = 37.8534
## It. 325 | OFV = 37.8534
## It. 330 | OFV = 37.8534
## It. 335 | OFV = 37.8534
## It. 340 | OFV = 37.8534
## It. 345 | OFV = 37.8534
## It. 350 | OFV = 37.8534
## It. 355 | OFV = 37.8534
## It. 360 | OFV = 37.8534
## It. 365 | OFV = 37.8534
## It. 370 | OFV = 37.8534
## It. 375 | OFV = 37.8534
## It. 380 | OFV = 37.8534
## It. 385 | OFV = 37.8534
## It. 390 | OFV = 37.8534
## It. 395 | OFV = 37.8534
## It. 400 | OFV = 37.8534
##
## Total iterations: 400
## Elapsed time: 7.47 seconds.
##
## Final OFV = 37.85336
## Parameters: 0.5104325 11 240
##
## *******************************************
## Running BFGS Optimization
## *******************************************
## initial value -37.853359
## final value -37.853360
## converged
##
## *******************************************
## Running Line Search Optimization
## *******************************************
##
## Initial parameters: 0.5095457 11 240
## Initial OFV: 37.85336
##
## Searching parameter 1
## No change
## Searching parameter 2
## No change
## Searching parameter 3
## Changed from 240 to 240 ; OFV = 37.8534
##
## Elapsed time: 2.88 seconds.
##
## Final OFV = 37.85336
## Parameters: 0.5095457 11 240
##
## *******************************************
## Stopping criteria testing
## (Compare between start of iteration and end of iteration)
## *******************************************
## Difference in OFV: 0.0731
## Relative difference in OFV: 0.194%
## Efficiency:
## ((exp(ofv_final) / exp(ofv_init))^(1/n_parameters)) = 1.0105
##
## Efficiency stopping criteria:
## Is (1.0105 <= 1.001)? No.
## Stopping criteria NOT achieved.
##
## Stopping criteria NOT achieved.
##
## ************* Iteration 2 for all optimization methods***********************
##
## *******************************************
## Running Adaptive Random Search Optimization
## *******************************************
## Initial OFV = 37.8534
## It. 5 | OFV = 37.8534
## It. 10 | OFV = 37.8534
## It. 15 | OFV = 37.8534
## It. 20 | OFV = 37.8534
## It. 25 | OFV = 37.8534
## It. 30 | OFV = 37.8534
## It. 35 | OFV = 37.8534
## It. 40 | OFV = 37.8534
## It. 45 | OFV = 37.8534
## It. 50 | OFV = 37.8534
## It. 55 | OFV = 37.8534
## It. 60 | OFV = 37.8534
## It. 65 | OFV = 37.8534
## It. 70 | OFV = 37.8534
## It. 75 | OFV = 37.8534
## It. 80 | OFV = 37.8534
## It. 85 | OFV = 37.8534
## It. 90 | OFV = 37.8534
## It. 95 | OFV = 37.8534
## It. 100 | OFV = 37.8534
## It. 105 | OFV = 37.8534
## It. 110 | OFV = 37.8534
## It. 115 | OFV = 37.8534
## It. 120 | OFV = 37.8534
## It. 125 | OFV = 37.8534
## It. 130 | OFV = 37.8534
## It. 135 | OFV = 37.8534
## It. 140 | OFV = 37.8534
## It. 145 | OFV = 37.8534
## It. 150 | OFV = 37.8534
## It. 155 | OFV = 37.8534
## It. 160 | OFV = 37.8534
## It. 165 | OFV = 37.8534
## It. 170 | OFV = 37.8534
## It. 175 | OFV = 37.8534
## It. 180 | OFV = 37.8534
## It. 185 | OFV = 37.8534
## It. 190 | OFV = 37.8534
## It. 195 | OFV = 37.8534
## It. 200 | OFV = 37.8534
## Maximum number of identical optimal values reached (max_run=200), optimization stopped.
##
## Total iterations: 200
## Elapsed time: 3.66 seconds.
##
## Final OFV = 37.85336
## Parameters: 0.5095457 11 240
##
## *******************************************
## Running BFGS Optimization
## *******************************************
## initial value -37.853360
## final value -37.853360
## converged
##
## *******************************************
## Running Line Search Optimization
## *******************************************
##
## Initial parameters: 0.5095455 11 240
## Initial OFV: 37.85336
##
## Searching parameter 3
## Changed from 240 to 240 ; OFV = 37.8534
## Searching parameter 1
## No change
## Searching parameter 2
## No change
##
## Elapsed time: 2.75 seconds.
##
## Final OFV = 37.85336
## Parameters: 0.5095455 11 240
##
## *******************************************
## Stopping criteria testing
## (Compare between start of iteration and end of iteration)
## *******************************************
## Difference in OFV: 8.95e-10
## Relative difference in OFV: 2.37e-09%
## Efficiency:
## ((exp(ofv_final) / exp(ofv_init))^(1/n_parameters)) = 1
##
## Efficiency stopping criteria:
## Is (1 <= 1.001)? Yes.
## Stopping criteria achieved.
##
## Stopping criteria achieved.
##
## ===============================================================================
## FINAL RESULTS
## Optimized Sampling Schedule
## Group 1: 0.5095 11 240
## Group 2: 0.5095 11 240
##
## OFV = 37.8534
##
## Efficiency:
## ((exp(ofv_final) / exp(ofv_init))^(1/n_parameters)) = 1.0105
##
## Expected relative standard error
## (%RSE, rounded to nearest integer):
## Parameter Values RSE_0 RSE
## V 72.8 7 7
## KA 0.25 9 9
## CL 3.75 5 4
## d_V 0.09 39 39
## d_KA 0.09 60 59
## d_CL 0.0625 30 30
## sig_prop 0.04 32 32
##
## Total running time: 17.69 seconds
#3 samples DESIGN 5 (based on optimization of DESIGN 4)
poped.db_new4 <- create.poped.database(
# Model
ff_fun=ff,
fg_fun=sfg,
fError_fun=feps,
bpop=c(V=72.8,KA=0.25,CL=3.75,Favail=0.9),
notfixed_bpop=c(1,1,1,0),
d=c(V=0.09,KA=0.09,CL=0.25^2),
sigma=c(prop=0.04,add=5e-6),
notfixed_sigma=c(1,0),
# Design
m=2,
groupsize=20,
a=list(c(DOSE=20,TAU=24),c(DOSE=40, TAU=24)),
maxa=c(DOSE=200,TAU=24),
mina=c(DOSE=0,TAU=24),
xt=c( 0.51,11,240),
# Design space
minxt=c(0,0,240),
maxxt=c(11,11,248),
bUseGrouped_xt=TRUE)
#Evaluate DESIGN 5
(ds5 <- evaluate_design(poped.db_new4))
## $ofv
## [1] 37.85336
##
## $fim
## V KA CL d_V d_KA d_CL
## V 0.05159352 -7.093367 -0.0813758 0.000000 0.0000000 0.0000000
## KA -7.09336696 3082.833997 4.6634624 0.000000 0.0000000 0.0000000
## CL -0.08137580 4.663462 35.4003301 0.000000 0.0000000 0.0000000
## d_V 0.00000000 0.000000 0.0000000 934.605477 208.3495347 6.1702192
## d_KA 0.00000000 0.000000 0.0000000 208.349535 464.1534405 0.2448911
## d_CL 0.00000000 0.000000 0.0000000 6.170219 0.2448911 3097.7765865
## sig_prop 0.00000000 0.000000 0.0000000 823.328670 837.8371588 1358.3065451
## sig_prop
## V 0.0000
## KA 0.0000
## CL 0.0000
## d_V 823.3287
## d_KA 837.8372
## d_CL 1358.3065
## sig_prop 8277.2547
##
## $rse
## V KA CL d_V d_KA d_CL sig_prop
## 7.328617 8.715463 4.491363 39.063785 58.879315 30.147990 32.451984
##now smaller numbers!! ##3 samples DESIGN 6 - REDUCE SAMPLE SIZE TO 12
poped.db_new5 <- create.poped.database(
# Model
ff_fun=ff,
fg_fun=sfg,
fError_fun=feps,
bpop=c(V=72.8,KA=0.25,CL=3.75,Favail=0.9),
notfixed_bpop=c(1,1,1,0),
d=c(V=0.09,KA=0.09,CL=0.25^2),
sigma=c(prop=0.04,add=5e-6),
notfixed_sigma=c(1,0),
# Design
m=2,
groupsize=12,
a=list(c(DOSE=20,TAU=24),c(DOSE=40, TAU=24)),
maxa=c(DOSE=200,TAU=24),
mina=c(DOSE=0,TAU=24),
xt=c( 0.51,11,240),
# Design space
minxt=c(0,0,240),
maxxt=c(11,11,248),
bUseGrouped_xt=TRUE)
#EVALUATE DESIGN 6
(ds6 <- evaluate_design(poped.db_new5))
## $ofv
## [1] 34.27758
##
## $fim
## V KA CL d_V d_KA
## V 0.03095611 -4.256020 -0.04882548 0.000000 0.0000000
## KA -4.25602018 1849.700398 2.79807746 0.000000 0.0000000
## CL -0.04882548 2.798077 21.24019806 0.000000 0.0000000
## d_V 0.00000000 0.000000 0.00000000 560.763286 125.0097208
## d_KA 0.00000000 0.000000 0.00000000 125.009721 278.4920643
## d_CL 0.00000000 0.000000 0.00000000 3.702132 0.1469347
## sig_prop 0.00000000 0.000000 0.00000000 493.997202 502.7022953
## d_CL sig_prop
## V 0.0000000 0.0000
## KA 0.0000000 0.0000
## CL 0.0000000 0.0000
## d_V 3.7021315 493.9972
## d_KA 0.1469347 502.7023
## d_CL 1858.6659519 814.9839
## sig_prop 814.9839271 4966.3528
##
## $rse
## V KA CL d_V d_KA d_CL sig_prop
## 9.461204 11.251615 5.798325 50.431130 76.012869 38.920888 41.895331
##3 samples DESIGN 7 - REDUCE SAMPLE SIZE TO 8
poped.db_new6 <- create.poped.database(
# Model
ff_fun=ff,
fg_fun=sfg,
fError_fun=feps,
bpop=c(V=72.8,KA=0.25,CL=3.75,Favail=0.9),
notfixed_bpop=c(1,1,1,0),
d=c(V=0.09,KA=0.09,CL=0.25^2),
sigma=c(prop=0.04,add=5e-6),
notfixed_sigma=c(1,0),
# Design
m=2,
groupsize=8,
a=list(c(DOSE=20,TAU=24),c(DOSE=40, TAU=24)),
maxa=c(DOSE=200,TAU=24),
mina=c(DOSE=0,TAU=24),
xt=c( 0.51,11,240),
# Design space
minxt=c(0,0,240),
maxxt=c(11,11,248),
bUseGrouped_xt=TRUE)
#EVALUATE DESIGN 7
(ds7 <- evaluate_design(poped.db_new6))
## $ofv
## [1] 31.43932
##
## $fim
## V KA CL d_V d_KA
## V 0.02063741 -2.837347 -0.03255032 0.000000 0.00000000
## KA -2.83734678 1233.133599 1.86538498 0.000000 0.00000000
## CL -0.03255032 1.865385 14.16013204 0.000000 0.00000000
## d_V 0.00000000 0.000000 0.00000000 373.842191 83.33981390
## d_KA 0.00000000 0.000000 0.00000000 83.339814 185.66137622
## d_CL 0.00000000 0.000000 0.00000000 2.468088 0.09795645
## sig_prop 0.00000000 0.000000 0.00000000 329.331468 335.13486353
## d_CL sig_prop
## V 0.000000e+00 0.0000
## KA 0.000000e+00 0.0000
## CL 0.000000e+00 0.0000
## d_V 2.468088e+00 329.3315
## d_KA 9.795645e-02 335.1349
## d_CL 1.239111e+03 543.3226
## sig_prop 5.433226e+02 3310.9019
##
## $rse
## V KA CL d_V d_KA d_CL sig_prop
## 11.587561 13.780357 7.101469 61.765268 93.096371 47.668157 51.311092
#compare designs
(design_eval <- round(data.frame("Design 1"=ds1$rse,"Design 2"=ds2$rse,"Design 3"=ds3$rse,"Design 4"=ds4$rse,"Design 5"=ds5$rse,"Design 6"=ds6$rse,"Design 7"=ds7$rse)))
## Design.1 Design.2 Design.3 Design.4 Design.5 Design.6 Design.7
## V 8 7 9 7 7 9 12
## KA 10 9 11 9 9 11 14
## CL 4 6 6 5 4 6 7
## d_V 40 35 43 39 39 50 62
## d_KA 61 53 64 60 59 76 93
## d_CL 28 44 47 30 30 39 48
## sig_prop 14 14 17 32 32 42 51