Type: | Package |
Title: | Scale Mixture of Normal Distribution in Linear Mixed-Effects Model |
Version: | 1.0.0 |
Maintainer: | Kelin Zhong <kelin.zhong@uconn.edu> |
Description: | Bayesian analysis of censored linear mixed-effects models that replace Gaussian assumptions with a flexible class of distributions, such as the scale mixture of normal family distributions, considering a damped exponential correlation structure which was employed to account for within-subject autocorrelation among irregularly observed measures. For more details, see Kelin Zhong, Fernanda L. Schumacher, Luis M. Castro, Victor H. Lachos (2025) <doi:10.1002/sim.10295>. |
Depends: | R (≥ 4.2) |
Imports: | rstan (≥ 2.26.23), StanHeaders (≥ 2.26.28), MASS (≥ 7.3-60), tmvtnorm (≥ 1.5), mvtnorm (≥ 1.2-3), mnormt (≥ 2.1.1), methods, stats, LaplacesDemon (≥ 16.1.6), TruncatedNormal (≥ 2.2.2), numDeriv (≥ 2016.8-1.1) |
URL: | https://github.com/KelinZhong/SMNlmec |
BugReports: | https://github.com/KelinZhong/SMNlmec/issues |
License: | GPL-3 |
Encoding: | UTF-8 |
LazyData: | true |
RoxygenNote: | 7.3.1 |
NeedsCompilation: | no |
Packaged: | 2025-01-30 00:21:04 UTC; Colin |
Author: | Kelin Zhong [aut, cre], Fernanda L. Schumacher [aut], Luis M. Castro [aut], Victor H. Lachos [aut], Jalmar M.F. Carrasco [aut] |
Repository: | CRAN |
Date/Publication: | 2025-01-30 08:10:02 UTC |
Bayesian Censored Mixed-Effects Models with Damped Exponential Correlation Structures for Scale Mixture of Normal distributions error
Description
This function fits left, right censored mixed-effects linear model, with scale mixture of normal distribution errors, using the Stan. It returns estimates, standard errors and LPML, AIC, BIC and DIC.
Usage
SMNlmec.est(
ID,
x_set,
z_set,
tt,
y_complete,
censor_vector,
dist = "Normal",
struc = "UNC",
direction = "left",
thin_num = 1,
chains_num = 1,
iter_num = 3000,
burn_percen = 0.1,
seed_set = NULL,
adapt_delta_set = 0.8
)
Arguments
ID |
Vector |
x_set |
Design matrix of the fixed effects of order |
z_set |
Design matrix of the random effects of order |
tt |
Vector |
y_complete |
Vector |
censor_vector |
Vector |
dist |
Distribution of the random effects and random error. Available options are |
struc |
Structure of the correlation structure. Available options are |
direction |
Direction of censoring type. Available options are |
thin_num |
A positive integer specifying the period for saving samples. The default is 5. See more details in rstan::stan(). |
chains_num |
A positive integer specifying the number of chains generating by rstan::stan(). The default is 3. |
iter_num |
A positive integer specifying the number of iterations for each chain (including warmup). The default is 5000. |
burn_percen |
A percentage of the warm-up iterations in each chain the Stan. The default is 0.1. |
seed_set |
A random seed. The default is NULL. |
adapt_delta_set |
A parameter to control the sampler's behavior. The default is 0.8. See rstan::stan() for more details. |
Value
Return a S4 class SMNlmecfit object. Using function SMNlmec.summary()
to obtain the estimation of parameters and model selection criteria. The SMNlmecfit include:
stan_object |
A stanfit object from rstan::stan(). |
model_criteria |
A list includes LPML, DIC, EAIC, EBIC, K-L divergence. |
dist_set |
The setting of distribution of the stan model. |
struc_set |
The setting of correlation structure of the stan model. |
References
Kelin Zhong, Fernanda L. Schumacher, Luis M. Castro and Victor H. Lachos. Bayesian analysis of censored linear mixed-effects models for heavy-tailed irregularly observed repeated measures. Statistics in Medicine, 2025. doi:10.1002/sim.10295
Examples
require(rstan)
require(StanHeaders)
require(MASS)
require(tmvtnorm)
require(mvtnorm)
require(mnormt)
data("UTIdata_sub")
data1 <- UTIdata_sub
y1 <- c(log10(data1$RNA))
cc <- (data1$RNAcens==1)+0
y_com<-as.numeric(y1)
rho_com<-as.numeric(cc)
x <- cbind(
(data1$Fup==0)+0,
(data1$Fup==1)+0,
(data1$Fup==3)+0,
(data1$Fup==6)+0,
(data1$Fup==9)+0,
(data1$Fup==12)+0,
(data1$Fup==18)+0,
(data1$Fup==24)+0
)
z <- matrix(rep(1, length(y1)), ncol=1)
UTI_T_DEC <- SMNlmec.est(ID = data1$Patid, x_set = x, z_set = z,
tt = data1$Fup, y_complete = y_com,
censor_vector = rho_com, dist = "Student",
struc = "DEC", direction = "left",
thin_num = 1, chains_num = 1, iter_num = 3000,
burn_percen = 0.1, seed_set = 9955,
adapt_delta_set = 0.8)
SMNlmec.summary(UTI_T_DEC)
Generating Censored UNC, DEC, CAR errors with Mixed Effects, for normal, student's-t and slash distribution.
Description
Generating Censored UNC, DEC, CAR errors with Mixed Effects, for normal, student's-t and slash distribution.
Usage
SMNlmec.sim(
m,
x,
z,
tt,
nj,
beta,
sigma2,
D,
phi,
struc = "UNC",
typeModel = "Normal",
p.cens = 0.1,
n.cens = NULL,
cens_type = "right",
nu_set = NULL
)
Arguments
m |
Number of individuals. |
x |
Design matrix of the fixed effects of order |
z |
Design matrix of the random effects of order |
tt |
Vector |
nj |
Vector |
beta |
Vector of values fixed effects. |
sigma2 |
Values of the scalar of the variance matrix. |
D |
Variance matrix of the random effects of order |
phi |
Vector of parameter in the |
struc |
Structure for the simulated data. Available options are |
typeModel |
Distribution of the simulated data. Available options are |
p.cens |
Percentage of censored measurements in the responses. The default value is 0.1. |
n.cens |
Number of censored measurements in the responses. The default value is NULL. |
cens_type |
The direction of cesoring. Available options are |
nu_set |
degrees of freedom for student's-t or slash simulated data. The default value is NULL. |
Value
return list:
cc |
Vector of censoring indicators. |
y_cc |
Vector of responses censoring. |
Examples
p.cens <- 0.1
m <- 50
D <- matrix(c(0.049,0.001,0.001,0.002),2,2)
sigma2_set <- 0.15
beta <- c(-2.83,-0.18)
nu <- 2
phi <- c(0.6,2)
nj <- rep(6,m)
tt <- rep(1:6,length(nj))
X1 <- rep(1,sum(nj))
X2 <- tt
x <- as.matrix(cbind(X1,X2))
Z1 <- rep(1,sum(nj))
Z2 <- tt
z <- as.matrix(cbind(Z1,Z2))
ID_sim <- rep(0,length(tt))
ID_log <- 0
for(i in 1:m) {
for(j in 1:nj[i]) {
ID_sim[ID_log + j] <- i
}
ID_log <- ID_log + nj[i]
}
Slash_DEC_sim <- SMNlmec.sim(m = m,x = x,z = z,tt = tt,nj = nj,beta = beta,
sigma2 = sigma2_set,D = D,phi= phi,struc ="DEC",
typeModel="Slash",p.cens = p.cens,n.cens = NULL,
cens_type="right",nu_set=nu)
head(Slash_DEC_sim$cc)
sum(Slash_DEC_sim$cc)/length(Slash_DEC_sim$cc)
head(Slash_DEC_sim$y_cc)
y_com <- as.numeric(Slash_DEC_sim$y_cc)
rho_com <- as.numeric(Slash_DEC_sim$cc)
tem <- tt
Slash_DEC_est <- SMNlmec.est(ID = ID_sim, x_set = x, z_set = z,
tt = tem, y_complete = y_com,
censor_vector = rho_com, dist = "Slash",
struc = "DEC", direction = "right",
thin_num = 1, chains_num = 1, iter_num = 3000,
burn_percen = 0.1, seed_set = 9955,
adapt_delta_set = 0.8)
SMNlmec.summary(Slash_DEC_est)
SMNlmecfit Summary
Description
A generic function to provide a summary for objects of class SMNlmecfit
.
Usage
SMNlmec.summary(object)
## S4 method for signature 'SMNlmecfit'
SMNlmec.summary(object)
Arguments
object |
An object of class |
Value
A summary of model estimations, R-hats, standard errors, and criteria.
A printed summary of the SMNlmecfit object.
SMNlmecfit Class
Description
SMNlmecfit Class
Slots
stan_object
stanfit object from rstan.
model_criteria
list, model selection criteria.
dist_set
character, the name of distribution.
struc_set
character, the name of correlation structure.
Create SMNlmecfit Objects
Description
A function to create objects of class SMNlmecfit
.
Usage
SMNlmecfit.creator(stan_object, model_criteria, dist_set, struc_set)
Arguments
stan_object |
stanfit object from rstan. |
model_criteria |
list, model selection criteria. |
dist_set |
character, the name of distribution. |
struc_set |
character, the name of correlation structure. |
Value
A SMNlmecfit object containing:
stan_object |
A stanfit object from rstan::stan(). |
model_criteria |
A list includes LPML, DIC, EAIC, EBIC, K-L divergence. |
dist_set |
The setting of distribution of the stan model. |
struc_set |
The setting of correlation structure of the stan model. |
Data set for Unstructured Treatment Interruption Study
Description
Data set from a study of Unstructured Treatment Interruption in HIV-infected adolescents in four institutions in the US. The main outcome is the HIV-1 RNA viral load, which is subject to censoring below the lower limit of detection of the assay (50 copies/mL). The censored observations are indicated by the variable RNAcens.
Usage
data(UTIdata)
Format
A data frame with 373 observations on the following 5 variables.
- Patid
patient ID
- Days.after.TI
days after treatment interruption.
- Fup
follow-up months
- RNA
viral load RNA
- RNAcens
censoring indicator for viral load
References
Saitoh, A., Foca, M, et al. (2008), Clinical outcome in perinatally acquired HIV-infected children and adolescents after unstructured treatment interruption, Pediatrics,121, e513-e521.
Sub data set for Unstructured Treatment Interruption Study
Description
Data set from a study of Unstructured Treatment Interruption in HIV-infected adolescents in four institutions in the US. The main outcome is the HIV-1 RNA viral load, which is subject to censoring below the lower limit of detection of the assay (50 copies/mL). The censored observations are indicated by the variable RNAcens. Excluding subjects whose observations are less than 2 and with missing RNA (excluding subject ID C6 T16).
Usage
data(UTIdata_sub)
Format
A data frame with 360 observations on the following 5 variables.
- Patid
patient ID
- Days.after.TI
days after treatment interruption.
- Fup
follow-up months
- RNA
viral load RNA
- RNAcens
censoring indicator for viral load
References
Saitoh, A., Foca, M, et al. (2008), Clinical outcome in perinatally acquired HIV-infected children and adolescents after unstructured treatment interruption, Pediatrics,121, e513-e521.