cold {cold} | R Documentation |
Fit of parametric models via likelihood method
Description
Performs the fit of parametric models via likelihood method. Serial dependence and two random effects are allowed according to the stochastic model chosen. Missing values are automatically accounted for computing the likelihood function.
Usage
cold(formula, random, data, id="id", time="time",subSET,
dependence ="ind", start=NULL, method="BFGS", integration="QUADPACK",
M="6000", control=coldControl(), integrate=coldIntegrate(),
cublim=coldcublim(), trace=FALSE)
Arguments
formula |
a description of the model to be fitted of the form response~predictors. |
random |
the predictos that includes random effects of the form response~predictors. |
data |
a |
id |
a string that matches the name of the |
time |
a string that matches the name of the |
subSET |
an optional expression indicating the subset of the rows of |
dependence |
expression stating which |
start |
a vector of initial values for the nuisance parameters of the likelihood. The dimension of the vector is according to the structure of the dependence model. |
method |
The |
integration |
The |
M |
Number of random points considered to evaluate the integral when the user choose Monte Carlo methods (" |
control |
a list of algorithmic constants for the optimizer |
integrate |
a list of algorithmic constants for the computation of a definite integral using a Fortran-77 subroutine. See "Details". |
cublim |
a list of algorithmic constants for the computation of a definite integral when the integration argument is set to cubature. |
trace |
logical flag: if TRUE, details of the nonlinear optimization are printed. By default the flag is set to FALSE. |
Details
data
are contained in a data.frame
. Each element of the data
argument must be identifiable by a name. The simplest situation occurs when all subjects are observed at the same time points. If there are missing values in the response variable NA
values must be inserted.
The response variable represent the individual profiles of each subject, it is expected a variable in the data.frame
that identifies the correspondence of each component of the response variable to the subject that it belongs,
by default is named id
variable. It is expected a variable named time
to be present in the data.frame
.
If the time
component has been given a different name, this should be declared.
The time
variable should identify the time points that each individual profile has been observed.
subSET
is an optional expression indicating the subset of data
that should be used in the fit. This is a logical statement of the type
variable 1
== "a" & variable 2
> x
which identifies the observations to be selected. All observations are included by default.
For the models with random intercept indR
and AR1R
, by default
cold
compute integrals based on a Fortran-77 subroutine package
QUADPACK
. For some data sets, when the dependence
structure has
a random intercept term, the user could have the need to do a specification
of the integrate
argument list changing
the integration limits in the coldIntegrate
function.
The coldIntegrate
is an auxiliary function for controlling cold
fitting. There are more two options to fit models with a random intercept by setting integration="cubature"
or integration="MC"
.
For the models with two random effects indR2
and AR1R2
, the user has two define the integration
method by setting integration="cubature"
or integration="MC"
. The second random effect is
considered to be included in the time
argument that plays the role of the time variable in the data.frame
. For the two random effects models we have a random intercept and a random slope.
Value
An object of class cold
.
Background
Assume that each subject of a given set has been observed at number of successive time points. For each subject and for each time point, a count response variable, and a set of covariates are recorded.
Individual random effects, b_0
, can be incorporated in the form
of a random intercept term of the linear predictor of the logarithmic regression, assuming a normal distribution of mean 0 and variance
\sigma^2
, parameterized as \omega=\log(\sigma^2)
.
The combination of serial Markov dependence
with a random intercept corresponds here to the dependence
structures indR
, AR1R
.
Two dimensional randoms effects can also be incorporated the linear predictor of the logarithmic regression. Consider a two-dimensional vector of random effects b=(b_0,b_1)
where we assumed to be a random sample from the bivariate normal distribution, b\sim N(0,D)
with var(b_0)=\sigma^2_{b_0}
, var(b_1)=\sigma^2_{b_1}
and cov(b_0,b_1)=0
.
The combination of serial Markov dependence
with two random effects corresponds here to the dependence
structures indR2
, AR1R2
.
Original sources of the above formulation are given by Azzalini (1994), as for the AR1, and by Gonçalves (2002) and Gonçalves and Azzalini (2008) for the its extensions.
Author(s)
M. Helena Gonçalves and M. Salomé Cabral
References
Azzalini, A. (1994). Logistic regression and other discrete data models for serially correlated observations. J. Ital. Stat. Society, 3 (2), 169-179. doi: 10.1007/bf02589225.
Gonçalves, M. Helena (2002). Likelihood methods for discrete longitudinal data. PhD thesis, Faculty of Sciences, University of Lisbon.
Gonçalves, M. Helena, Cabral, M. Salomé, Ruiz de Villa, M. Carme, Escrich, Eduardo and Solanas, Montse. (2007). Likelihood approach for count data in longitudinal experiments. Computational statistics and Data Analysis, 51, 12, 6511-6520. doi: 10.1016/j.csda.2007.03.002.
Gonçalves, M. Helena and Cabral, M. Salomé. (2021). cold
: An R
Package for the Analysis of Count Longitudinal Data. Journal of Statistical Software, 99, 3, 1–24. doi: 10.18637/jss.v099.i03.
See Also
cold-class
, coldControl
, coldIntegrate
, optim
Examples
##### data = seizure
str(seizure)
### AR1
seiz1M <- cold(y ~ lage + lbase + v4 + trt + trt:lbase, data = seizure,
start = NULL, dependence = "AR1")
summary(seiz1M)
getAIC(seiz1M)
getLogLik(seiz1M)
### independence
seiz0M <- cold(y ~ lage + lbase + v4 + trt + trt:lbase, data = seizure,
start = NULL, dependence = "ind")
summary(seiz0M)
getAIC(seiz0M)
getLogLik(seiz0M)
##### data= datacold
str(datacold)
### AR1R with the default integration method
mod1R <- cold(z ~ Time * Treatment, random = ~ 1, data = datacold,
time = "Time", id = "Subject", dependence = "AR1R")
summary (mod1R)
vareff(mod1R)
randeff(mod1R)
### AR1R with integration="cubature"
mod1R.c <- cold(z ~ Time*Treatment, random = ~ 1, data = datacold,
time = "Time", id = "Subject", dependence = "AR1R", integration = "cubature")
summary (mod1R.c)