高维数据的中介效应【中介分析】《R包:HIMA》

这篇具有很好参考价值的文章主要介绍了高维数据的中介效应【中介分析】《R包:HIMA》。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

允许基于高级中介筛选和惩罚回归技术来估计和测试高维中介效应

Hima包浏览

高维数据的中介效应【中介分析】《R包:HIMA》,统计、机器学习,r语言,开发语言

高维中介示意图

高维数据的中介效应【中介分析】《R包:HIMA》,统计、机器学习,r语言,开发语言

图1. 在暴露和结果之间有高维中介的情况

本包的作用

在确定独立筛选和极小极大凹惩罚技术的基础上,采用联合显著性检验方法对调解效果进行检验。使用蒙特卡罗模拟研究来展示其实际性能,鉴定具有显著中介作用的因子。

分析前准备

# install.packages("HIMA")
# ??hima
library(HIMA)
data(himaDat)

# 熟悉数据
head(himaDat$Example1$PhenoData)
#   Treatment   Outcome Sex Age
# 1         1 2.7653005   0  54
# 2         1 0.5754423   1  38
# 3         1 1.7632589   0  29
# 4         1 9.9327242   0  34
# 5         1 1.8183044   0  29
# 6         1 0.1024832   0  55

dim(himaDat$Example1$PhenoData)
# [1] 300   4
head(himaDat$Example1$Mediator)

glimpse(himaDat$Example1$Mediator)
# num [1:300, 1:300] -2.272 -0.1 0.414 2.275 -0.262 ...
# - attr(*, "dimnames")=List of 2
# ..$ : chr [1:300] "S1" "S2" "S3" "S4" ...
# ..$ : chr [1:300] "M1" "M2" "M3" "M4" ...
dim(himaDat$Example1$Mediator)

dblassoHIMA()

这是使用纠偏LASSO与纠偏LASSO的高维中介分析的函数

纠偏 LASSO (debiased LASSO)

head(himaDat$Example2$PhenoData)

dblassohima.logistic.fit <- dblassoHIMA(X = himaDat$Example2$PhenoData$Treatment,
                                        Y = himaDat$Example2$PhenoData$Disease,
                                        M = himaDat$Example2$Mediator,
                                        Z = himaDat$Example2$PhenoData[, c("Sex", "Age")],
                                        Y.family = 'binomial',
                                        scale = FALSE,
                                        verbose = TRUE)
dblassohima.logistic.fit
# 输出结果
#       alpha        beta    gamma   alpha*beta   % total effect  p.joint
# M1  0.6096868  0.07404941 2.096248 0.04514695       2.153703 1.332402e-03
# M2  0.9677835  0.07339861 2.096248 0.07103396       3.388624 4.330462e-08
# M3 -0.6657028 -0.04116939 2.096248 0.02740657       1.307411 1.244578e-03

Hima()

Hima用于估计和检验高维中介效应。

# hima
# Y:连续性变量------
hima.fit <- hima(X = himaDat$Example1$PhenoData$Treatment, 
                 Y = himaDat$Example1$PhenoData$Outcome, 
                 M = himaDat$Example1$Mediator,
                 COV.XM = himaDat$Example1$PhenoData[, c("Sex", "Age")],
                 Y.family = 'gaussian',
                 scale = FALSE,
                 verbose = TRUE) 
hima.fit
# alpha       beta   gamma alpha*beta % total effect Bonferroni.p       BH.FDR
# M1  0.5771873  0.8917198 2.94202  0.5146893       17.49442 4.844611e-03 1.614870e-03
# M2  0.9137393  0.8461100 2.94202  0.7731240       26.27868 3.279920e-08 3.279920e-08
# M3 -0.7331281 -0.7424343 2.94202  0.5442994       18.50087 1.863286e-04 9.316431e-05

# Y:二分类变量-----
hima.logistic.fit <- hima(X = himaDat$Example2$PhenoData$Treatment,
                          Y = himaDat$Example2$PhenoData$Disease,
                          M = himaDat$Example2$Mediator,
                          COV.XM = himaDat$Example2$PhenoData[, c("Sex", "Age")],
                          Y.family = 'binomial',
                          scale = FALSE,
                          verbose = TRUE)
