mr_egger {MRZero} | R Documentation |
MR-Egger method
Description
The mr_egger
function implements the MR-Egger method introduced by Bowden et al (2015).
This method provides: 1) a test of the for directional pleiotropy (the MR-Egger intercept test), 2) a test for a causal effect, and 3) an estimate of the causal effect. If the intercept term differs from zero, then the genetic variants are not all valid instrumental variables and the standard (inverse-variance weighted) estimate is biased. If the InSIDE (Instrument Strength Independent of Direct Effect) assumption holds, then the MR-Egger slope parameter provides a test for a causal effect, and a consistent estimate of the causal effect even if the intercept differs from zero.
Usage
mr_egger(
object,
robust = FALSE,
penalized = FALSE,
correl = FALSE,
distribution = "normal",
alpha = 0.05,
...
)
## S4 method for signature 'MRInput'
mr_egger(
object,
robust = FALSE,
penalized = FALSE,
correl = FALSE,
distribution = "normal",
alpha = 0.05,
...
)
Arguments
object |
An |
robust |
Indicates whether robust regression using the |
penalized |
Indicates whether a penalty should be applied to the weights to downweight the contribution of genetic variants with outlying ratio estimates to the analysis. |
correl |
If the genetic variants are correlated, then this correlation can be accounted for. The matrix of correlations between must be provided: the elements of this matrix are the correlations between the individual variants (diagonal elements are 1). If a correlation is specified, then the values of |
distribution |
The type of distribution used to calculate the confidence intervals, can be |
alpha |
The significance level used to calculate the confidence interval. The default value is 0.05. |
... |
Additional arguments to be passed to the regression method. |
Details
The causal estimate is obtained by regression of the associations with the outcome on the associations with the risk factor, with weights being the inverse-variances of the associations with the outcome. The intercept is estimated (in contrast with the inverse-variance weighted method, where the intercept is set to zero).
As part of the analysis, the genetic variants are orientated so that all of the associations with the risk factor are positive (and signs of associations with the outcome are changed to keep the orientation consistent if required). Re-orientation of the genetic variants is performed automatically as part of the function.
The MR-Egger model uses a random-effects model ("random"
); a fixed-effect model does not make sense as pleiotropy leads to heterogeneity between the causal estimates targeted by the genetic variants. The (multiplicative) random-effects model allows over-dispersion in the regression model. Under-dispersion is not permitted (in case of under-dispersion, the residual standard error is set to 1).
Value
The output of the function is an Egger
object containing:
Model |
A character string giving the type of model used ( |
Exposure |
A character string giving the name given to the exposure. |
Outcome |
A character string giving the name given to the outcome. |
Correlation |
The matrix of genetic correlations. |
Robust |
|
Penalized |
|
Estimate |
The value of the causal estimate (slope coefficient). |
StdError.Est |
Standard error of the causal estimate. |
Pvalue.Est |
The p-value associated with the estimate (calculated as Estimate/StdError as per Wald test) using a normal or t-distribution (as specified in |
CILower.Est |
The lower bound of the causal estimate based on the estimated standard error and the significance level provided. |
CIUpper.Est |
The upper bound of the causal estimate based on the estimated standard error and the significance level provided. |
Intercept |
The value of the intercept estimate. |
StdError.Int |
Standard error of the intercept estimate. |
Pvalue.Int |
The p-value associated with the intercept. |
CILower.Int |
The lower bound of the intercept based on the estimated standard error and the significance level provided. |
CIUpper.Int |
The upper bound of the intercept based on the estimated standard error and the significance level provided. |
Alpha |
The significance level used when calculating the confidence intervals (same as |
SNPs |
The number of genetic variants (SNPs) included in the analysis. |
Causal.pval |
The p-value for the MR-Egger causal estimate. |
Pleio.pval |
The p-value for the MR-Egger intercept test (a low p-value suggests either directional pleiotropy or failure of the InSIDE assumption, and indicates that the IVW estimate is biased). |
RSE |
The estimated residual standard error from the regression model. |
Heter.Stat |
Heterogeneity statistic (Cochran's Q statistic) and associated p-value: the null hypothesis is that the regression model (including an intercept) fits the regression model with no additional variability. Rejection of the null hypothesis is expected if genetic variants are pleiotropic, and doesn't mean that the MR-Egger analysis or the InSIDE assumption is invalid. |
I.sq |
A measure of heterogeneity between the genetic associations with the exposure (see Bowden IJE 2016). Low values of |
References
Jack Bowden, George Davey Smith, Stephen Burgess. Mendelian randomization with invalid instruments: effect estimation and bias detection through Egger regression. International Journal of Epidemiology 2015; 44:512–525. doi: 10.1093/ije/dyv080.
Confidence intervals, and robust and penalized weights: Stephen Burgess, Jack Bowden, Frank Dudbridge, Simon G Thompson. Robust instrumental variable methods using multiple candidate instruments with application to Mendelian randomization. arXiv 2016; 1606.03729.
I-squared statistic: Jack Bowden and others. Assessing the suitability of summary data for Mendelian randomization analyses using MR-Egger regression: The role of the I2 statistic. Int J Epidemiol 2016 (to appear).
Examples
mr_egger(mr_input(bx = ldlc, bxse = ldlcse, by = chdlodds, byse = chdloddsse))
mr_egger(mr_input(bx = ldlc, bxse = ldlcse, by = chdlodds, byse = chdloddsse),
robust = TRUE)
mr_egger(mr_input(bx = ldlc, bxse = ldlcse, by = chdlodds, byse = chdloddsse),
penalized = TRUE)
mr_egger(mr_input(calcium, calciumse, fastgluc, fastglucse, corr=calc.rho))
## correlated variants