36

我将很快分析大量与网络流量相关的数据,并对数据进行预处理以进行分析。我发现 R 和 SPSS 是最流行的统计分析工具之一。我还将生成相当多的图形和图表。因此,我想知道这两个软件之间的基本区别是什么。

我不是在问哪个更好,而只是想知道两者在工作流程方面有什么区别(除了 SPSS 具有 GUI 的事实)。无论哪种情况,我都将主要使用脚本,所以我想了解其他差异。

4

12 回答 12

35

这是我不久前发布到 R-help 邮件列表的内容,但我认为它对 R 和 SPSS 的一般差异提供了一个很好的高级概述:

在谈论计算机软件的用户友好性时,我喜欢汽车与公共汽车的类比:

公共汽车很容易使用,你只需要知道上哪辆公共汽车,在哪里上,在哪里下车(你需要支付车费)。另一方面,汽车需要更多的工作,您需要某种类型的地图或方向(即使地图在您的脑海中),您需要不时加油,您需要了解汽车的规则道路(有某种类型的驾驶执照)。汽车的一大优势是它可以带你去很多公共汽车不会去的地方,而且对于一些需要在公共汽车之间换乘的旅行来说它更快。

像 SPSS 这样的类比程序是总线,易于用于标准事物,但如果您想做一些尚未预编程的事情,则非常令人沮丧。

R 是一款 4 轮驱动 SUV(虽然是环保型的),后部有一辆自行车,顶部有一艘皮划艇,乘客座位上有良好的步行和跑步鞋,后部有登山和洞穴探险装备。

如果您花时间学习如何使用设备,R 可以带您去任何您想去的地方,但这比在 SPSS 中了解公交车站的位置要花更长的时间。

R 有一些 GUI,使其更易于使用,但也限制了可以轻松使用的功能。SPSS 确实有脚本,这使它不仅仅是一个公共汽车,但是 SPSS 的一般哲学引导人们使用 GUI 而不是脚本。

于 2010-09-24T19:22:53.313 回答
34

我在一家使用 SPSS 进行大部分数据分析的公司工作,出于各种原因 - 我已经开始尝试使用 R 进行越来越多的自己的分析。我遇到的一些最大差异包括:

  1. 表的输出 - SPSS 有基本表、通用表、自定义表等,它们都输出到那个漂亮的数据查看器或他们称之为的任何东西。这些可以相对容易地传输到 Word 文档或 Excel 表中,以供进一步分析/演示。R中的等效功能涉及学习LaTex或使用该性质的odfWeaveLyx或某物。
  2. 数据标签 --> SPSS 在变量标签和值标签方面做得很好。我还没有为 R 找到一个强大的解决方案来完成同样的任务。
  3. 您提到您将编写大部分工作的脚本,而我个人认为 SPSS 的脚本语法绝对可怕,以至于我已经尽可能停止使用 SPSS。R 语法似乎更合乎逻辑,并且更接近编程标准,并且如果您遇到麻烦(例如 SO),有一个非常活跃的社区可以依赖。我还没有找到一个好的 SPSS 社区来询问我何时遇到问题。

其他人指出了这些程序在成本和功能方面的一些重大差异。如果您必须与其他人合作,他们对 SPSS 或 R 的舒适程度应该是一个因素,因为您不希望成为小组中唯一可以处理或编辑您将来编写的脚本的人。

如果您要学习 R,统计信息交换网站上的这篇文章有很多学习 R 的好资源:https ://stats.stackexchange.com/questions/138/resources-for-learning-r

于 2010-09-24T14:34:59.160 回答
23

SPSS 的初始工作流程包括证明开出大额支票是合理的。R 是免费提供的。

R 有一种用于“脚本”的单一语言,但不要这样想,R 确实是一种编程语言,内置了强大的数据处理、统计和图形功能。SPSS 有“语法”、“脚本”并且是也可以在 Python 中编写脚本。

另一个大问题是 SPSS 将其数据压缩到电子表格结构中。处理其他数据结构可能非常困难,但对 R 来说很自然。我不知道从哪里开始在 SPSS 中处理网络图类型数据,但是有一个包可以为 R 做这件事。

此外,使用 R,您可以使用 Sweave 将您的工作流程与您的报告集成 - 您编写一个包含嵌入式 R 代码位的文档,这些代码生成图表或表格,通过系统运行文件,然后以 PDF 格式输出报告。非常适合当你想做周报,或者你做了很多工作,然后老板给你一个更新的数据集。重新运行,读一遍,完成。

但你知道,你的电话...

于 2010-09-24T13:34:41.013 回答
8

那么,你是一个体面的程序员吗?如果你是,那么学习 R 是值得的。在操作和统计建模方面,你可以用你的数据做更多的事情,而不是使用 SPSS,你的图表也可能会更好。另一方面,如果您以前从未真正编程过,或者发现花几个月成为程序员的想法令人生畏,那么您可能会从 SPSS 中获得更多价值。你可以用 R 做的事情而不深入了解它作为一种成熟的编程语言的能力可能并不能证明你的努力是合理的。

还有另一种选择——合作。您是否认识可以在您的项目上合作的人(您没有说是学术还是工业,但无论哪种方式......),谁很了解 R?

于 2010-09-24T13:59:16.403 回答
6

这里有一些统计工具之间的有趣(并且相当公平)的比较

http://anyall.org/blog/2009/02/comparison-of-data-analysis-packages-r-matlab-scipy-excel-sas-spss-stata/

于 2010-09-24T13:05:55.117 回答
4

我在一家公司与他们一起工作,可以说以下内容:

  • 如果你有一个由不同人组成的大型团队(不是所有的数据科学家),SPSS 很有用,因为它很容易(相对)理解。例如,如果用户要运行模型来获得输出(销售估算等),SPSS 是清晰且易于使用的。

