After adjust_batch
has performed
adjustment for batch effects, diagnose_models
provides an overview of parameters and adjustment models.
Information is only available about the most recent
run of adjust_batch
on a dataset.
diagnose_models(data)
Batch-adjusted dataset (in which
adjust_batch
has stored information on batch
adjustment in the attribute .batchtma
)
List:
adjust_method
Method used for batch adjustment
(see adjust_batch
).
markers
Variables of biomarkers for adjustment
suffix
Suffix appended to variable names
batchvar
Variable indicating batch
confounders
Confounders, i.e. determinants of
biomarker levels that differ between batches.
Returned only if used by the model.
adjust_parameters
Tibble of parameters used to
obtain adjust biomarker levels. Parameters differ between
methods:
simple
, standardize
, and ipw
: Estimated adjustment
parameters are a tibble with one batchmean
per marker
and .batchvar
.
quantreg
returns a tibble with numerous values per
marker
and .batchvar
: unadjusted (un_...
) and
adjusted (ad_...
) estimates of the lower (..._lo
) and
upper quantile (..._hi
) and interquantile range (..._iq
),
plus the lower (all_lo
) and upper quantiles (all_hi
)
across all batches.
quantnorm
does not explicitly estimate parameters.
model_fits
List of model fit objects, one
per biomarker. Models differ between methods:
standardize
: Linear regression model for the biomarker with
.batchvar
and confounders
as predictors, from which
marginal predictions of batch means for each batch are obtained.
ipw
: Logistic (2 batches) or multinomial models for assignment
to a specific batch with .batchvar
as the response and
confounders
as the predictors, used to generate stabilized
inverse-probability weights that are then used in a linear regression
model to estimate marginally standardized batch means.
quantreg
: Quantile regression with the marker as the response
variable and .batchvar
and confounders
as predictors.
simple
and quantnorm
do not fit any regression models.
# Data frame with two batches
# Batch 2 has higher values of biomarker and confounder
df <- data.frame(
tma = rep(1:2, times = 10),
biomarker = rep(1:2, times = 10) +
runif(max = 5, n = 20),
confounder = rep(0:1, times = 10) +
runif(max = 10, n = 20)
)
# Adjust for batch effects
df2 <- adjust_batch(
data = df,
markers = biomarker,
batch = tma,
method = quantreg,
confounders = confounder
)
# Show overview of model diagnostics:
diagnose_models(data = df2)
#> Dataset after batch effect adjustment using 'method = quantreg'
#> Variable defining batches: tma
#> Adjusted variables: biomarker_adj5
#> Confounders: confounder
#>
#> Estimated adjustment parameters:
#> # A tibble: 2 × 10
#> .batchvar un_lo ad_lo un_hi ad_hi all_lo all_iq un_iq ad_iq marker
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
#> 1 1 1.87 1.49 4.40 4.27 3.43 1.94 2.53 2.78 biomarker
#> 2 2 3.95 3.79 5.83 6.36 3.43 1.94 1.88 2.57 biomarker
#>
#> Models for adjustment:
#> [[1]]
#> [[1]][[1]]
#> Call:
#> quantreg::rq(formula = stats::reformulate(response = "variable",
#> termlabels = c(".batchvar", confounders)), tau = tau, data = .x,
#> method = rq_method)
#>
#> Coefficients:
#> tau= 0.25 tau= 0.75
#> (Intercept) 1.89190459 3.2425575
#> .batchvar2 2.30394908 2.0915181
#> confounder -0.06601737 0.1694321
#>
#> Degrees of freedom: 20 total; 17 residual
#>
#>
# Obtain first fitted regression model:
fit <- diagnose_models(data = df2)$model_fits[[1]][[1]]
# Obtain residuals for this model:
residuals(fit)
#> tau= 0.25 tau= 0.75
#> [1,] 3.053685e+00 -2.398958e-01
#> [2,] 5.451593e-01 -1.473216e+00
#> [3,] 2.692821e+00 2.910366e-09
#> [4,] 1.393218e+00 -7.709020e-01
#> [5,] -1.814681e-02 -2.772697e+00
#> [6,] 1.824600e+00 -7.421619e-12
#> [7,] 3.582158e+00 5.384138e-12
#> [8,] 3.181857e+00 5.309177e-01
#> [9,] 4.320233e+00 1.687314e+00
#> [10,] 3.324466e-09 -2.029627e+00
#> [11,] 1.708929e+00 -6.934826e-01
#> [12,] -3.083656e-01 -2.556758e+00
#> [13,] -8.219481e-10 -1.416722e+00
#> [14,] 8.356639e-01 -1.635172e+00
#> [15,] 1.833769e+00 -4.352109e-01
#> [16,] 1.779953e+00 3.590384e-01
#> [17,] 3.778534e-01 -1.860376e+00
#> [18,] 1.806790e+00 -8.851936e-01
#> [19,] -2.746736e-08 -3.368652e+00
#> [20,] -1.047611e-01 -2.384465e+00