R数据分析:工具变量回归与孟德尔随机化,实例解析

原谅我又拖更好久,没办法,欸,就是懒,但是所有的单子都是保质保量完成的哈。,今天给大家写工具变量和孟德尔随机化,文章略微有些长,请大家准备好清醒的头脑,和半个小时的阅读时间哈。

啥是工具变量回归

Instrumental variable procedures are needed when some regressors are endogenous (correlated with the error term). The procedure for correcting this endogeneity problem involves finding instruments that are correlated with the endogenous regressors but uncorrelated with the error term. Then the two stage least squares procedure can be applied.

在你的研究中有内生性问题时(就是你的自变量和残差有关系了,这个时候就有内生性问题了),这个时候就可以用得到工具变量回归,或者说你的混杂很多控制不完,这个时候就可以用工具变量回归。

工具变量回归是在观察性研究中控制混杂的利器!

举例说明工具变量

我现在想探讨两个有相关的变量之间的因果关系,比如X和Y吧,我想知道XY是如何相互影响的,现在聪明的我又去找了一个变量Z,我现在肯定地知道Z和Y是没有直接的关系的,但是Z会影响X,且只会影响X。

然后我做数据分析,如果我的数据告诉我本来不可能影响Y的Z竟然对Y有作用,那么这个作用只能是通过X实现的。

大概思想就是这样的,好简单吧。继续看:

把上面的话放在一个实际的情形下:我现在想研究抑郁depression (X)和 smoking (Y)的关系,此时我手上恰好还有一个变量:工作机会缺乏Lack of job opportunities (Z),正常人都知道工作机会缺乏是绝对不可能对吸烟有影响的,对吧,因为工作机会是别人或者外部环境决定的,吸烟是你自己干的,所以Z对Y是绝对不会有影响的,但是我收集到了好多数据,一分析,发现工作机会越缺乏的人们吸烟情况越严重,这内在的原因有可能就是X(仅在XYZ3个变量的系统中看)。

这个时候Z就可以在研究XY之间关系的时候作为一个工具变量!

什么是工具变量回归

工具变量回归就是把上面的思想用数据实现,具体的方法就是把你的有内生性问题的自变量拆开,一部分和残差有关,一部分无关,无关的部分就是工具变量:

Instrumental Variables regression (IV) basically splits your explanatory variable into two parts: one part that could be correlated with ε and one part that probably isn’t

有点不好理解,继续看:

还记得我们的一般的回归模型不?如下图:

R数据分析:工具变量回归与孟德尔随机化,实例解析

注意模型后面都有一个误差项e,这个e就代表这除了x之外的那些没能测着的可能影响y的因素,而工具变量回归就相当于将我们原来的X分解成了两部分,一部分和误差项相关,一部分不相关,不相关的部分的系数不久是干干净净的系数嘛。所以说一个完美的工具变量就可以将混杂控制的干干净净明明白白的。

如何找工具变量

In real life, instrumental variables can be difficult to find and in fact, may not exist at all

很遗憾,现实世界真正的工具变量有可能根本就不存在,最完美工具变量就要求这个工具变量Z和X相关,和Y不相关。

就是这个“只”,太难了。

回到我们的第一个例子:你说工作机会缺乏本身是不可能和吸烟有影响的,我同意,但是它影响抑郁吗?不是。

工作机会缺乏有可能还会影响焦虑吧,还会影响幸福感吧,这些说不定都和吸烟有可能有关吧,所以我们把工作机会缺乏做工具变量回归,得到的抑郁对吸烟的影响肯定也是不准的。

我们找工具变量一定是基于理论的,不是说我做个相关分析就说某某变量满足工作变量的条件,合格工具变量从理论上考虑要满足如下两个条件:

  • Exogenous —not affected by other variables in the system (i.e. Cov(z,ε) = 0). This can’t be directly tested; you have to use your knowledge of the system to determine if your system has exogenous variables or not.
  • Correlated with X, an endogenous explanatory variable (i.e. Cov(Z,X) ≠ 0). A very significant correlation is called a strong first stage. Weak correlations can
### 关于孟德尔随机化的本地数据处理方法 在进行孟德尔随机化分析时,使用本地数据可以有效减少因网络问题带来的不确定性,并提高数据分析的稳定性。以下是基于已有资料和专业知识总结的相关内容。 #### 使用本地数据进行孟德尔随机化分析的关键步骤 为了实现本地数据处理,通常需要以下几个核心组件: 1. **数据准备** 数据可以从公数据库(如GWAS Catalog、UK Biobank等)下载并存储到本地环境。这些数据应包括暴露变量(exposure)、结局变量(outcome)以及对应的单核苷酸多态性(SNPs)。确保数据质量是至关重要的一步[^3]。 2. **工具选择** 常见用于本地数据处理的工具有 `TwoSampleMR` R包 和其他类似的软件库。通过安装这些工具,可以直接加载本地文件进行计算而无需依赖在线服务。例如,在R环境中可以通过以下方式加载必要的包: ```r install.packages("TwoSampleMR") library(TwoSampleMR) ``` 3. **数据导入预处理** 将已下载的数据转换成适合输入的形式。假设我们已经拥有了两个独立研究的结果作为基础,则需分别读取它们的内容至程序内部以便后续操作。 ```r exposure_data <- read.csv("path/to/exposure_file.csv") # 曝光组数据路径 outcome_data <- read.csv("path/to/outcome_file.csv") # 结果组数据路径 mrd <- harmonise_data(exposure_dat=exposure_data, outcome_dat=outcome_data, snp_col="rsid", beta_col="beta", se_col="se", effect_allele_col="effect_allele", other_allele_col="other_allele") summary(mrd) # 查看匹配后的摘要信息 ``` 4. **执行主要统计测试** 利用上述整理好的结构体来完成实际的因果推断过程。这里列举几个常用的函数调用实例供参考: ```r res_ivw <- mr(mrd$b_exp, mrd$b_out, mrd$se_exp, mrd$se_out, method="ivw") print(res_ivw) res_egger <- mr(mrd$b_exp, mrd$b_out, mrd$se_exp, mrd$se_out, method="egger") print(res_egger) ``` 5. **结果解释可视化展示** 对所得数值加以解读的同时也可以借助图形手段辅助呈现发现规律之处。比如绘制森林图或者漏斗图帮助识别潜在偏差现象存在否等问题所在领域里较为常见做法之一即为此类图表形式展现出来给读者直观感受效果如何等等情况之下显得尤为重要起来呢! --- #### 需要注意的地方 尽管采用本地模式能够规避部分技术障碍但仍可能存在某些挑战需要注意解决办法如下所示几点建议供大家参考学习之用哦~ - 如果遇到零个可用位点的情况可能是因为过滤条件设置得过于严格所致因此适当调整阈值范围或许会有助于改善这一状况的发生几率降低风险系数达到预期目标水平之上才行啊亲们记得哟😊; - 当前版本号之间可能会存在一定差异所以最好确认所使用的软件均处于最新稳定状态从而最大程度上保障整个流程顺利完成无误哈😄; --- ### 总结 综上所述,利用本地资源开展孟德尔随机化探究不仅可行而且具备诸多优势特点值得推广开来让更多科研工作者受益匪浅呐💪!希望以上分享能为大家提供一定启发作用助力各自项目进展顺利达成既定目的吧🎉! ---
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

公众号Codewar原创作者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值