工欲善其事,必先利其器。说起来道理大家都懂,只是到了要学习的时候就开始各种退缩。殊不知一款好的数据分析工具可以让你事半功倍,瞬间提高学习工作效率。
虽然数据分析的工具千万种,综合起来万变不离其宗。无非是数据获取、数据存储、数据管理、数据计算、数据分析、数据展示等几个方面。而SAS、R、SPSS、python、excel是被提到频率最高的数据分析工具。那么,这些工具本身到底有什么特点呢?
1、SQL对于很多数据分析师,取数是基本功。可以翻一下很多数据分析岗位的招聘启事,不管实际需不需要,都会把熟练掌握SQL这一条写上来。当然,我们这里要学习的SQL,并不是这么复杂,要学习的只是取数、中高级查询、简单数据清洗等。
2、Excel这个软件大多数人应该都是比较熟悉的。
Excel满足了绝大部分办公制表的需求,同时也拥有相当优秀的数据处理能力。其自带的ToolPak(分析工具库)和Solver(规划求解加载项)可以完成基本描述统计、方差分析、统计检验、傅立叶分析、线性回归分析和线性规划求解工作。这些功能在Excel中没有默认打开,需要在Excel选项中手动开启。
除此以外,Excel也提供较为常用的统计图形绘制功能。这些功能涵盖了基本的统计分析手段,已经能够满足绝大部分数据分析工作的需求,同时也提供相当友好的操作界面,对于具备基本统计学理论的用户来说是十分容易上手的,但处理的数据量较小。
3、SPSS原名Statistical Package for the Social Sciences(社会科学统计软件包),现在已被IBM收购,改名后仍然是叫SPSS,不过全称变更为Statistical Product and Service Solutions(统计产品与服务解决方案)。
SPSS是一个专业的统计分析软件。除了基本的统计分析功能之外,还提供非线性回归、聚类分析(Clustering)、主成份分析(PCA)和基本的时序分析。
SPSS在某种程度上可以进行简单的数据挖掘工作,比如K-Means聚类,不过数据挖掘的主要工作一般都是使用其自家的Clementine(现已改名为SPSS Modeler)完成。需要提一点的是SPSS Modeler的建模功能非常强大且智能化,同时还可以通过其自身的CLEF(Clementine Extension Framework)框架和Java开发新的建模插件,扩展性相当好,是一个不错的商业BI方案。
4、SAS是全球最大的软件公司之一,是由美国NORTH CAROLINA州立大学1966年开发的统计分析软件。SAS把数据存取、管理、分析和展现有机地融为一体。
主要优点如下:
1功能强大,统计方法齐,全,新
SAS提供了从基本统计数的计算到各种试验设计的方差分析,相关回归分析以及多变数分析的多种统计分析过程,几乎囊括了所有最新分析方法,其分析技术先进,可靠。分析方法的实现通过过程调用完成。许多过程同时提供了多种算法和选项。
2使用简便,操作灵活
SAS以一个通用的数据(DATA)步产生数据集,尔后以不同的过程调用完成各种数据分析。
- 其编程语句简洁,短小,通常只需很小的几句语句即可完成一些复杂的运算,得到满意的结果。
- 结果输出以简明的英文给出提示,统计术语规范易懂,具有初步英语和统计基础即可。
- 使用者只要告诉SAS“做什么”,而不必告诉其“怎么做”。
同时SAS的设计,使得任何SAS能够“猜”出的东西用户都不必告诉它(即无需设定),并且能自动修正一些小的错误(例如将DATA语句的DATA拼写成DATE,SAS将假设为DATA继续运行,仅在LOG中给出注释说明)。对运行时的错误它尽可能地给出错误原因及改正方法。因而SAS将统计的科学,严谨和准确与便于使用者有机地结合起来,极大地方便了使用者。
3提供联机帮助功能
使用过程中按下功能键F1,可随时获得帮助信息,得到简明的操作指导。
5、R是一个开源的分析软件,也是分析能力不亚于SPSS和Matlab等商业软件的轻量级(仅指其占用空间极小,功能却是重量级的)分析工具。R支持Windows、Linux和Mac OS系统,对于用户来说非常方便,R和Matlab都是通过命令行来进行操作,这一点和适合有编程背景或喜好的数据分析人员。R的官方包中已经自带有相当丰富的分析命令和函数以及主要的作图工具。但R最大的优点在于其超强的扩展性,可以通过下载扩展包来扩展其分析功能,并且这些扩展包也是开源的。R社区拥有一群非常热心的贡献者,这使得R的分析功能一直都很丰富。
6、Python是一种面向对象、解释型计算机程序设计语言。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
主要优点如下:
简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。
易学:Python极其容易上手,因为Python有极其简单的说明文档 。
速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。
免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。
高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。
解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。
在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。
面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。
可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。
可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。
丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。
但工具只是工具,工具之后更重要的是对统计的应用,对业务的理解。