Skip to contents

The mr_median function implements the weighted median (default) or simple median method introduced by Bowden et al (2016) to calculate the median of the ratio instrumental variable estimates evaluated using each genetic variant individually.

Usage

mr_median(
  object,
  weighting = "weighted",
  distribution = "normal",
  alpha = 0.05,
  iterations = 10000,
  seed = 314159265
)

# S4 method for MRInput
mr_median(
  object,
  weighting = "weighted",
  distribution = "normal",
  alpha = 0.05,
  iterations = 10000,
  seed = 314159265
)

Arguments

object

An MRInput object.

weighting

The type of weighting applied. The default option is to calculate the weighted median ("weighted"); other options are "simple" and "penalized".

distribution

The type of distribution to use to calculate the 95% confidence intervals, can be "normal" or "t-dist".

alpha

The significance level used to calculate the confidence intervals. The default value is 0.05.

iterations

The number of bootstrap samples to generate when calculating the estimated standard error. The default value is 10000.

seed

The random seed to use when generating the bootstrap samples (for reproducibility). The default value is 314159265. If set to NA, the random seed will not be set (for example, if the function is used as part of a larger simulation).

Value

The output from the function is a WeightedMedian object containing:

Type

The type of weights used: "weighted", "simple", or "penalized".

Exposure

A character string giving the name given to the exposure.

Outcome

A character string giving the name given to the outcome.

Estimate

The value of the causal estimate.

StdError

Standard error of the causal estimate calculated using bootstrapping.

CILower

The lower bound for the causal estimate based on the estimated bootstrapped standard error and the significance level provided.

CIUpper

The upper bound for the causal estimate based on the estimated bootstrapped standard error and the significance level provided.

Alpha

The significance level used when calculating the confidence intervals.

Pvalue

The p-value associated with the estimate (calculated using Estimate/StdError as per a Wald test) using a normal or t-distribution (as specified in distribution).

SNPs

The number of genetic variants (SNPs) included in the analysis.

Details

The median-based methods have greater robustness to individual genetic variants with strongly outlying causal estimates compared with the inverse-variance weighted and MR-Egger methods. Formally, the simple median method gives a consistent estimate of the causal effect when at least 50% of the genetic variants are valid instrumental variables (for the weighted median method, when 50% of the weight comes from valid instrumental variables).

When the weighting is "simple", the estimate is obtained by calculating the ratio causal estimates from each genetic variants theta = betaY/betaX, and finding the median estimate.

When the weighting is "weighted", the estimate is obtained by:

  1. Calculating the ratio causal estimates and ordering the genetic variants according to the magnitude of their estimates, i.e. $$\theta_1 < \theta_2 < ... < \theta_J$$

  2. Calculate normalized inverse-variance weights for each genetic variant \(w_1, w_2, ..., w_J\), as: $$w_j = \frac{\beta_{Xj}^2}{se(\beta_{Yj})^2} / \sum_{i=1}^{J} \frac{\beta_{Xi}^2}{se(\beta_{Yi})^2}$$

  3. Find k such that $$s_k = \sum_{i = 1}^k w_i < 0.5$$ and $$s_{k+1} = \sum_{i = 1}^{k+1} w_i > 0.5$$

  4. Calculate the weighted median estimate by extrapolation as: $$\theta_{WM} = \theta_k + (\theta_{k+1} - \theta_k) \times \frac{0.5 - s_k}{s_{k+1} - s_k}$$

The simple median estimate is the same as the weighted median estimate when all the weights are equal. Standard errors for both the simple and weighted median methods are calculated through bootstrapping.

When the weighting is "penalized", the weighted method is used, but the contribution of genetic variants with outlying (heterogeneous) ratio estimates to the analysis is downweighted.

References

Jack Bowden, George Davey Smith, Philip C Haycock, Stephen Burgess. Consistent estimation in Mendelian randomization with some invalid instruments using a weighted median estimator. Genetic Epidemiology 2016; 40(4):304-314. doi: 10.1002/gepi.21965.

Examples

mr_median(mr_input(bx = ldlc, bxse = ldlcse, by = chdlodds, byse = chdloddsse),
  weighting = "weighted", iterations = 100)
#> 
#>  Weighted median method 
#> 
#> Number of Variants : 28 
#> ------------------------------------------------------------------
#>                  Method Estimate Std Error 95% CI       p-value
#>  Weighted median method    2.683     0.429 1.841, 3.524   0.000
#> ------------------------------------------------------------------
  # iterations is set to 100 to reduce runtime for the mr_median method,
  # 10000 iterations are recommended in practice
mr_median(mr_input(bx = ldlc, bxse = ldlcse, by = chdlodds, byse = chdloddsse),
  weighting = "simple", iterations = 100)
#> 
#>  Simple median method 
#> 
#> Number of Variants : 28 
#> ------------------------------------------------------------------
#>                Method Estimate Std Error 95% CI       p-value
#>  Simple median method    1.755     0.751 0.282, 3.228   0.020
#> ------------------------------------------------------------------
mr_median(mr_input(bx = ldlc, bxse = ldlcse, by = chdlodds, byse = chdloddsse),
  weighting = "penalized", iterations = 100)
#> 
#>  Penalized median method 
#> 
#> Number of Variants : 28 
#> ------------------------------------------------------------------
#>                   Method Estimate Std Error 95% CI       p-value
#>  Penalized median method    2.681     0.431 1.837, 3.525   0.000
#> ------------------------------------------------------------------