R语言进行相关矩阵分析及其网络可视化

简介: R语言进行相关矩阵分析及其网络可视化

全文链接:http://tecdat.cn/?p=6488


在本文中,我们描述了如何使用R语言进行相关矩阵分析及其可视化点击文末“阅读原文”获取完整代码数据

复杂网络分析CNA简介与R语言对婚礼数据聚类(社区检测)和可视化

数据准备

# 选择感兴趣的列
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月前
|
人工智能 边缘计算 物联网
蜂窝网络未来发展趋势的分析
蜂窝网络未来发展趋势的分析
72 2
|
1月前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
2月前
|
机器学习/深度学习 数据可视化 计算机视觉
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
68 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
|
2月前
|
机器学习/深度学习 数据采集 存储
时间序列预测新突破:深入解析循环神经网络(RNN)在金融数据分析中的应用
【10月更文挑战第7天】时间序列预测是数据科学领域的一个重要课题,特别是在金融行业中。准确的时间序列预测能够帮助投资者做出更明智的决策,比如股票价格预测、汇率变动预测等。近年来,随着深度学习技术的发展,尤其是循环神经网络(Recurrent Neural Networks, RNNs)及其变体如长短期记忆网络(LSTM)和门控循环单元(GRU),在处理时间序列数据方面展现出了巨大的潜力。本文将探讨RNN的基本概念,并通过具体的代码示例展示如何使用这些模型来进行金融数据分析。
409 2
|
3天前
|
存储 安全 物联网
浅析Kismet:无线网络监测与分析工具
Kismet是一款开源的无线网络监测和入侵检测系统(IDS),支持Wi-Fi、Bluetooth、ZigBee等协议,具备被动监听、实时数据分析、地理定位等功能。广泛应用于安全审计、网络优化和频谱管理。本文介绍其安装配置、基本操作及高级应用技巧,帮助用户掌握这一强大的无线网络安全工具。
27 9
浅析Kismet:无线网络监测与分析工具
|
2月前
|
机器学习/深度学习 数据可视化 Windows
深度学习笔记(七):如何用Mxnet来将神经网络可视化
这篇文章介绍了如何使用Mxnet框架来实现神经网络的可视化,包括环境依赖的安装、具体的代码实现以及运行结果的展示。
61 0
|
6天前
|
数据采集 机器学习/深度学习 人工智能
基于AI的网络流量分析:构建智能化运维体系
基于AI的网络流量分析:构建智能化运维体系
53 13
|
9天前
|
安全 网络协议 网络安全
网络不稳定导致HTTP代理频繁掉线的分析
随着数字化时代的加速发展,网络安全、隐私保护及内容访问自由成为用户核心需求。HTTP代理服务器因其独特技术优势受到青睐,但其掉线问题频发。本文分析了HTTP代理服务器不稳定导致掉线的主要原因,包括网络问题、服务器质量、用户配置错误及IP资源问题等方面。
42 0
|
1月前
|
安全 网络协议 网络安全
【Azure 环境】从网络包中分析出TLS加密套件信息
An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed. 从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。连接请求失败。
|
1月前
|
存储 安全 网络安全
网络安全法律框架:全球视角下的合规性分析
网络安全法律框架:全球视角下的合规性分析
49 1