E-value for meta-analysis with multiple biases

## Usage

```
multibias_evalue(
yi,
vi,
sei,
cluster = 1:length(yi),
biased = TRUE,
selection_ratio,
q = 0,
favor_positive = TRUE,
alpha_select = 0.05,
ci_level = 0.95,
small = TRUE,
bias_max = 20,
assumed_bias_type = NULL
)
```

## Arguments

- yi
A vector of point estimates to be meta-analyzed.

- vi
A vector of estimated variances (i.e., squared standard errors) for the point estimates.

- sei
A vector of estimated standard errors for the point estimates. (Only one of

`vi`

or`sei`

needs to be specified).- cluster
Vector of the same length as the number of rows in the data, indicating which cluster each study should be considered part of (defaults to treating studies as independent; i.e., each study is in its own cluster).

- biased
Boolean indicating whether each study is considered internally biased; either single value used for all studies or a vector the same length as the number of rows in the data (defaults to all studies).

- selection_ratio
Ratio by which publication bias favors affirmative studies (i.e., studies with p-values less than

`alpha_select`

and estimates in the direction indicated by`favor_positive`

).- q
The attenuated value to which to shift the point estimate or CI. Should be specified on the same scale as

`yi`

(e.g., if`yi`

is on the log-RR scale, then`q`

should be as well).- favor_positive
`TRUE`

if publication bias are assumed to favor significant positive estimates;`FALSE`

if assumed to favor significant negative estimates.- alpha_select
Alpha level at which an estimate's probability of being favored by publication bias is assumed to change (i.e., the threshold at which study investigators, journal editors, etc., consider an estimate to be significant).

- ci_level
Confidence interval level (as proportion) for the corrected point estimate. (The alpha level for inference on the corrected point estimate will be calculated from

`ci_level`

.)- small
Should inference allow for a small meta-analysis? We recommend always using

`TRUE`

.- bias_max
The largest value of

`bias`

, on the additive scale, that should be included in the grid search. The bias has the same units as`yi`

.- assumed_bias_type
List of biases to consider for computing evalues (objects of

`bias`

as returned by`EValue::confounding()`

,`EValue::selection()`

,`EValue::misclassification()`

) (defaults to NULL, i.e. agnostic as to the nature of the internal bias). If not NULL, the`yi`

argument must be on the log-RR scale (if`yi`

is not already on that scale, use`EValue::convert_measures()`

to make it so).

## Value

An object of class `metabias::metabias()`

, a list containing:

- data
A tibble with one row per study and the columns

`yi`

,`vi`

,`sei`

,`cluster`

,`biased`

.- values
A list with the elements

`selection_ratio`

,`q`

,`favor_positive`

,`alpha_select`

,`ci_level`

,`small`

,`bias_max`

.- stats
A tibble with the columns

`bias_est`

,`bias_ci`

,`evalue_est`

,`evalue_ci`

.

## Details

For more on the functions passed as `assumed_bias_type`

, see the
`EValue`

package multiple-bias vignette:
`vignette("multiple-bias", package = "EValue")`

## References

Mathur MB (2022). “Sensitivity analysis for the interactive effects of internal bias and publication bias in meta-analyses.” doi:10.31219/osf.io/u7vcb .

Ding P, VanderWeele TJ (2016).
“Sensitivity analysis without assumptions.”
*Epidemiology (Cambridge, Mass.)*, **27**(3), 368.

Smith LH, VanderWeele TJ (2019).
“Bounding bias due to selection.”
*Epidemiology (Cambridge, Mass.)*, **30**(4), 509.

VanderWeele TJ, Li Y (2019).
“Simple sensitivity analysis for differential measurement error.”
*American journal of epidemiology*, **188**(10), 1823--1829.

## Examples

```
# \donttest{
# specify confounding as internal bias
evalues <- multibias_evalue(yi = meta_meat$yi,
vi = meta_meat$vi,
biased = !meta_meat$randomized,
selection_ratio = 4)
evalues$stats
#> # A tibble: 1 × 2
#> bias_est bias_ci
#> <dbl> <dbl>
#> 1 0.539 0.270
# specify confounding as internal bias
evalues_confounding <- multibias_evalue(yi = meta_meat$yi,
vi = meta_meat$vi,
biased = !meta_meat$randomized,
selection_ratio = 4,
assumed_bias_type = list(EValue::confounding()))
evalues_confounding$stats
#> # A tibble: 1 × 4
#> bias_est bias_ci evalue_est evalue_ci
#> <dbl> <dbl> <dbl> <dbl>
#> 1 0.539 0.270 2.82 1.95
# }
```