StabCalc calculates relative and absolute outcome stability for MYOs based on the methods of Knapp el al. (2018). This function is designed for use within the ERAg::StabCalc2 function.

StabCalc(
  Data,
  Do.Weight = T,
  Weight.by.Study = T,
  Rm.Out = T,
  Transform = T,
  DoRandom = T,
  Control = list(optimizer = "optim", optmethod = "Nelder-Mead", maxit = 10000),
  Responses = c("lnRR", "lnVR", "lnCVR"),
  Use.acv = F
)

Arguments

Data

A data.table output by the ERAg::PrepareStabData function

Do.Weight

logical, if TRUE coefficient estimates are weighted acccording to the supplied weightings in the Data object supplied(default = T)

Weight.by.Study

logical, depreciated (default = T)

Rm.Out

logical, if TRUE extreme outliers are removed withing each Practice x Outcome combination as per the method detailed in ERAg::OutCalc (default = T)

Transform

logical, if TRUE back-transformed coefficient estimates and confidence intervals are appended to outputs (default = T)

Control

list, optional list of control values for the rma.mv estimation algorithms. If unspecified, default values are defined inside the function (default = list(optimizer="optim",optmethod="Nelder-Mead",maxit=10000))

Responses

character vector, this argument is depreciated do edit (default=c("lnRR","lnVR","lnCVR"))

Use.acv

logical, if TRUE scale-adjusted coefficient of variation, acv, is substituted for the coefficient of variation (cv).

Value

