用于识别变量之间关系的R包


13

是否可以使用R包来探索变量之间是否存在关系?

通常,当我寻找模式时,我会先看相关性,然后看一个方面图。然后,我将一些转换手动应用于数据中的变量。我想知道是否可以通过R包来加快此过程。


如果您有自己的流程,则可以始终滚动自己的包。或者只是在脚本开头加载的某些文件中的可重用函数。
布兰登·贝特尔森

Answers:


9

AFAIK,不。更准确地说,我不知道有一个R包可以通过一个函数调用为您完成所谓的探索性数据分析(EDA)的一部分-我正在考虑重新表达启示方面在Hoaglin,Mosteller和Tukey中讨论了了解稳健和探索性数据分析。Wiley-Interscience,尤其是1983年。

但是,R中存在一些不错的选择,尤其是在数据的交互式探索方面(请看这里有趣的讨论:交互式数据可视化何时有用?)。我能想到的

  • iplots或其后继产品Acinonyx,用于交互式可视化(允许进行笔刷,链接绘图等)(可以在latticist软件包中找到其中一些功能;最后,rgl非常适合3D交互式可视化。)
  • 用于交互式和动态显示的ggobi,包括数据缩减(多维缩放)和Projection Pursuit

这仅用于交互式数据浏览,但是我想说这是EDA的本质。无论如何,上述技术在探索数值变量之间的双变量或高阶关系时可能会有所帮助。对于分类数据,vcd包是一个不错的选择(可视化表和汇总表)。然后,我要说的是,首先使用veganade4软件包来探索混合数据类型的变量之间的关系。

最后,R中的数据挖掘又如何呢?(在Rseek上尝试使用此关键字)


(+1)很高兴看到您回覆问题!
ub

+1 Btw:小错字-Acinonyx(i和y换位了)。
Iterator

@Iterator感谢您输入错误。(我已经+1了您的回复,很高兴您引用了威尔金森的论文)。
chl

2
现在loon还有waddella.github.io/loon,Credit 转到@hadleywickham指出了这一点。
Ari B. Friedman

11

如果您只是想快速了解数据集中变量之间的相关性,请查看psych软件包中的pairs()函数,或者更好的是pairs.panels()函数。我在这里写了一些关于pairs功能的文章。

使用pairs()或psych :: pairs.panels()函数,可以很容易地创建散点图矩阵。

pairs.panels(iris[-5], bg=c("blue","red","yellow")[iris$Species], pch=21,lm=TRUE)

在此处输入图片说明


7

检查scagnostics包装和原始研究论文。对于双变量关系,这非常有趣。对于多元关系,投影追求是非常好的第一步。

但是,总的来说,领域和数据专业知识将缩小范围并改善您用于快速调查关系的方法。


7

PerformanceAnalytics中chart.Correlation函数提供与plot.pairs函数@Stephen Turner相似的功能,不同之处在于它使用黄土函数而不是线性模型进行平滑,并且具有相关性。

library(PerformanceAnalytics)
chart.Correlation(iris[-5], bg=c("blue","red","yellow")[iris$Species], pch=21)

图表


5

如果您正在寻找可能与关联相关的转换,那么ace可以在acepack软件包(可能还有其他软件包)中找到尚未提及的可能有用的工具。这是一个尝试许多不同变换(使用平滑器)以查找变换以最大化一组x变量与ay变量之间的相关性的交互过程。然后,绘制变换可以建议有意义的变换。


2

您可以使用'energy'包中的DCOR函数来计算非线性相关性的度量,即距离相关性,并如上所述进行绘制。皮尔森相关性的问题在于它只能检测变量之间的线性关系。确保在所说的DCOR函数中选择索引的写参数。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.