hima.logistic.fit

# alpha       beta    gamma alpha*beta % total effect Bonferroni.p       BH.FDR
# M1    0.6096868  1.0393063 2.096248  0.6336514      30.227885 5.914712e-03 1.971571e-03
# M2    0.9677835  1.0148114 2.096248  0.9821177      46.851219 3.703063e-07 3.703063e-07
# M3   -0.6657028 -0.4412061 2.096248  0.2937121      14.011326 3.040410e-03 1.013470e-03
# M266 -0.4870164 -0.2619480 2.096248  0.1275729       6.085776 5.480125e-02 1.370031e-02

hima2()

是hima的升级版,用于评估和检验高维中介效应,支持公式输入

#hima2 
# Y: 连续性变量--------
e1 <- hima2(Outcome ~ Treatment + Sex + Age, 
            data.pheno = himaDat$Example1$PhenoData, 
            data.M = himaDat$Example1$Mediator,
            outcome.family = "gaussian",
            mediator.family = "gaussian",
            penalty = "DBlasso",
            scale = FALSE) # Disabled only for example data
e1
attributes(e1)$variable.labels

# Y: 二分类变量--------
e2 <- hima2(Disease ~ Treatment + Sex + Age, 
            data.pheno = himaDat$Example2$PhenoData, 
            data.M = himaDat$Example2$Mediator,
            outcome.family = "binomial",
            mediator.family = "gaussian",
            penalty = "DBlasso",
            scale = FALSE) # Disabled only for example data
e2
attributes(e2)$variable.labels

# Y: 生存型变量--------

e3 <- hima2(Surv(Status, Time) ~ Treatment + Sex + Age, 
            data.pheno = himaDat$Example3$PhenoData, 
            data.M = himaDat$Example3$Mediator,
            outcome.family = "survival",
            mediator.family = "gaussian",
            penalty = "DBlasso",
            scale = FALSE) # Disabled only for example data
e3
attributes(e3)$variable.labels

# M: 中介变量属于Compositional data--------
# Compositional data是指数据记录了一个整体(或者样本)中各个组成部分的相对比例信息。这些数据通常用来描述某些总和为常数(例如100%或者1)的组分。这种类型的数据在不同的领域中都有出现,例如地质学、环境学、生态学和生物信息学中的微生物组数据分析。
# 微生物组数据,也就是关于一个环境(比如说人体肠道)中微生物群落的组成信息,是compositional data的一个典型例子。compositional data的一个关键特性是它们的组分是相对测量的而不是绝对测量的。这就意味着,当一个组分的比例增加时,至少有一个其他组分的比例必定减少,因为它们的总和是一个固定的常数。这种数据的这个特性导致它不能直接像其他类型的数据那样进行分析,因为传统的统计方法往往假定数据是独立的和不受限的。因此,为了分析compositional data,需要使用专门的数学方法和统计模型,例如对数比率分析(log-ratio analysis),本方法使用isometric logratio (ilr)-based transformation (等距对数比)进行分析。

e4 <- hima2(Outcome ~ Treatment + Sex + Age, 
            data.pheno = himaDat$Example4$PhenoData, 
            data.M = himaDat$Example4$Mediator,
            outcome.family = "gaussian",
            mediator.family = "compositional",
            penalty = "DBlasso",
            scale = FALSE) # Disabled only for example data
e4
attributes(e4)$variable.labels

# Y: 分位数水平变量

# Note that the function will prompt input for quantile level.
e5 <- hima2(Outcome ~ Treatment + Sex + Age, 
            data.pheno = himaDat$Example5$PhenoData, 
            data.M = himaDat$Example5$Mediator,
            outcome.family = "quantile",
            mediator.family = "gaussian",
            penalty = "MCP", # Quantile HIMA does not support DBlasso
            scale = FALSE, # Disabled only for example data
            tau = c(0.3, 0.5, 0.7)) # Specify multiple quantile level
e5
attributes(e5)$variable.labels

qHIMA()

这是第2种方法:用于估计和检验高维分位数的中介效应。[注:第1种方法:hima2()]

