MumixedContCont.MultS: Fits a multivariate mixed-effects model to assess surrogacy...

View source: R/MumixedContCont.MultS.R

MumixedContCont.MultSR Documentation

Fits a multivariate mixed-effects model to assess surrogacy in the meta-analytic multiple-trial setting (Continuous-continuous case with multiple surrogates)

Description

The function MumixedContCont.MultS uses the multivariate mixed-effects approach to estimate trial- and individual-level surrogacy when the data of multiple clinical trials are available and multiple surrogates are considered for a single true endpoint. See the Details section below.

Usage

MumixedContCont.MultS(Dataset, Endpoints=True~Surr.1+Surr.2, 
Treat="Treat", Trial.ID="Trial.ID", Pat.ID="Pat.ID", 
Model=c("Full"), Min.Trial.Size=2, Alpha=.05, Opt="nlminb")

Arguments

Dataset

A data.frame that should consist of one line per patient. Each line contains one or more surrogate value(s), a true endpoint value, a treatment indicator, a patient ID, and a trial ID.

Endpoints

An equation in the form True~Surr.1+Surr.2 that specifies the true endpoint followed by the surrogate endpoint(s).

Treat

The name of the variable in Dataset that contains the treatment indicators. The treatment indicator should be coded as 1 for the experimental group and -1 for the control group.

Trial.ID

The name of the variable in Dataset that contains the trial ID to which the patient belongs.

Pat.ID

The name of the variable in Dataset that contains the patient's ID.

Model

The type of model that should be fitted, i.e., Model=c("Full") or Model=c("Reduced"). For details, see below or Van der Elst et al. (2023). Default Model=c("Full").

Min.Trial.Size

The minimum number of patients that a trial should contain in order to be included in the analysis. If the number of patients in a trial is smaller than the value specified by Min.Trial.Size, the data of the trial are excluded from the analysis. Default 2.

Alpha

The \alpha-level that is used to determine the confidence intervals around R^2_{trial} and R^2_{indiv} (based on the approach of Lee, 1971). Default 0.05.

Opt

The optimizer to be used by the lme function (the fits the mixed-effects model), with options nlminb or optim. For details, see ?lmeControl. Default Opt="nlminb".

Details

When a full model is requested (by using the argument Model=c("Full") in the function call), the following mixed-effects model is fitted:

S1_{ij}=\mu_{S1}+m_{S1i}(\alpha_{S1}+a_{S1i})Z_{ij}+\varepsilon_{S1ij},

S2_{ij}=\mu_{S2}+m_{S2i}(\alpha_{S2}+a_{S2i})Z_{ij}+\varepsilon_{S2ij},

SK_{ij}=\mu_{SK}+m_{SKi}(\alpha_{SK}+a_{SKi})Z_{ij}+\varepsilon_{SKij},

T_{ij}=\mu_{T}+m_{Ti}(\beta_{T}+b_{Ti})Z_{ij}+\varepsilon_{Tij},

where Z_{ij} is the treatment indicator for subject j in trial i, \mu_{S1}, \mu_{S2}, ... \mu_{SK} and \mu_{T} are the fixed intercepts for S1, S2, ... SK and T, m_{S1i}, m_{S2i}, ... m_{SKi}, and m_{Ti} are the corresponding random intercepts, \alpha_{S1}, \alpha_{S2}, ..., \alpha_{SK} and \beta_T are the fixed treatment effects for S1, S2, ... SK and T, and a_{S1i}, a_{S2i}, ... a_{SKi} and b_{Ti} are the corresponding random treatment effects. The vector of the random effects \left(m_{S1i},\:m_{S2i}, \: ... , \: m_{SKi},\: m_{Ti},\: a_{S1i},\: a_{S2i},\: ... , \: a_{SKi},\: b_{Ti}\right) is assumed to be mean-zero normally distributed with unstructured variance-covariance matrix \mathbf{D}. Similarly, the residuals \varepsilon_{S1ij}, \varepsilon_{S2ij}, ... \varepsilon_{SKij}, \varepsilon_{Tij} are assumed to be mean-zero normally distributed with unstructured variance-covariance matrix \mathbf{\Sigma}.

When a reduced model is requested (by using the argument Model=c("Reduced") in the function call), the trial-specific intercepts for the surrogate endpoints and the true endpoint in the above model are replaced by common intercepts.

For the full model, R^2_{trial} and R^2_{indiv} are estimated based on \mathbf{D} and \mathbf{\Sigma}, respectively:

