原文链接:http://tecdat.cn/?p=22772
原文出处:拓端数据部落公众号
我们经常使用的一个关系性指标是相关性。通过可以利用数据框架和绘图来帮助探索相关关系。
本文先创建了相关关系的关系数据框,然后绘制了关系结构。
库
我们将使用以下库。
代码语言:javascript复制library(tidyverse)library(igraph)
基本方法
给定一个由数字变量组成的数据框d,我们想在网络中绘制其相关性,这里有一个基本方法。
代码语言:javascript复制# 创建相关数据框d %>% correlate() %>% # 将强于某个值的相关关系转换成转换为一个无向图的对象cors %>% filter(abs(r) # 绘制plot(cors)
例子1:汽车参数配置关联变量
让我们按照这个方法来处理MTCars数据集。默认情况下,所有的变量都是数字的,所以我们不需要做任何预处理。
我们首先创建一个相关性数据框,并将其转换为一个图形对象。
代码语言:javascript复制 correlate() %>% stretch()
接下来,我们将这些值转换为一个无向图对象。该图是不定向的,因为相关关系没有方向。相关关系没有因果关系。
因为,我们通常不希望看到所有的相关关系,我们首先过滤()出绝对值小于某个阈值的任何相关关系。例如,让我们包括0.3或更强的相关关系(正或负)。
代码语言:javascript复制cors %>% filter(abs(r) > .3) %>%
我们绘制这个对象。下面是一个基本图。
代码语言:javascript复制plot(cors)
改进之后的。
代码语言:javascript复制plot(cors,width = abs(r), color = r,title="汽车变量之间的相关关系")
例子2:有类似饮酒习惯的国家
这个例子需要进行一些数据预处理,我们只看强正相关。
让我们来看一个关于世界各国的啤酒、葡萄酒饮用量的数据。
代码语言:javascript复制drinkdata
我想找出欧洲和美洲的哪些国家有类似的啤酒、葡萄酒和烈酒饮用习惯,以及澳大利亚在其中的地位。绑定地理信息并找到我感兴趣的国家,把这些数据变成相关数据的形状。
代码语言:javascript复制# 标准化数据以检查相对数量。# 而不是绝对数量# 啤酒、葡萄酒和烈酒的相对数量d %>% mutate_if(is.numeric, scale)# 整理数据%>% gather(type, litres, -country) %>% drop_na() %>% #转换成宽数据以便进行关联分析 %>% spread(country, litres) %>%
这个数据包括每个国家喝的啤酒、葡萄酒和烈酒数量的Z-scores。
我们现在可以继续使用我们的标准方法。因为我只对哪些国家真正相似感兴趣,我们过滤相关系数低的数据。(r>0.9)
代码语言:javascript复制plot(cors,alpha = r, color = r,title = "哪些国家有类似的饮酒习惯?")
这些国家的饮酒行为分为三个群组。
例如澳大利亚与许多西欧和北欧国家如英国、法国、荷兰、挪威和瑞典一起出现在左上方的集群中。
最受欢迎的见解
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可视化