# qHIMA
head(himaDat$Example5$PhenoData)
# 【结果输出】
#   Treatment  Outcome Sex Age
# 1         1 16.18104   1  23
# 2         1 18.60296   0  20
# 3         1 28.80309   1  42
# 4         1 26.38711   0  34
# 5         1 25.29259   0  44
# 6         1 42.41721   1  61

qHIMA.fit <- qHIMA(X = himaDat$Example5$PhenoData$Treatment,
                   M = himaDat$Example5$Mediator, 
                   Y = himaDat$Example5$PhenoData$Outcome, 
                   Z = himaDat$Example5$PhenoData[, c("Sex", "Age")], 
                   Bonfcut = 0.05,
                   tau = c(0.3, 0.5, 0.7),
                   scale = FALSE, 
                   verbose = TRUE)
qHIMA.fit
# 【结果输出】
#   ID      alpha  alpha_se       beta   beta_se Bonferroni.p tau
# 1 M1  0.7940567 0.1428952  0.7947046 0.1294236 2.745815e-08 0.3
# 2 M2  0.8084565 0.1431067  0.8270942 0.1378767 1.610791e-08 0.3
# 3 M3 -1.1375897 0.1438286 -0.8098622 0.1349740 1.971560e-09 0.3
# 4 M1  0.7940567 0.1428952  0.8696986 0.1481069 2.745815e-08 0.5
# 5 M2  0.8084565 0.1431067  0.7351953 0.1309730 1.984654e-08 0.5
# 6 M1  0.7940567 0.1428952  0.9196337 0.2423962 1.482827e-04 0.7
# 7 M3 -1.1375897 0.1438286 -0.9171627 0.2544897 3.134432e-04 0.7

survHIMA()

这是第2种方法:用于评估和检验生存数据的高维中介效应。[注:第1种方法:hima2()]

head(himaDat$Example3$PhenoData)
# 【结果输出】
#    Treatment Status        Time Sex Age
# 1         0   TRUE 0.034300778   1  31
# 2         0   TRUE 0.497066963   1  51
# 3         1   TRUE 0.046356567   1  39
# 4         1   TRUE 0.024704873   1  22
# 5         0   TRUE 0.126670360   1  26
# 6         1   TRUE 0.007228506   0  60

survHIMA.fit <- survHIMA(X = himaDat$Example3$PhenoData$Treatment,
                         Z = himaDat$Example3$PhenoData[, c("Sex", "Age")], 
                         M = himaDat$Example3$Mediator, 
                         OT = himaDat$Example3$PhenoData$Time, 
                         status = himaDat$Example3$PhenoData$Status, 
                         FDRcut = 0.05,
                         scale = FALSE, 
                         verbose = TRUE)
survHIMA.fit
# 【结果输出】
# ID      alpha  alpha_se       beta    beta_se      p.joint
# 1 M1  1.0384367 0.1365431  0.7940717 0.08687706 2.842171e-14
# 2 M2  0.6414393 0.1507081  0.7969670 0.07691991 2.079579e-05
# 3 M3 -0.9087889 0.1463872 -0.9952480 0.08084286 5.362315e-10

参考文献

Zhang H, Zheng Y, Zhang Z, Gao T, Joyce B, Yoon G, Zhang W, Schwartz J, Just A, Colicino E, Vokonas P, Zhao L, Lv J, Baccarelli A, Hou L, Liu L. Estimating and Testing High dimensional Mediation Effects in Epigenetic Studies. Bioinformatics. (2016) . PMID: 2735717

摘要:

目的:高维 DNA 甲基化标记可能介导环境暴露与健康结果之间的结合。然而,缺乏分析方法来确定高维调解分析的重要中介。

结果: 在确定独立筛选和极小极大凹惩罚技术的基础上,采用联合显著性检验方法对调解效果进行检验。我们使用蒙特卡罗模拟研究来展示其实际性能,并应用这种方法来调查在规范老化研究中,DNA 甲基化标记介导从吸烟到肺功能减少的因果途径的程度。我们鉴定了2个具有显著中介作用的 CpG。

可用性和实现: R 软件包、源代码和模拟研究 https://github.com/yinanzheng/hima 

HIMA: High-Dimensional Mediation Analysis (r-project.org)https://cran.r-project.org/web/packages/HIMA/HIMA.pdf文章来源地址https://www.toymoban.com/news/detail-836065.html

