• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    教学以及管理操作教程

    教学以及管理操作教程

    ¥1,000.00 ¥100.00
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      教学以及管理操作教程

      教学以及管理操作教程

      ¥1,000.00 ¥100.00
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      生信星球

      • 首页
      • 博客
      • 生信星球
      • R语言的相关性分析

      R语言的相关性分析

      • 发布者 weinfoeditor
      • 分类 生信星球
      • 日期 2020年4月7日
      测试开头

       今天是生信星球陪你的第588天


         大神一句话,菜鸟跑半年。我不是大神,但我可以缩短你走弯路的半年~

         就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~

         这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!

      R语言的相关性分析

      花花写于2020-04-06,TCGA和R包都告一段落,这几天开始学些统计学知识。收集了一些资料,statquest在B站有了中英字幕版(直接搜索statquest即可),也有成套的中文学习笔记可供参考,学习难度下降了不少。
      笔记链接:

      https://www.yuque.com/biotrainee/biostat
      统计学的知识点比较琐碎,很难整理,正在克服困难中。。。

      1.示例数据

      x1:R语言内置数据集iris的前4列。

      x2:R语言内置数据集state.x77

      x = iris[,-5]
      x2 = state.x77

      state.x77列名的含义:
      Population:截至1975年7月1日的人口估计
      Income:人均收入(1974)
      Illiteracy:文盲率(1970年,占人口百分比)
      Life Exp:预期寿命(1969-71年)
      Murder:每10万人的谋杀和非过失杀人率(1976)
      HS Grad 高中毕业生百分比(1970)
      Frost:首都或大城市中最低温度低于冰点(1931-1960)的平均天数
      Area:土地面积(平方英里)

      2.协方差

      使用cov()函数计算。

      关于协方差:cov(x,y)>0,表示x、y的变化为正趋势,<0为负趋势,=0为无趋势。协方差对数据的变化范围敏感,无法反应变化趋势的强弱和离散程度,但它是一些高级分析的基石。

      cov(x$Sepal.Length,x$Petal.Length)
      #> [1] 1.274315
      cov(x)
      #>              Sepal.Length Sepal.Width Petal.Length Petal.Width
      #> Sepal.Length    0.6856935  -0.0424340    1.2743154   0.5162707
      #> Sepal.Width    -0.0424340   0.1899794   -0.3296564  -0.1216394
      #> Petal.Length    1.2743154  -0.3296564    3.1162779   1.2956094
      #> Petal.Width     0.5162707  -0.1216394    1.2956094   0.5810063
      pheatmap::pheatmap(cov(x))
      R语言的相关性分析
      image.png

      3.相关

      3.1计算相关性系数

      cor函数可计算三种相关性系数:pearson,kendall和spearman,默认是pearson。pearson是参数检验,需要两个向量均服从正态分布。另外两个为非参数检验。

      输入值为两个向量


      cor(x$Sepal.Length,x$Petal.Length)
      #> [1] 0.8717538
      cor(x$Sepal.Length,x$Petal.Length,method = "kendall")
      #> [1] 0.7185159
      cor(x$Sepal.Length,x$Petal.Length,method = "spearman")
      #> [1] 0.8818981

      输入值为一个数值型数据框/矩阵

      cor(x)
      #>              Sepal.Length Sepal.Width Petal.Length Petal.Width
      #> Sepal.Length    1.0000000  -0.1175698    0.8717538   0.8179411
      #> Sepal.Width    -0.1175698   1.0000000   -0.4284401  -0.3661259
      #> Petal.Length    0.8717538  -0.4284401    1.0000000   0.9628654
      #> Petal.Width     0.8179411  -0.3661259    0.9628654   1.0000000
      pheatmap::pheatmap(cor(x))
      R语言的相关性分析
      image.png

      可见,计算的结果是x的4个变量(4列)两两之间的相关性。

      3.2 相关系数的显著性检验

      cor.test(x$Sepal.Length,x$Petal.Length)
      #> 
      #>  Pearson's product-moment correlation
      #> 
      #> data:  x$Sepal.Length and x$Petal.Length
      #> t = 21.646, df = 148, p-value < 2.2e-16
      #> alternative hypothesis: true correlation is not equal to 0
      #> 95 percent confidence interval:
      #>  0.8270363 0.9055080
      #> sample estimates:
      #>       cor 
      #> 0.8717538
      cor.test(x$Sepal.Length,x$Petal.Length,method = "kendall")
      #> 
      #>  Kendall's rank correlation tau
      #> 
      #> data:  x$Sepal.Length and x$Petal.Length
      #> z = 12.647, p-value < 2.2e-16
      #> alternative hypothesis: true tau is not equal to 0
      #> sample estimates:
      #>       tau 
      #> 0.7185159
      cor.test(x$Sepal.Length,x$Petal.Length,method = "spearman")
      #> Warning in cor.test.default(x$Sepal.Length, x$Petal.Length, method =
      #> "spearman"): Cannot compute exact p-value with ties
      #> 
      #>  Spearman's rank correlation rho
      #> 
      #> data:  x$Sepal.Length and x$Petal.Length
      #> S = 66429, p-value < 2.2e-16
      #> alternative hypothesis: true rho is not equal to 0
      #> sample estimates:
      #>       rho 
      #> 0.8818981

      cor.test函数还有一个alternative参数,表示单边/双边检验。有三个取值:“two.sided”(双边检验), “less”, “greater”。相关性系数大于0时,应使用greater;小于0时,应使用less;如果不指定,则默认“two.sided”。

      4.偏相关

      即在控制一个或多个其他变量时,两个变量之间的相互关系。(这里的变量都应是连续型变量)

      控制某个变量,指的是排除该变量的影响。被控制的变量称为条件变量。

      使用ggm::pcor()函数来计算。用法为:pcor(u, S)。

      • u为一个表示列号的向量,前两个元素为研究对象,其他元素是条件变量。例如c(1,2,4,5),表示在控制4、5列的条件下,研究1和2列的相关性。

      • S 是协方差矩阵

      举个栗子

      人口数量(第一列)和收入水平(第二列)都可能影响文盲率(第三列),如果直接分别计算相关性的话:

      cor(x2[,1],x2[,3])
      #> [1] 0.1076224
      cor(x2[,2],x2[,3])
      #> [1] -0.4370752

      相关系数约为0.1和-4.3。控制其中一个变量计算另一个变量的影响,结果则不同。

      #install.packages("ggm")
      library(ggm)
      #在控制收入的条件下,人口数量对文盲率的影响
      pcor(c(1,3,2),cov(x2))
      #> [1] 0.2257943
      #在控制人口的条件下,收入对文盲率的影响
      pcor(c(2,3,1),cov(x2))
      #> [1] -0.4725271

      偏相关系数为0.2和-0.47,相比原来,绝对值大了一些。

      同样的道理,控制收入、文盲率的影响,研究人口与谋杀率的偏相关性:

      pcor(c(1,5,2,3),cov(x2))
      #> [1] 0.3621683

      偏相关性的显著性检验

      pcor.test(pcor(c(2,3,1),cov(x2)),q=3,n=50)
      #> $tval
      #> [1] -3.596675
      #> 
      #> $df
      #> [1] 45
      #> 
      #> $pvalue
      #> [1] 0.0007972922

      用法为:pcor.test(r, q, n)

      r是偏相关性计算结果,q是变量数,n是样本数,在帮助文档中有描述。

      插个小广告!

      生信零基础入门学习小组

      全国巡讲全球听(生信线上直播课)

      数据挖掘线上班来袭(两天变三周,实力加量)

      一起来学单细胞吗?

      测试结尾

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoeditor

      上一篇文章

      SAM/BAM的CIGAR重难点知识
      2020年4月7日

      下一篇文章

      懒花花想要博客,于是我就…
      2020年4月8日

      你可能也喜欢

      8-1651673488
      生信零基础入门学习小组长期报名中(2022仍继续)
      7 4月, 2022
      2-1651673738
      简化版的ROC曲线
      21 2月, 2022
      8-1651674718
      支持向量机模型
      19 11月, 2021

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?