evaluate.fim {PopED} | R Documentation |
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,
approx.method = NULL,
FOCE.num = 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:
|
approx.method |
Approximation method for model, 0=FO, 1=FOCE, 2=FOCEI, 3=FOI |
FOCE.num |
Number individuals in each step of FOCE approximation method |
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 number of individuals in each group. |
deriv.type |
A number indicating the type of derivative to use:
|
... |
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()
,
efficiency()
,
evaluate.e.ofv.fim()
,
gradf_eps()
,
mf3()
,
mf7()
,
mftot()
,
ofv_criterion()
,
ofv_fim()
Other evaluate_design:
evaluate_design()
,
evaluate_power()
,
get_rse()
,
model_prediction()
,
plot_efficiency_of_windows()
,
plot_model_prediction()
Other evaluate_FIM:
calc_ofv_and_fim()
,
evaluate.e.ofv.fim()
,
ofv_fim()
Examples
## 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_fun = ff.PK.1.comp.oral.sd.CL,
fg_fun = sfg,
fError_fun = feps.prop,
bpop=c(CL=0.15, V=8, KA=1.0, Favail=1),
# notfixed_bpop=c(1,1,1,0),
notfixed_bpop=c(CL=1,V=1,KA=1,Favail=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)
det(FIM.1)^(1/7)
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)
det(FIM.0)^(1/7)
get_rse(FIM.0,poped.db)
## 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)
## evaluate FIM and rse with prior FIM.1
poped.db.prior = create.poped.database(poped.db, prior_fim = FIM.1)
FIM.1.prior <- evaluate.fim(poped.db.prior)
all.equal(FIM.1.prior,FIM.1) # the FIM is only computed from the design in the poped.db
get_rse(FIM.1.prior,poped.db.prior) # the RSE is computed with the prior information