也就是说,我发现 R 在几乎所有其他方面都更好:

  • R 更快(尽管有时值得商榷)
  • 如前所述,SPSS 中的语法非常棒(我怎么强调都不为过)。另一方面,R 学习起来可能会很痛苦,但是网上有大量的资源,而且由于你可以做的事情不同,最终它会付出更多的代价。
  • 再一次,就像其他人所说的那样,天空是 R 的极限。大量的包、资源,更重要的是:独立做你想做的事。在我的组织中,我们有一些非常高级的功能可以完成很多工作。困难的部分是创建它们一次,但随后它们执行复杂的任务,SPSS 将在一个永无止境的画布网络中纠结。对于循环之类的东西尤其如此。

它经常被忽视,但 R 也有很多团队之间合作的特性(github 与 RStudio 集成,以及使用 devtools 轻松构建包)。

实际上,如果您组织中的每个人都知道 R,那么您只需要在 github 上维护一个基本包即可共享所有内容。这当然不是常态,这就是为什么我认为 SPSS 虽然是最差的产品,但仍有市场。

于 2015-07-29T17:53:44.430 回答
3

我没有数据,但根据我的经验,我可以告诉你一件事:

SPSS 比 R 慢很多。(而且有很多,我真的很重要)

差异的大小可能与C++ 和 R之间的差异一样大。

例如,我在 R 中等待的时间永远不会超过几秒钟。使用 SPSS 和类似数据,我的计算时间超过了 10 分钟。

作为一个不相关的旁注:在我看来,在最近关于 R 速度的讨论中,这一点被忽略了(即与 SPSS 的比较)。此外,我很惊讶这个讨论是如何突然出现的,然后又悄无声息地消失了。

于 2010-09-24T13:32:57.600 回答
2

上面有一些很好的回应,但我会尽力提供我的 2 美分。我的部门完全依赖 SPSS 来完成我们的工作,但最近几个月,我一直在有意识地努力学习 R;部分原因是上面列出的一些原因(速度、庞大的数据结构、可用的包等)

也就是说,这里有一些我在此过程中学到的东西:

  1. 除非您有一些编程经验,否则我认为在 CTABLES 中创建汇总表会破坏 R 中的任何可用选项。迄今为止,我不知道可以复制可以使用自定义表创建的内容的包。

  2. SPSS 在编写脚本时似乎确实比较慢,是的,SPSS 语法很糟糕。也就是说,我发现 SPSS 中的 scipts 总是可以改进的,但要谨慎使用 EXECUTE 命令。

  3. SPSS 和 R 可以相互交互,尽管它似乎是一种方式(仅在 SPSS 内部使用 R 时,而不是相反的方式)。也就是说,除了我想使用 ggplot2 或其他一些高级数据管理技术之外,我发现这没什么用。(我鄙视 SPSS 宏)。

  4. 我一直觉得在 SPSS 中创建的“报告”工作远不如其他解决方案。如上所述,如果您可以利用 LaTex 和 Sweave,您将对您的高效工作流程感到非常满意。

  5. 我已经能够通过利用 SPSS 中的 OMS 进行一些高级分析。几乎所有内容都可以路由到新数据集,但我发现大多数 SPSS 用户不使用此功能。此外,在查看 R 中的示例时,它只是感觉比使用 OMS“更容易”。

简而言之,当我无法在 R 中快速弄清楚时,我发现自己在使用 SPSS,但我真诚地打算在不久的将来某个时候完全摆脱 SPSS 并完全使用 R。

于 2010-09-24T16:52:10.393 回答
2

SPSS 提供了一个 GUI 来轻松集成现有的 R 程序或开发新的程序。有关更多信息,请参阅IBM Developer Works 上的SPSS 社区。

于 2013-11-25T14:55:35.637 回答
1

@Henrik,我在 SPSS 上完成了您提到的相同任务(C++ 和 R)。事实证明,在这一点上,SPSS 比 R 更快。在我的情况下,SPSS是aprox。快 7 倍。我对此感到惊讶。

这是我在 SPSS 中使用的代码。

data list free
 /x (f8.3).
begin data
1
end data.

comp n = 1e6.

comp t1 = $time.

loop #rep = 1 to 10.
comp x = 1.
loop #i=1 to n.
comp x = 1/(1+x).
end loop.
end loop.

comp t2 = $time.

comp elipsed = t2 - t1.

form elipsed (f8.2).

exe.
于 2011-01-17T11:49:45.300 回答
0

观看此视频为什么将 SPSS 和 R 结合起来很好...

关联

http://bluemixanalytics.wordpress.com/2014/08/29/7-good-reasons-to-combine-ibm-spss-analytics-and-r/

如果您安装了 R 的兼容副本,则可以从 IBM SPSS Modeler 连接到它,并使用可以部署在 IBM SPSS Modeler 中的自定义 R 算法执行模型构建和模型评分。您还必须安装 IBM SPSS Modeler - Essentials for R 的副本。IBM SPSS Modeler - Essentials for R 为您提供了开始开发用于 IBM SPSS Modeler 的自定义 R 应用程序所需的工具。

于 2014-09-08T23:17:52.367 回答
0

事实是:如果您专业地进行数据分析,这两个软件包都很有用。当然,R / RStudio 比 SPSS 实现了更多的统计方法。但是 SPSS 更易于使用,并且每次单击按钮都会提供更多信息。因此,无论何时在 R 和 SPSS 中实施特定分析,都可以更快地利用。

在现代,CPU 和内存都不是最有价值的资源。研究人员的时间是最宝贵的资源。此外,在我看来,SPSS 中的表格在视觉上更令人愉悦。

总之,R 和 SPSS 相得益彰。

于 2021-01-26T06:46:33.593 回答