快速浏览数据集

机器算法验证 数据可视化 相关性 数据挖掘 探索性数据分析
2022-03-04 06:37:13

请原谅我的无知,但是...

我不断发现自己处于一种情况,我面临着一堆我设法找到的新数据。这些数据通常看起来像这样:

Date     Number1  Number2  Category1  Category2
20120125      11      101        Dog      Brown
20120126      21       90        Cat      Black
20120126      31      134        Cat      Brown
(...)

通常乍一看,我真的无法判断这里是否有任何趋势。各列之间的相关性可能不是很显着,但如果我不必为每个可能的列/类别组合手动创建图,我会很高兴。

是否有一个工具可以接受数据表以及哪些列应该被视为数字、日期和类别的信息,然后继续绘制:

  • 每两个数值列之间的相关性
  • 每两个数字列之间的相关性,每个类别都有单独的趋势线
  • 每个数字列作为时间序列,
  • 每个数字列作为时间序列,按类别分隔,
  • 等等

最后,这会产生大量的图,其中大部分只会显示噪声。理想情况下,该工具可以通过相关性对图进行评分,并最终显示从得分最高的图开始的幻灯片。乍一看,这将是一个非常不完美但很有用的数据集。

所以?是否有每个人都使用的工具,我只是不知道,或者这是我们需要制作的东西?

3个回答

@Ondrej 和 @Michelle 在这里提供了一些很好的信息。我想知道我是否可以通过解决其他地方未提及的一些问题来做出贡献。我不会因为无法从表格形式的数据中收集到太多信息而自责,表格通常不是呈现信息的好方法(参见Gelman et al., Turning Tables into Graphs)。另一方面,要求一种能够自动生成所有正确图表以帮助您探索新数据集的工具几乎就像要求一种能够为您思考的工具一样。(不要采取错误的方式,我知道您的问题清楚地表明您并没有走那么远;我的意思是永远不会有这样的工具。)可以找到与此相关的很好的讨论在这里

说了这么多,我想谈谈您可能想用来探索数据的绘图类型。问题中列出的图将是一个好的开始,但我们也许可以对其进行一些优化。首先,制作关联变量对的“大量图”可能并不理想。散点图仅显示两个变量之间的边际关系。重要的关系通常可以隐藏在多个变量的某种组合中。所以加强这种方法的第一种方法是制作散点图矩阵同时显示所有成对散点图。散点图矩阵可以通过多种方式增强:例如,它们可以与每个变量分布的单变量核密度图相结合,可以使用不同的标记/颜色来绘制不同的组,并且可以通过叠加黄土拟合来评估可能的非线性关系。R 中的 car 包中的scatterplot.matrix函数可以很好地完成所有这些事情(可以在上面链接的页面中间看到一个示例)。

然而,虽然散点图矩阵是一个好的开始,但它们仍然只显示边缘投影。有几种方法可以尝试超越这一点。一种是使用 R 中的rgl包探索 3 维图。另一种方法是使用条件图;coplots可以同时帮助处理 3 或 4 个变量之间的关系。一种特别有用的方法是交互地使用散点图矩阵(尽管这将需要更多的努力来学习),例如通过“刷”。刷亮允许您突出显示矩阵的一帧中的一个或多个点,这些点将同时在所有其他帧中突出显示。通过移动画笔,您可以看到所有变量如何一起变化。更新:我忘记提及的另一种可能性是使用平行坐标图这在不使您的响应变量不同方面有一个缺点,但可能很有用,例如,在检查 X 变量之间的相互关系时。

我还想赞扬您检查按收集日期排序的数据。尽管数据总是随着时间的推移而收集,但人们并不总是这样做。绘制折线图很好,但我建议您用自相关图和偏自相关图来补充它。在 R 中,这些函数分别是acfpacf

我认识到,从为您提供一个可以自动为您绘制所有图的工具的意义上,所有这些并不能完全回答您的问题,但一个含义是,您实际上不必像担心的那样绘制尽可能多的图,例如,散点图矩阵只是一行代码。此外,在 R 中,应该可以为自己编写一个函数/一些可重用的代码,这些代码将部分自动化其中的一些(例如,我可以想象一个函数,它接收一个变量列表和一个日期排序,对它们进行排序, 为每个带有线、acf 和 pacf 图的新窗口弹出一个新窗口)。

每对数值列之间的相关性可以显示在相关性矩阵中。它不必是纯粹的数字,它可以用颜色编码,以便快速评估。查看 R 的corrplot包。

为了进一步分析,Rattle是一个非常有用的 GUI 工具。

如果您使用关键字“corrplot”或更确切地说“Rattle”搜索 Stack Exchange,您会发现涵盖这些工具及其替代品的几个主题。喜欢这个

祝你好运!

@Ondrej 给出了一些很好的建议,所以我将重点关注您关于软件如何处理导入数据的问题。对于字符数据“类别 1”和“类别 2”,软件会自动将它们视为组或因素,因为无法对这些数据进行数学运算。这意味着您将无法在需要数字的分析中输入来自这些类别的任何内容(或者,如果您尝试使用语法或命令行而不是菜单驱动系统,则会收到错误消息)。

对于像“数字 1”和“数字 2”这样的数据,软件会将它们读取为数字。如果您有任何包含纯数字数据的组/因子,则需要指示您的软件这些是组/因子。

有时日期可能会被错误地导入统计软件。导入数据后,您应该会看到统计软件中的数据类型为“日期”显示某种形式的“日期”类型。如果您看到数据类型不是日期,那么您就有问题了。即使它显示为日期,请检查某些行的​​导入,其中您有日期,例如每月 13 日或 25 日等日期 - 根据软件的设置方式,有时美国/英国日期格式会导致导入时出现错误数据, 因为日/月的反转。