Learn R Programming

PopED (version 0.1.1)

evaluate.fim: Evaluate the Fisher Information Matrix (FIM)

Description

Compute the FIM given the model, parameters, design and methods defined in the PopED database. Some of the arguments coming from the PopED database can be overwritten; by default these arguments are NULL in the function, if they are supplied then they are used instead of the arguments from the PopED database.

Usage

evaluate.fim(poped.db, fim.calc.type = NULL, bpop.val = NULL,
  d_full = NULL, docc_full = NULL, sigma_full = NULL,
  model_switch = NULL, ni = NULL, xt = NULL, x = NULL, a = NULL,
  groupsize = NULL, deriv.type = NULL, ...)

Arguments

poped.db
A PopED database.
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
bpop.val
The fixed effects parameter values. Supplied as a vector.
d_full
A between subject variability matrix (OMEGA in NONMEM).
docc_full
A between occasion variability matrix.
sigma_full
A residual unexplained variability matrix (SIGMA in NONMEM).
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.
groupsize
A vector of the numer of individuals in each group.
deriv.type
A number indicating the type of derivative to use:
  • 0=Complex difference
  • 1=Central difference
  • 20=Analytic derivative (placeholder)
  • 30=Automatic differentiation (placeholder)
...
Other arguments passed to the function.

Value

  • The FIM.

See Also

Other FIM: LinMatrixH; LinMatrixLH; LinMatrixL_occ; calc_ofv_and_fim; ed_laplace_ofv; ed_mftot; evaluate.e.ofv.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: calc_ofv_and_fim; evaluate.e.ofv.fim; ofv_fim

Other evaluate_design: get_rse; model_prediction; plot_efficiency_of_windows; plot_model_prediction

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. 

library(PopED)

## find the parameters that are needed to define from the structural model
ff.PK.1.comp.oral.md.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) 
}

## -- 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.prop",
                                  bpop=c(CL=0.15, V=8, KA=1.0, Favail=1), 
                                  notfixed_bpop=c(1,1,1,0),
                                  d=c(CL=0.07, V=0.02, KA=0.6), 
                                  sigma=0.01,
                                  groupsize=32,
                                  xt=c( 0.5,1,2,6,24,36,72,120),
                                  minxt=0,
                                  maxxt=120,
                                  a=70)


## evaluate initial design with the reduced FIM
FIM.1 <- evaluate.fim(poped.db) 
FIM.1
det(FIM.1)
get_rse(FIM.1,poped.db)

## evaluate initial design with the full FIM
FIM.0 <- evaluate.fim(poped.db,fim.calc.type=0) 
FIM.0
det(FIM.0)
get_rse(FIM.0,poped.db,fim.calc.type=0)

## evaluate initial design with the reduced FIM 
## computing all derivatives with respect to the 
## standard deviation of the residual unexplained variation 
FIM.4 <- evaluate.fim(poped.db,fim.calc.type=4) 
FIM.4
det(FIM.4)
get_rse(FIM.4,poped.db,fim.calc.type=4)

## evaluate initial design with the full FIM with A,B,C matricies
## should give same answer as fim.calc.type=0
FIM.5 <- evaluate.fim(poped.db,fim.calc.type=5) 
FIM.5
det(FIM.5)
get_rse(FIM.5,poped.db,fim.calc.type=5)

## evaluate initial design with the reduced FIM with 
## A,B,C matricies and derivative of variance
## should give same answer as fim.calc.type=1 (default)
FIM.7 <- evaluate.fim(poped.db,fim.calc.type=7) 
FIM.7
det(FIM.7)
get_rse(FIM.7,poped.db,fim.calc.type=7)

Run the code above in your browser using DataLab