R_{trial}^{2}=R^2_{b_{Ti}|m_{S1i},\: m_{S2i},\: ..., \:m_{SKi}, \: a_{S1i},\: a_{S2i}, \: ... \: a_{SKi}}= \dfrac{\boldsymbol{D}_{ST}^T \: \boldsymbol{D}^{-1}_{SS} \: \boldsymbol{D}_{ST}}{\boldsymbol{D}_{TT}},

R_{indiv}^{2}=R_{\varepsilon_{Tij}|\varepsilon_{S1ij}, \: \varepsilon_{S2ij}, \: ..., \: \varepsilon_{SKij}}^{2}= \dfrac{\boldsymbol{\Sigma}_{ST}^T \: \boldsymbol{\Sigma}^{-1}_{SS} \: \boldsymbol{\Sigma}_{ST}}{\boldsymbol{\Sigma}_{TT}}.

For the reduced model, the reduced \mathbf{D} and \mathbf{\Sigma} are used.

Value

An object of class MumixedContCont.MultS with components,

Data.Analyze

Prior to conducting the surrogacy analysis, data of patients who have a missing value for the surrogate and/or the true endpoint are excluded. In addition, the data of trials (i) in which only one type of the treatment was administered, and (ii) in which either the surrogate or the true endpoint was a constant are excluded. In addition, the user can specify the minimum number of patients that a trial should contain in order to include the trial in the analysis. If the number of patients in a trial is smaller than the value specified by Min.Trial.Size, the data of the trial are excluded. Data.Analyze is the dataset on which the surrogacy analysis was conducted.

Obs.Per.Trial

A data.frame that contains the total number of patients per trial and the number of patients who were administered the control treatment and the experimental treatment in each of the trials (in Data.Analyze).

Fixed.Effects

A data.frame that contains the fixed intercepts and treatment effects for the true and the surrogate endpoints.

Random.Effects

A data.frame that contains the random intercepts and treatment effects for the true and the surrogate endpoints.

Trial.R2.Lee

A data.frame that contains the trial-level coefficient of determination (R^2_{trial}), its standard error and confidence interval based on the approach of Lee (1971).

Indiv.R2.Lee

A data.frame that contains the individual-level coefficient of determination (R^2_{indiv}), its standard error and confidence interval based on the approach of Lee (1971).

D

The variance-covariance matrix of the trial-specific intercepts and treatment effects for the surrogates and true endpoints (when a full model is fitted, i.e., when Model=c("Full") is used in the function call), or the variance-covariance matrix of the trial-specific treatment effects for the surrogates and true endpoints (when a reduced model is fitted, i.e., when Model=c("Reduced") is used in the function call).

Cond.Number.D.Matrix

The condition number of the \mathbf{D} matrix.

Cond.Number.Sigma.Matrix

The condition number of the \mathbf{\Sigma} matrix.

Fitted.Model

The fitted mixed-effects model.

Author(s)

Wim Van der Elst

References

Burzykowski, T., Molenberghs, G., & Buyse, M. (2005). The evaluation of surrogate endpoints. New York: Springer-Verlag.

Buyse, M., Molenberghs, G., Burzykowski, T., Renard, D., & Geys, H. (2000). The validation of surrogate endpoints in meta-analysis of randomized experiments. Biostatistics, 1, 49-67.

Lee, Y. S. (1971). Tables of the upper percentage points of the multiple correlation. Biometrika, 59, 175-189.

Van der Elst et al. (2024). Multivariate surrogate endpoints for normally distributed continuous endpoints in the meta-analytic setting.

See Also

MufixedContCont.MultS

Examples

## Not run:  # time consuming code part
data(PANSS)

# Do a surrogacy analysis with T=Total PANSS score, 
# S1=Negative symptoms and S2=Positive symptoms
# Fit a full mixed-effects model:
Fit.Neg.Pos <- MumixedContCont.MultS(Dataset = PANSS, 
  Endpoints = Total ~ Neg+Pos, Model = "Full", 
  Treat = "Treat", Trial.ID = "Invest", Pat.ID = "Pat.ID")
  
# Model does not converge, as often happens with the 
# mixed-effects approach. Instead, fit a full multivariate 
# fixed-effects model with weighting according to the  
# number of patients in stage 2 of the two stage approach to assess surrogacy:
Fit.Neg.Pos <- MufixedContCont.MultS(Dataset = PANSS, 
  Endpoints = Total ~ Neg+Pos, Model = "Full", 
  Treat = "Treat", Trial.ID = "Invest", Pat.ID = "Pat.ID")
  
# Obtain a summary of the results
summary(Fit.Neg.Pos)
# 

## End(Not run)

Surrogate documentation built on June 22, 2024, 9:16 a.m.