到了这里,关于高维数据的中介效应【中介分析】《R包:HIMA》的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习笔记3 | 高维数据处理——Xarray

    一、数据结构 1.DataArray (1)DataArray的创建 (2)DataArray的属性及常用方法 2.DataSet (1)DataSet的创建 (2)DataSet的属性和常用方法 二、数据的读取 1.读取nc文件 2.读取grib文件 3.读取多个文件并 合并 三、数据的索引 1.通过位置索引 2.通过名字索引 四、数据的坐标系统 1.修改坐

    2024年02月13日
    浏览(47)
  • 无涯教程-机器学习 - 数据统计

    在进行机器学习项目时,通常无涯教程会忽略两个最重要的部分,分别是 数学 和 数据 。这是因为知道ML是一种数据驱动的方法,并且ML模型只会产生与提供给它的数据一样好的或坏的输出。 在上一章中,讨论了如何将CSV数据上传到ML项目中,但是最好在上传之前了解数据。

    2024年02月10日
    浏览(46)
  • Python 机器学习入门:数据集、数据类型和统计学

    机器学习是通过研究数据和统计信息使计算机学习的过程。机器学习是迈向人工智能(AI)的一步。机器学习是一个分析数据并学会预测结果的程序。 在计算机的思维中,数据集是任何数据的集合。它可以是从数组到完整数据库的任何东西。 数组的示例: [99,86,87,88,111,86,10

    2024年02月05日
    浏览(47)
  • [机器学习、Spark]Spark MLlib实现数据基本统计

    👨‍🎓👨‍🎓博主:发量不足 📑📑本期更新内容: Spark MLlib基本统计 📑📑下篇文章预告:Spark MLlib的分类🔥🔥 简介:耐心,自信来源于你强大的思想和知识基础!!   目录 Spark MLlib基本统计 一.摘要统计 二.相关统计 三.分层抽样   MLlib提供了很多统计方法,包含

    2024年02月02日
    浏览(48)
  • 【大数据学习篇6】 Spark操作统计分析数据操作

    通过前面的文章安装好环境下面我们就可以开始来操作 使用MySQL的root用户对数据库进行修改以下设置

    2024年02月05日
    浏览(45)
  • 【机器学习 | 朴素贝叶斯】朴素贝叶斯算法:概率统计方法之王,简单有效的数据分类利器

    🤵‍♂️ 个人主页: @AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍 🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能硬件(虽然硬件还没开始玩,但一直

    2024年02月15日
    浏览(55)
  • Python数据分析案例31——中国A股的月份效应研究(方差分析,虚拟变量回归)

    本次案例是博主本科在行为金融学课程上做的一个小项目,最近看很多经管类的学生作业都很需要,我就用python来重新做了一遍。不弄那些复杂的机器学习模型了,经管类同学就用简单的统计学方法来做模型就好。 有效市场假说是现代金融证券市场的理论基础之一,根据这一

    2024年01月22日
    浏览(81)
  • 机器学习和大数据:如何利用机器学习算法分析和预测大数据

      近年来,随着科技的迅速发展和数据的爆炸式增长,大数据已经成为我们生活中无法忽视的一部分。大数据不仅包含着海量的信息,而且蕴含着无数的商机和挑战。然而,如何从这些海量的数据中提取有价值的信息并做出准确的预测成为了许多企业和研究机构亟需解决的问

    2024年02月06日
    浏览(55)
  • 机器学习与数据分析

    孤立森林(Isolation Forest)从原理到实践 效果评估:F-score 【1】 保护隐私的时间序列异常检测架构 概率后缀树 PST – (异常检测) 【1】 UEBA架构设计之路5: 概率后缀树模型 【2】 基于深度模型的日志序列异常检测 【3】 史上最全异常检测算法概述 后缀树 – (最长公共子串

    2024年02月10日
    浏览(39)
  • 机器学习 探索性数据分析

    数据探索性分析(EDA)目的主要是了解整个数据集的基本情况(多少行、多少列、均值、方差、缺失值、异常值等);通过查看特征的分布、特征与标签之间的分布了解变量之间的相互关系、变量与预测值之间的存在关系;为特征工程做准备。 使用的数据是广告点击率预估挑

    2023年04月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包