StabCalc returns a list is containing following data:

  1. [[Coefs]] A data.table of model coefficients, test statistics, confidence intervals:

    • Mean numeric, response variable test coefficient (see Response field) given the model used (see Model field)

    • CI.low numeric, response variable test coefficient lower confidence limit see confint.rma

    • *CI.high numeric, response variable test coefficient upper confidence limit see confint.rma

    • Mean.Jen numeric, back-transformed response variable test coefficient correcting for the Jensen inequality as exp(model$b[,1] + sigma.sq / 2)

    • CI.low.Jen numeric, back-transformed response variable test coefficient lower confidence limit correcting for the Jensen inequality as exp(model$ci.lb[,1] + sigma.sq / 2)

    • CI.high.Jen numeric, back-transformed response variable test coefficient upper confidence limit correcting for the Jensen inequality as exp(model$ci.ub[,1] + sigma.sq / 2)

    • Sigma numeric, estimated sigma^2 value(s)

    • Mean.Smear numeric, back-transformed response variable test coefficient correcting for the Jensen inequality using the Smearing estimate as exp(model$b[,1] * (1 / nobs(model) * sum(exp(resid(model)))))

    • CI.low.Smear numeric, back-transformed response variable test coefficient lower confidence limit correcting for the Jensen inequality using the Smearing estimate as exp(model$ci.lb[,1] * (1 / nobs(model) * sum(exp(resid(model)))))

    • CI.high.Smear numeric, back-transformed response variable test coefficient upper confidence limit correcting for the Jensen inequality using the Smearing estimate as exp(model$ci.ub[,1] * (1 / nobs(model) * sum(exp(resid(model)))))

    • P.Vals numeric, p-value for test statistic

    • SE numeric, standard error of the coefficients

    • Mean.exp numeric, back-transformed response variable test coefficient not correcting for the Jensen inequality as exp(model$b[,1])

    • CI.low.exp numeric, back-transformed response variable test coefficient lower confidence limit not correcting for the Jensen inequality as exp(model$ci.lb[,1])

    • CI.high.exp numeric, back-transformed response variable test coefficient upper confidence limit not correcting for the Jensen inequality as exp(model$ci.ub[,1])

    • Z.val numeric, test statistic of the coefficient

    • Model numeric, test used to generate test statistics and confidence intervals rma.mv = Multivariate/Multilevel Linear (Mixed-Effects) Model see rma.mv or robust.rma = Cluster-Robust Tests and Confidence Intervals for 'rma' objects see robust

    • Robust logical, when T robust tests are used, when F they are not

    • Response character, lnRR = natural log of response ratio, lnVR = natural log of absolute variability ratio, lnCVR = natural log of relative variability ratio see ERAg::PrepareStabData function for more information.

    • N.Studies integer, number of studies contributing to the analysis

    • N.Seq integer, number of unique temporal sequences contributing to the analysis

    • N.Obs integer, depreciated field

    • Practice character, ERA practice

    • Outcome character, ERA outcome

    • EU character, ERA EU (product) code

  2. **[[Models]]** Multivariate Meta-Analysis Model objects

    • lnRR= model where response variable is lnRR = natural log of response ratio

    • lnVR= model where response variable is lnVR = natural log of absolute variability ratio

    • lnCVR= model where response variable is lnCVR = natural log of relative variability ratio

  3. **[[R.Models]]** Cluster-Robust Tests and Confidence Intervals applied to the Multivariate Meta-Analysis objects

    • lnRR= model where repose variable is lnRR = naturl log of response ratio

    • lnVR= model where response variable is lnVR = natural log of absolute variability ratio

    • lnCVR= model where response variable is lnCVR = natural log of relative variability ratio

  4. **[[Tests]]** A data.table containing the results of a weighted linear model of form ln(y) = a + b × ln(x) where y is a stability ratio and x is the mean yield ratio. Robust results use a weighted robust linear model, see rlm

    • Estimate numeric, coefficient estimate

    • Std.Errornumeric, standard error of the coefficient estimate

    • t value numeric, test statistic of the coefficient estimate

    • Pr(>|t|) numeric, p-value for test statistic

    • Coefficientcharacter, coefficient (intercept or beta)

    • Variable character, lnRR = natural log of response ratio, lnVR = natural log of absolute variability ratio, lnCVR = natural log of relative variability ratio see ERAg::PrepareStabData function for more information.

    • Robust logical, when T robust tests are used, when F they are not

    • Sigma.sq numeric, estimated sigma^2 value(s)

    • Practice character, ERA practice

    • Outcome character, ERA outcome

    • EU character, ERA EU (product) code

    • PSymbol character, * P<=0.05, ** P<=0.01, *** P<=0.001, N.S. P>0.05.

    • N.Obs integer, depreciated field

    • N.Studiesinteger, number of studies contributing to the analysis

    • Mean.Jen numeric, back-transformed coefficient estimate correcting for the Jensen inequality as exp(Estimate + sigma.sq / 2)

    • CI.low.Jen numeric, back-transformed coefficient estimate less standard error correcting for the Jensen inequality as exp(Estimate - Std.Error + Sigma.sq / 2)

    • CI.high.Jen numeric, back-transformed coefficient estimate plus standard error correcting for the Jensen inequality as exp(Estimate + Std.Error + Sigma.sq / 2)

  5. **[[Tests2]]** = as per the Coeffs data.table but transformed to be a wide format for Response variables.

    • Model numeric, test used to generate test statistics and confidence intervals rma.mv = Multivariate/Multilevel Linear (Mixed-Effects) Model see rma.mv or robust.rma = Cluster-Robust Tests and Confidence Intervals for 'rma' objects see robust

    • Robust logical, when T robust tests are used, when F they are not

    • N.Studiesinteger, number of studies contributing to the analysis

    • N.Seq integer, number of unique temporal sequences contributing to the analysis

    • N.Obs integer, depreciated field

    • Mean_lnCVR numeric, lnCVR test coefficient

    • Mean_lnRR numeric, lnRR test coefficient

    • Mean_lnVR numeric, lnVR test coefficient

    • Mean.Jen_lnCVR numeric, back-transformed lnCVR test coefficient correcting for the Jensen inequality as exp(model$b[,1] + sigma.sq / 2)

    • Mean.Jen_lnRR numeric, back-transformed lnRR test coefficient correcting for the Jensen inequality as exp(model$b[,1] + sigma.sq / 2)

    • Mean.Jen_lnVR numeric, back-transformed lnVR test coefficient correcting for the Jensen inequality as exp(model$b[,1] + sigma.sq / 2)

    • SE_lnCVR numeric, standard error of lnCVR test coefficient

    • SE_lnRR numeric, standard error of lnRR test coefficient

    • SE_lnVR numeric, standard error of lnVR test coefficient

    • CI.low_lnCVR numeric, lnCVR test coefficient lower confidence limit

    • CI.high_lnCVR numeric, lnCVR test coefficient upper confidence limit

    • CI.low_lnRR numeric, lnRR test coefficient lower confidence limit

    • CI.high_lnRR numeric, lnRR test coefficient upper confidence limit

    • CI.low_lnVR numeric, lnVR test coefficient lower confidence limit

    • CI.high_lnVR numeric, lnVR test coefficient upper confidence limit

    • CI.low.Jen_lnCVR numeric, back-transformed lnCVR test coefficient lower confidence limit correcting for the Jensen inequality as exp(model$ci.lb[,1] + sigma.sq / 2)

    • CI.high.Jen_lnCVR numeric, back-transformed lnCVR test coefficient lower confidence limit correcting for the Jensen inequality as exp(model$ci.b[,1] + sigma.sq / 2)

    • CI.low.Jen_lnRR numeric, back-transformed lnRR test coefficient upper confidence limit correcting for the Jensen inequality as exp(model$ci.lb[,1] + sigma.sq / 2)

    • CI.high.Jen_lnRR numeric, back-transformed lnRR test coefficient lower confidence limit correcting for the Jensen inequality as exp(model$ci.b[,1] + sigma.sq / 2)

    • CI.low.Jen_lnVR numeric, back-transformed lnVR test coefficient lower confidence limit correcting for the Jensen inequality as exp(model$ci.lb[,1] + sigma.sq / 2)

    • CI.high.Jen_lnVR numeric, back-transformed lnVR test coefficient lower confidence limit correcting for the Jensen inequality as exp(model$ci.b[,1] + sigma.sq / 2)

    • P.Vals_lnCVR numeric, p-value for lnCVR test statistic

    • P.Vals_lnRR numeric, p-value for lnRR test statistic

    • P.Vals_lnVR numeric, p-value for lnVR test statistic

    • PSymbol_lnCVR character, lnCVR * P<=0.05, ** P<=0.01, *** P<=0.001, N.S. P>0.05.

    • PSymbol_lnRR character, lnRR * P<=0.05, ** P<=0.01, *** P<=0.001, N.S. P>0.05.

    • PSymbol_lnVR character, lnVR * P<=0.05, ** P<=0.01, *** P<=0.001, N.S. P>0.05.

    • Sigma_lnCVR numeric, lnCVR estimated sigma^2 value(s)

    • Sigma_lnRR numeric, lnRR estimated sigma^2 value(s)

    • Sigma_lnVR numeric, lnVR estimated sigma^2 value(s)

    • Practice character, ERA practice

    • Outcome character, ERA outcome

    • EU character, ERA EU (product) code

Details

In the Coefs, Models, Tests2 outputs of this function class estimates of the response variables lnRR = natural log of response ratio, lnVR = natural log of absolute variability ratio, and lnCVR = natural log of relative variability ratio are obtained with the rma.mv function with formula response.variable~1. Confidence intervals at P<0.95 are obtained by default for all (non-fixed) variance and correlation components of the models. Cluster-robust tests, confidence intervals, and significance of the model coefficients from rma.mv models are additionally calculated using the robust and f.robftest functions.

Natural log ratios are back-transformed with and without a corrections for the Jensen inequality. Corrections are applied as per Tandini & Mehrabi 2017 using two methods for back-transformation:

  1. exp(fitted(model) + summary(model)$sigma^2 / 2) situable for normally distributed data

  2. a smearing estimate as exp(fitted(model) * (1 / nobs(model) * sum(exp(resid(model))))

The Tests output contains the results of a weighted linear model of form log(y) = a + b × log(x) where y is a stability ratio and x is the mean yield ratio. The robust results in this table use a weighted robust linear model, see rlm.