aboutsummaryrefslogtreecommitdiff
path: root/man/saemix.Rd
blob: a664b0ccd5cf17a270138058c9e660075c0f2df4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/saemix.R
\name{saemix}
\alias{saemix}
\alias{saemix.mmkin}
\alias{saemix_model}
\alias{saemix_data}
\title{Create saemix models}
\usage{
saemix(model, data, control, ...)

\method{saemix}{mmkin}(
  model,
  data,
  control = list(displayProgress = FALSE, print = FALSE, save = FALSE, save.graphs =
    FALSE),
  cores = 1,
  verbose = FALSE,
  suppressPlot = TRUE,
  ...
)

saemix_model(object, cores = 1, verbose = FALSE, ...)

saemix_data(object, verbose = FALSE, ...)
}
\arguments{
\item{model}{For the default method, this is an \link[saemix:saemixModel]{saemix::saemixModel} object.
If this is an \link{mmkin} row object, the \link[saemix:saemixModel]{saemix::saemixModel} is created
internally from the \link{mmkin} object.}

\item{\dots}{Further parameters passed to \link[saemix:saemixData]{saemix::saemixData}
and \link[saemix:saemixModel]{saemix::saemixModel}.}

\item{cores}{The number of cores to be used for multicore processing using
\code{\link[parallel:mclapply]{parallel::mclapply()}}. Using more than 1 core is experimental and may
lead to uncontrolled forking, apparently depending on the BLAS version
used.}

\item{verbose}{Should we print information about created objects?}

\item{object}{An \link{mmkin} row object containing several fits of the same
\link{mkinmod} model to different datasets}
}
\value{
An \link[saemix:SaemixObject-class]{saemix::SaemixObject}.

An \link[saemix:SaemixModel-class]{saemix::SaemixModel} object.

An \link[saemix:SaemixData-class]{saemix::SaemixData} object.
}
\description{
The saemix function defined in this package is an S3 generic function
using \code{\link[saemix:saemix]{saemix::saemix()}} as its method for \link[saemix:SaemixModel-class]{saemix::SaemixModel} objects.
}
\details{
The method for mmkin row objects sets up a nonlinear mixed effects model for
use with the saemix package. An mmkin row object is essentially a list of
mkinfit objects that have been obtained by fitting the same model to
a list of datasets.

Starting values for the fixed effects (population mean parameters, argument psi0 of
\code{\link[saemix:saemixModel]{saemix::saemixModel()}} are the mean values of the parameters found using
\link{mmkin}.
}
\examples{
\dontrun{
# We can load saemix, but should exclude the saemix function
# as it would mask our generic version of it
library(saemix, exclude = "saemix")
ds <- lapply(experimental_data_for_UBA_2019[6:10],
 function(x) subset(x$data[c("name", "time", "value")]))
names(ds) <- paste("Dataset", 6:10)
f_mmkin_parent_p0_fixed <- mmkin("FOMC", ds, cores = 1,
  state.ini = c(parent = 100), fixed_initials = "parent", quiet = TRUE)
f_saemix_p0_fixed <- saemix(f_mmkin_parent_p0_fixed)

f_mmkin_parent <- mmkin(c("SFO", "FOMC", "DFOP"), ds, quiet = TRUE)
f_saemix_sfo <- saemix(f_mmkin_parent["SFO", ])
f_saemix_fomc <- saemix(f_mmkin_parent["FOMC", ])
f_saemix_dfop <- saemix(f_mmkin_parent["DFOP", ])

# As this returns an SaemixObject, we can use functions from saemix
compare.saemix(list(f_saemix_sfo, f_saemix_fomc, f_saemix_dfop))

f_mmkin_parent_tc <- update(f_mmkin_parent, error_model = "tc")
f_saemix_fomc_tc <- saemix(f_mmkin_parent_tc["FOMC", ])
compare.saemix(list(f_saemix_fomc, f_saemix_fomc_tc))

dfop_sfo <- mkinmod(parent = mkinsub("DFOP", "A1"),
  A1 = mkinsub("SFO"))
f_mmkin <- mmkin(list("DFOP-SFO" = dfop_sfo), ds, quiet = TRUE, solution_type = "analytical")
# This takes about 4 minutes on my system
f_saemix <- saemix(f_mmkin)

# Using a single core, it takes about 6 minutes, using 10 cores it is slower
# instead of faster
f_mmkin_des <- mmkin(list("DFOP-SFO" = dfop_sfo), ds, quiet = TRUE, solution_type = "deSolve")
f_saemix_des <- saemix(f_mmkin_des, cores = 1)
compare.saemix(list(f_saemix, f_saemix_des))

}
}

Contact - Imprint