R和SPSS的区别

时间:2010-09-24 12:54:40

标签: r statistics spss data-analysis

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

我不是问哪一个更好,而只是想知道两者之间的工作流程有什么不同(除了SPSS有GUI之外)。无论如何,我将主要使用脚本,所以我想知道其他差异。

12 个答案:

答案 0 :(得分:35)

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

  

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

     

总线很容易使用,你就是这样   需要知道哪辆巴士上车,   在哪里上车,在哪里下车   (而且你需要支付你的票价)。汽车   另一方面需要更多   工作,你需要有一些类型   地图或方向(即使地图是   在你的头脑中,你需要加入气体   你时不时地知道   道路规则(有一些类型   驾驶执照)。最大的优势   汽车是它可以带你一个   一堆公共汽车没有的地方   去吧,一些旅行更快   这需要在两者之间转移   总线。

     

使用像SPSS这样的类比程序   是公共汽车,易于使用   标准的东西,但非常令人沮丧   如果你想做一些事情   尚未预先编程。

     R是一款4轮驱动SUV(不过   环保)骑自行车   在背面,皮划艇在上面,很好   走路和跑步鞋   pasenger座椅和登山   并且在后面使用齿轮装备。

     

R可以带你到任何你想去的地方   如果你花时间学习如何使用   设备,但这是   花费的时间比学习的时间长   巴士站在SPSS。

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

答案 1 :(得分:34)

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

  1. 表的输出 - SPSS具有基本表,通用表,自定义表等,它们都输出到那个漂亮的数据查看器或他们称之为的任何数据。这些可以相对容易地传输到Word文档或Excel表格进行进一步分析/演示。 R中的等效函数包括学习LaTex或使用odfWeaveLyx或类似的东西。
  2. 数据标签 - > SPSS在变量标签和值标签方面做得非常好。我还没有为R完成同样的任务找到一个强大的解决方案。
  3. 你提到你将编写大部分工作的脚本,而且我个人认为SPSS的脚本语法非常可怕,以至于我尽可能不再使用SPSS。 R语法似乎更符合逻辑,并且更紧密地遵循编程标准。如果遇到麻烦(例如SO),有一个非常活跃的社区可以依赖。我没有找到一个好的SPSS社区来询问我何时遇到问题。
  4. 其他人已经指出了程序的成本和功能方面的一些重大差异。如果你必须与他人合作,他们对SPSS或R的舒适程度应该起到一个作用,因为你不想成为你团队中唯一能够处理或编辑你将来编写的脚本的人。

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

答案 2 :(得分:23)

SPSS的初始工作流程涉及证明编写大量脂肪支票的合理性。 R是免费提供的。

R有一种用于'脚本'的语言,但是没有想到它,R实际上是一种编程语言,内置了很好的数据操作,统计和图形功能.SPSS有'语法','脚本'并且也可以用Python编写脚本。

另一个重要因素是SPSS将其数据压缩到一个网络安全表结构中。处理其他数据结构可能非常困难,但对于R来说很自然。我不知道从哪里开始处理SPSS中的网络图类型数据,但是有一个包为R做它。

使用R,您可以使用Sweave将工作流程与报告集成在一起 - 您可以编写包含R代码的嵌入位的文档,生成图表或表格,通过系统运行文件,然后以PDF格式显示报告。非常适合您想要每周报告,或者您做了大量工作,然后老板会为您提供更新的数据集。重新运行,读完,完成。

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

答案 3 :(得分:8)

嗯,你是一个体面的程序员吗?如果你是,那么学习R是值得的。你可以使用SPSS在操作和统计建模方面对你的数据做更多的事情,你的图表也可能更好。另一方面,如果您之前从未真正编程过,或者发现花费几个月成为程序员恐吓的想法,您可能会从SPSS中获得更多价值。你可以用R做的东西水平而不是作为一种成熟的编程语言潜入其力量可能并不能证明这种努力是正确的。

还有另一种选择 - 合作。你认识一个你可以在你的项目上工作的人(你不是说它是学术还是行业,但无论哪种方式......),谁知道R好?

答案 4 :(得分:6)

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

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

答案 5 :(得分:4)

我在公司工作,可以说以下内容:

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

那就是说,我几乎在其他任何意义上都认为R更好:

  • R更快(尽管有时候有争议)
  • 如前所述,SPSS中的语法很糟糕(我不能强调这一点)。另一方面,R学习起来很痛苦,但是网上有大量的资源,最后由于你可以做的不同,它会付出更多的代价。
  • 再一次,就像其他人所说的那样,天空是R和Tons的限制,包装,资源以及更重要的是:不依赖于随心所欲。在我的组织中,我们有一些非常高级的功能,可以完成很多工作。困难的部分是创建它们一次,但随后他们执行复杂的任务,SPSS将在一个永无止境的画布网络中纠缠。对于像循环这样的东西尤其如此。

它经常被忽视,但R还有很多团队之间合作的功能(github与RStudio集成,以及使用devtools轻松打包)。

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

答案 6 :(得分:3)

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

SPSS比R 慢得多。 (还有很多,我的意思很多)

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

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

作为一个无关的旁注:在我看来,在最近关于R速度的讨论中,这一点在某种程度上被忽略了(即与SPSS的比较)。此外,我很惊讶这个讨论突然出现了一段时间,然后再次默默消失。

答案 7 :(得分:2)

上面有一些很好的回应,但我会尝试提供2美分。我的部门完全依靠SPSS来完成我们的工作,但最近几个月,我一直在努力学习R;在某种程度上,由于上​​面列出的一些原因(速度,庞大的数据结构,可用的包等)

那就是说,这里有一些我在路上采取的措施:

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

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

  3. SPSS和R可以相互接口,虽然看起来它是单向的(只有在SPSS中使用R时,而不是相反)。也就是说,除了我想使用ggplot2或其他一些高级数据管理技术之外,我发现它没什么用处。 (我鄙视SPSS宏)。

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

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

  6. 简而言之,当我无法在R中快速解决时,我发现自己使用SPSS,但我真诚地希望在不久的将来能够远离SPSS并完全使用R。

答案 8 :(得分:2)

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

答案 9 :(得分:1)

@Henrik,我在SPSS上完成了你提到的同样的任务(C++ and 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.

答案 10 :(得分:0)

看看这个视频为什么结合SPSS和R ...

Link

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应用程序所需的工具。

答案 11 :(得分:0)

事实是:如果您专业地进行数据分析,这两个软件包都很有用。当然,R / RStudio has more statistical methods implemented than SPSS。但是 SPSS 更易于使用,并且每次单击按钮都会提供更多信息。因此,只要在 R 和 SPSS 中实施特定分析,就可以更快地利用。

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

总而言之,R 和 SPSS 相得益彰。