拓端tecdat|R语言进行相关矩阵分析及其网络可视化
原文链接:http://tecdat.cn/?p=6488
原文出处:拓端数据部落公众号
数据准备
# 选择感兴趣的列
mydata <- mtcars %>% select(mpg, disp, hp, drat, wt, qsec)
# 添加一些缺失值
mydata$hp[3] <- NA
# 检查数据
head(mydata, 3)
## mpg disp hp drat wt qsec
## Mazda RX4 21.0 160 110 3.90 2.62 16.5
## Mazda RX4 Wag 21.0 160 110 3.90 2.88 17.0
## Datsun 710 22.8 108 NA 3.85 2.32 18.6
计算相关矩阵
res.cor <- correlate(mydata)
res.cor
## # A tibble: 6 x 7
## rowname mpg disp hp drat wt qsec
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 mpg NA -0.848 -0.775 0.681 -0.868 0.419
## 2 disp -0.848 NA 0.786 -0.710 0.888 -0.434
## 3 hp -0.775 0.786 NA -0.443 0.651 -0.706
## 4 drat 0.681 -0.710 -0.443 NA -0.712 0.0912
## 5 wt -0.868 0.888 0.651 -0.712 NA -0.175
## 6 qsec 0.419 -0.434 -0.706 0.0912 -0.175 NA
该函数的其他参数correlate()
包括:
method
:字符串,指示要计算哪个相关系数(或协方差)。“pearson”(默认),“kendall”或“spearman”之一。diagonal
:将对角线设置为的值(通常为数字或NA)。
探索相关矩阵
过滤相关性高于0.8:
## # A tibble: 6 x 3
## rowname colname cor
## <chr> <chr> <dbl>
## 1 disp mpg -0.848
## 2 wt mpg -0.868
## 3 mpg disp -0.848
## 4 wt disp 0.888
## 5 mpg wt -0.868
## 6 disp wt 0.888
特定的列/行
此函数的作用与dplyr类似slect()
,但也会从行中排除选定的列。
- 选择相关的结果。所选列将从行中排除:
## # A tibble: 3 x 4
## rowname mpg disp hp
## <chr> <dbl> <dbl> <dbl>
## 1 drat 0.681 -0.710 -0.443
## 2 wt -0.868 0.888 0.651
## 3 qsec 0.419 -0.434 -0.706
- 选定的列:
## # A tibble: 3 x 4
## rowname mpg disp hp
## <chr> <dbl> <dbl> <dbl>
## 1 mpg NA -0.848 -0.775
## 2 disp -0.848 NA 0.786
## 3 hp -0.775 0.786 NA
- 删除不需要的列:
## # A tibble: 3 x 4
## rowname drat wt qsec
## <chr> <dbl> <dbl> <dbl>
## 1 mpg 0.681 -0.868 0.419
## 2 disp -0.710 0.888 -0.434
## 3 hp -0.443 0.651 -0.706
- 按正则表达式选择列
## # A tibble: 4 x 3
## rowname disp drat
## <chr> <dbl> <dbl>
## 1 mpg -0.848 0.681
## 2 hp 0.786 -0.443
## 3 wt 0.888 -0.712
## 4 qsec -0.434 0.0912
- 选择高于0.8的相关性:
## # A tibble: 2 x 3
## rowname disp wt
## <chr> <dbl> <dbl>
## 1 disp NA 0.888
## 2 wt 0.888 NA
- 关注一个变量与所有其他变量的相关性:
# 提取相关系数
## # A tibble: 5 x 2
## rowname mpg
## <chr> <dbl>
## 1 disp -0.848
## 2 hp -0.775
## 3 drat 0.681
## 4 wt -0.868
## 5 qsec 0.419
# 绘制mpg与其他变量之间的相关性
重新排序相关矩阵
## # A tibble: 6 x 7
## rowname wt drat disp mpg hp qsec
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 wt NA -0.712 0.888 -0.868 0.651 -0.175
## 2 drat -0.712 NA -0.710 0.681 -0.443 0.0912
## 3 disp 0.888 -0.710 NA -0.848 0.786 -0.434
## 4 mpg -0.868 0.681 -0.848 NA -0.775 0.419
## 5 hp 0.651 -0.443 0.786 -0.775 NA -0.706
## 6 qsec -0.175 0.0912 -0.434 0.419 -0.706 NA
上/下三角
上/下三角形到缺失值
res.cor %>% shave()
## # A tibble: 6 x 7
## rowname mpg disp hp drat wt qsec
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 mpg NA NA NA NA NA NA
## 2 disp -0.848 NA NA NA NA NA
## 3 hp -0.775 0.786 NA NA NA NA
## 4 drat 0.681 -0.710 -0.443 NA NA NA
## 5 wt -0.868 0.888 0.651 -0.712 NA NA
## 6 qsec 0.419 -0.434 -0.706 0.0912 -0.175 NA
将数据拉伸为长格式
res.cor %>% stretch()
## # A tibble: 36 x 3
## x y r
## <chr> <chr> <dbl>
## 1 mpg mpg NA
## 2 mpg disp -0.848
## 3 mpg hp -0.775
## 4 mpg drat 0.681
## 5 mpg wt -0.868
## 6 mpg qsec 0.419
## # … with 30 more rows
使用tidyverse和corrr包处理相关性
可视化相关系数的分布:
重新排列并过滤相关矩阵:
res.cor %>%focus(mpg:drat, mirror = TRUE) %>%
## # A tibble: 3 x 4
## rowname mpg disp drat
## <chr> <dbl> <dbl> <dbl>
## 1 hp -0.775 0.786 -0.443
## 2 mpg NA -0.848 0.681
## 3 disp NA NA -0.710
解释相关性
## rowname mpg disp hp drat wt qsec
## 1 mpg -.85 -.77 .68 -.87 .42
## 2 disp -.85 .79 -.71 .89 -.43
## 3 hp -.77 .79 -.44 .65 -.71
## 4 drat .68 -.71 -.44 -.71 .09
## 5 wt -.87 .89 .65 -.71 -.17
## 6 qsec .42 -.43 -.71 .09 -.17
res.cor %>%focus(mpg:drat, mirror = TRUE)
## rowname mpg disp drat
## 1 hp -.77 .79 -.44
## 2 mpg -.85 .68
## 3 disp -.71
- 制作相关图:
- 重新排列然后绘制下三角形:
- 制作网络
关联数据库中的数据
- 使用SQLite数据库:
con <- DBI::dbConnect(RSQLite::SQLite(), path = ":dbname:")
db_mtcars <- copy_to(con, mtcars)
class(db_mtcars)
correlate()
检测数据库后端,用于tidyeval
计算数据库中的相关性,并返回相关数据。
db_mtcars %>% correlate(use = "complete.obs")
- 使用spark:
sc <- sparklyr::spark_connect(master = "local")
mtcars_tbl <- copy_to(sc, mtcars)
correlate(mtcars_tbl, use = "complete.obs")
- 非常感谢您阅读本文,有任何问题请在下方留言!
参考文献
1.R语言动态图可视化:如何、创建具有精美动画的图
2.R语言生存分析可视化分析
3.Python数据可视化-seaborn Iris鸢尾花数据
4.r语言对布丰投针(蒲丰投针)实验进行模拟和动态
5.R语言生存分析数据分析可视化案例
6.r语言数据可视化分析案例:探索brfss数据数据分析
7.R语言动态可视化:制作历史全球平均温度的累积动态折线图动画gif视频图
8.R语言高维数据的主成分pca、 t-SNE算法降维与可视化分析案例报告
9.python主题LDA建模和t-SNE可视化
拓端tecdat|R语言进行相关矩阵分析及其网络可视化相关推荐
- 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...
- 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测
最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...
- 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系
最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...
- 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例
最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...
- 拓端tecdat荣获掘金社区入驻新人奖
2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...
- 拓端tecdat荣获2022年度51CTO博主之星
相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...
- R语言使用ggplot2包的快速可视化函数qplot绘制基础密度图实战
R语言使用ggplot2包的快速可视化函数qplot绘制基础密度图实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制基础密度图实战 #仿真数据
- R语言使用ggplot2包的快速可视化函数qplot绘制分组点图(带状图)并配置分组颜色实战
R语言使用ggplot2包的快速可视化函数qplot绘制分组点图(带状图)并配置分组颜色实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制分组点图(带状图)并配置分组颜色实战 #仿真 ...
- R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter、分组颜色配置)实战
R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter.分组颜色配置)实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter.分组颜色配置) ...
- R语言使用ggplot2包的快速可视化函数qplot绘制密度图(主题、轴标签设置)实战
R语言使用ggplot2包的快速可视化函数qplot绘制密度图(主题.轴标签设置)实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制密度图(主题.轴标签设置)实战 #仿真数据
最新文章
- 一个很适合用来套用后台的框架
- 属性名_CSS -- 属性选择器
- Qt Mac 桌面版本编译出错
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
- mysql 5.7.15 union order by 子查询排序不生效
- 【ASP.NET Web API教程】5.4 ASP.NET Web API批处理器
- ‘ascii‘ codec can‘t encode characters in position
- 今天聊:做好前端的 10 个习惯
- Objective--C的Foundation frame之NSMutableDictionary代码
- html样式超出出现滚动条,CSS 设置的高度超出屏幕高度为什么没出现滚动条?
- 中国ai人工智能发展太快_新的AI计算遥远行星的速度快100,000倍
- Python路飞学城老男孩内部书籍,Python全栈开发实战pdf
- Windows server资源分享
- Unity 视频播放器插件 AVPro Video -- 360全景视频播放+暴风魔镜sdk
- 数字孪生技术在交通运输领域管理应用【案例解析】
- python shapely
- 如何在iPhone和iPad上的Safari中在网页上查找文本
- Python九九口诀表
- React.createRef()的使用
- 关于String的intern的一个题目
热门文章
- org manual翻译--2.7 纯文本列表
- 使用oracle修改/etc/passwd /etc/passwd默认SHELL被修改后,无法...
- 起II6.0中使用windows2003自带的虚拟主机管理系统
- [实践项目]Udacity self-driving-car-sim
- 第十七章 模型压缩及移动端部署
- bootstrap-table教程演示
- 用网站(WebSite而不是WebProject)项目构建ASP.NET MVC网站
- [极客]每个极客都应该知道的Linux技巧 (1)
- JAVA画SVG图(Batik框架)SVGComponentDemo
- [置顶] 任务一 基本的数据库连接——以类为单位的编程思想