Learn R Programming

PopED (version 0.1.1)

calc_ofv_and_fim: Calculate the Fisher Information Matrix (FIM) and the OFV(FIM) for either point values or parameters or distributions.

Description

This function computes the expectation of the FIM and OFV(FIM) for either point values of parameter estimates or parameter distributions given the model, parameters, distributions of parameter uncertainty, design and methods defined in the PopED database.

Usage

calc_ofv_and_fim(poped.db, ofv = 0, fim = 0, d_switch = poped.db$d_switch,
  bpopdescr = poped.db$gbpop, ddescr = poped.db$gd, bpop = bpopdescr[, 2,
  drop = F], d = getfulld(ddescr[, 2, drop = F], poped.db$covd),
  docc_full = getfulld(poped.db$docc[, 2, drop = F], poped.db$covdocc),
  model_switch = poped.db$design$model_switch, ni = poped.db$gni,
  xt = poped.db$gxt, x = poped.db$gx, a = poped.db$ga,
  fim.calc.type = poped.db$iFIMCalculationType,
  use_laplace = poped.db$iEDCalculationType, laplace.fim = FALSE, ...)

Arguments

ofv
The current ofv. If other than zero then this values is simply returned unchanged.
fim
The current FIM. If other than zero then this values is simply returned unchanged.
use_laplace
Should the Laplace method be used in calculating the expectation of the OFV?
laplace.fim
Should an E(FIM) be calculated when computing the Laplace approximated E(OFV). Typically the FIM does not need to be computed and, if desired, this calculation is done usng the standard MC integration technique, so can be slow.
poped.db
A PopED database.
docc_full
A between occasion variability matrix.
model_switch
A matrix that is the same size as xt, specifying which model each sample belongs to.
ni
A vector of the number of samples in each group.
xt
A matrix of sample times. Each row is a vector of sample times for a group.
x
A matrix for the discrete design variables. Each row is a group.
a
A matrix of covariates. Each row is a group.
fim.calc.type
The method used for calculating the FIM. Potential values:
  • 0 = Full FIM. No assumption that fixed and random effects are uncorrelated. Seemftot0.
  • 1 = Reduced FIM. Assume that there is no co
...
Other arguments passed to the function.
bpopdescr
Matrix defining the fixed effects, per row (row number = parameter_number) we should have:
  • column 1 the type of the distribution for E-family designs (0 = Fixed, 1 = Normal, 2 = Uniform, 3 = User Defined Distribution, 4 = lognormal and 5 = trunca
ddescr
Matrix defining the diagnonals of the IIV (same logic as for the bpopdescr).
d_switch
  • ******START OF CRITERION SPECIFICATION OPTIONS**********
D-family design (1) or ED-familty design (0) (with or without parameter uncertainty)
bpop
Matrix defining the fixed effects, per row (row number = parameter_number) we should have:
  • column 1 the type of the distribution for E-family designs (0 = Fixed, 1 = Normal, 2 = Uniform, 3 = User Defined Distribution, 4 = lognormal and 5 = trunca
d
Matrix defining the diagnonals of the IIV (same logic as for the fixed efects). can also just supply the parameter values as a c().

Value

  • A list containing the FIM and OFV(FIM) or the E(FIM) and E(OFV(FIM)) according to the function arguments.

See Also

Other E-family: ed_laplace_ofv; ed_mftot; evaluate.e.ofv.fim

Other FIM: LinMatrixH; LinMatrixLH; LinMatrixL_occ; ed_laplace_ofv; ed_mftot; evaluate.e.ofv.fim; evaluate.fim; gradf_eps; mf3; mf5; mf6; mf7; mf8; mftot0; mftot1; mftot2; mftot3; mftot4; mftot5; mftot6; mftot7; mftot; mf; ofv_criterion; ofv_fim

Other evaluate_FIM: evaluate.e.ofv.fim; evaluate.fim; ofv_fim

Examples

Run this code
## Warfarin example from software comparison in:
## Nyberg et al., "Methods and software tools for design evaluation 
##   for population pharmacokinetics-pharmacodynamics studies", 
##   Br. J. Clin. Pharm., 2014. 

## Optimization using an additive + proportional reidual error to 
##   avoid sample times at very low concentrations (time 0 or very late samoples).
library(PopED)

## find the parameters that are needed to define from the structural model
ff.PK.1.comp.oral.sd.CL

## -- parameter definition function 
## -- names match parameters in function ff
sfg <- function(x,a,bpop,b,bocc){
  parameters=c(CL=bpop[1]*exp(b[1]),
               V=bpop[2]*exp(b[2]),
               KA=bpop[3]*exp(b[3]),
               Favail=bpop[4],
               DOSE=a[1])
  return(parameters) 
}

# Adding 10\% log-normal Uncertainty to fixed effects (not Favail)
bpop_vals <- c(CL=0.15, V=8, KA=1.0, Favail=1)
bpop_vals_ed_ln <- cbind(ones(length(bpop_vals),1)*4, # log-normal distribution
                         bpop_vals,
                         ones(length(bpop_vals),1)*(bpop_vals*0.1)^2) # 10\% of bpop value
bpop_vals_ed_ln["Favail",]  <- c(0,1,0)
bpop_vals_ed_ln

## -- Define initial design  and design space
poped.db <- create.poped.database(ff_file="ff.PK.1.comp.oral.sd.CL",
                                  fg_file="sfg",
                                  fError_file="feps.add.prop",
                                  bpop=bpop_vals_ed_ln, 
                                  notfixed_bpop=c(1,1,1,0),
                                  d=c(CL=0.07, V=0.02, KA=0.6), 
                                  sigma=c(0.01,0.25),
                                  groupsize=32,
                                  xt=c( 0.5,1,2,6,24,36,72,120),
                                  minxt=0,
                                  maxxt=120,
                                  a=70,
                                  mina=0,
                                  maxa=100)
# warfarin ed model

calc_ofv_and_fim(poped.db)

calc_ofv_and_fim(poped.db,d_switch=0)
  calc_ofv_and_fim(poped.db,d_switch=0,use_laplace=TRUE)
  calc_ofv_and_fim(poped.db,d_switch=0,use_laplace=TRUE,laplace.fim=TRUE)

Run the code above in your browser using DataLab