Skip to contents

The mr_mbe function implements the mode-based method introduced by Hartwig, Bowden and Davey Smith (2017).

Usage

mr_mbe(
  object,
  weighting = "weighted",
  stderror = "simple",
  phi = 1,
  seed = 314159265,
  iterations = 10000,
  distribution = "normal",
  alpha = 0.05
)

# S4 method for MRInput
mr_mbe(
  object,
  weighting = "weighted",
  stderror = "delta",
  phi = 1,
  seed = 314159265,
  iterations = 10000,
  distribution = "normal",
  alpha = 0.05
)

Arguments

object

An MRInput object.

weighting

Whether the analysis should be "weighted" (the default option) or "unweighted".

stderror

Whether standard error estimates should be i) "simple" - calculated as the first-order term from the delta expansion - standard error of the association with the outcome divided by the association with the exposure), or ii) "delta" - calculated as the second-order term from the delta expansion (the default option). The second-order term incorporates uncertainty in the genetic association with the exposure -- this uncertainty is ignored using the simple weighting. The "simple" option is referred to by Hartwig et al as "assuming NOME", and the "delta" option as "not assuming NOME".

phi

The choice of bandwidth in the kernel-smoothly density method. A value of 1 (the default value) represents the bandwidth value selected by the modified Silverman's bandwidth rule, as recommended by Hartwig et al. A value of 0.5 represents half that value, and so on.

seed

The random seed to use when generating the bootstrap samples used to calculate the confidence intervals (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).

iterations

Number of iterations to use in the bootstrap procedure.

distribution

The type of distribution used to calculate the confidence intervals, can be "normal" (the default option) or "t-dist".

alpha

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

Value

The output from the function is an MRMBE object containing:

Exposure

A character string giving the name given to the exposure.

Outcome

A character string giving the name given to the outcome.

Weighting

A character string "weighted" or "unweighted".

StdErr

A character string "simple" or "delta".

Phi

The value of the bandwidth factor.

Estimate

The value of the causal estimate.

StdError

Standard error of the causal estimate.

CILower

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

CIUpper

The upper bound of the causal estimate based on the estimated 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 as Estimate/StdError as per 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 mode-based estimation (MBE) method takes the variant-specific ratio estimates from each genetic variant in turn, and calculates the modal estimate. This is implemented by constructing a kernel-smoothed density out of the ratio estimates, and taking the maximum value as the modal estimate. The standard error is calculated by a bootstrap procedure, and confidence intervals based on the estimate having a normal distribution.

The method should give consistent estimates as the sample size increases if a plurality (or weighted plurality) of the genetic variants are valid instruments. This means that the largest group of variants with the same causal estimate in the asymptotic limit are the valid instruments.

References

Fernando Pires Hartwig, George Davey Smith, Jack Bowden. Robust inference in summary data Mendelian randomization via the zero modal pleiotropy assumption. International Journal of Epidemiology 2017; 46(6): 1985-1998. doi: 10.1093/ije/dyx102.

Examples

mr_mbe(mr_input(bx = ldlc, bxse = ldlcse, by = chdlodds, byse = chdloddsse), iterations=100)
#> 
#> Mode-based method of Hartwig et al
#> (weighted, delta standard errors [not assuming NOME], bandwidth factor = 1)
#> 
#> Number of Variants : 28 
#> ------------------------------------------------------------------
#>  Method Estimate Std Error 95% CI       p-value
#>     MBE    2.946     1.027 0.933, 4.960   0.004
#> ------------------------------------------------------------------
mr_mbe(mr_input(bx = ldlc, bxse = ldlcse, by = chdlodds, byse = chdloddsse),
   phi=0.5, iterations=100)
#> 
#> Mode-based method of Hartwig et al
#> (weighted, delta standard errors [not assuming NOME], bandwidth factor = 0.5)
#> 
#> Number of Variants : 28 
#> ------------------------------------------------------------------
#>  Method Estimate Std Error 95% CI       p-value
#>     MBE    2.666     1.140 0.433, 4.900   0.019
#> ------------------------------------------------------------------
mr_mbe(mr_input(bx = ldlc, bxse = ldlcse, by = chdlodds, byse = chdloddsse),
   weighting="weighted", stderror="delta", iterations=100)
#> 
#> Mode-based method of Hartwig et al
#> (weighted, delta standard errors [not assuming NOME], bandwidth factor = 1)
#> 
#> Number of Variants : 28 
#> ------------------------------------------------------------------
#>  Method Estimate Std Error 95% CI       p-value
#>     MBE    2.946     1.027 0.933, 4.960   0.004
#> ------------------------------------------------------------------
# iterations set to 100 to reduce computational time,
#  more iterations are recommended in practice