回复内容:
全部用过的人来回答一下:
spss对用户的要求是只要会点击菜单就可以了,有编程窗口但是一般没人用,用户多是收到过一些统计训练的,但不需要高深的分析能力,市场调研用的比较多,统计专业大二一般要求掌握
sas内装许多写好的procedure 而且都是经过Fda认证的 有保障的东西 所以死贵好处是权威 坏处是不够灵活 算法更新慢 还有 死贵。语法奇怪 不是那种传统意义上做编程的语言 所以循环啊什么的涉及算法的会不那么方便,也不是matlab这种数学语言 所以数学运算很麻烦 除非你买iml库 但就是因为权威 所以药厂要用(老大fda认证的啊)还有银行的风控也会用 sas还有个好处是大数据处理 内装的proc sql还不错 但说实话我更喜欢直接用mysql
接下来是R 开源 所以更新很快 新的理论很快就可以用上 数据处理尤其方便 data frame list啥的 好想念啊 生物 医药 和学校里的研究喜欢用 我想R的出现解决了许多非IT人需要面对大量编程的困扰,如果我们排序 难道要从bubble算法开始吗?所以一开始被人们说R是matlab的精简版 但是都用过之后才知道R更轻便好学 而且开源啊 免费啊 没那么多跟linux 还是windows的兼容问题啊 R调用C可以极大提高loop的速度,monte carlo的时候简直就是天使!我目睹过同事拿matlab连C那个费劲哟 总之 如果你是要做有自己想法的 也就是需要自己编程的 强推R 对了 我的R是在trading floor学的 所以别说金融不用 现在金融的最前端 R也是很流行的
python最后说 最近三个月刚开始用 一开始简直是pain!不得不说pandas的数据处理便捷程度还是比不上R 但是习惯了就算了 python的好处在于可以做很多事情 不仅仅是统计 所以应用面会更广 其他我不知道 数学建模上 和matlab非常相似的语法 win32 module里和office兼容很棒 既可以做stand-alone又可以做大型开发 等等等
另外 说到金融的应用 很多(比R更多)quant的部门都会用python 我甚至面试过hedge fund就是直接说他们全部用python做的 毕竟如果真要写算法 R会慢很多 而写C++的人毕竟IT居多 那种数学系写出来的算法他们做不来 而数学系的C++又没那么好 所以python就有了用武之地
总之R和Sas是专业性更强的统计软件 统计专业学生必备
spss是更大众化的统计软件 完成一些诸如问卷分析 简单回归之类的小问题 python不是统计软件 而是一种可以用来做各种事情的语言 stata介于spss和sas之间 编程的时候难受的头发都掉了
另外 只有R和python是开源 开源不仅仅是免费 更重要的 它是由许多人在维护开发的 所以对新的要求新的理论可以很快付出实践 但风险就是可能有错(不过错误也会很快改正) 所以你如果要绝对正确 用付费的 至少错了还可以打官司 (顺便提一下revolution R 是R的付费有担保版本)如果你喜欢更flexible的 用开源 (顺便提一下octave,不过我还是不喜欢matlab系列的语法)如果你用很简单的统计甚至不懂统计 用spss
如果你只是统计 或者只是自己一个人干活 用R 如果你是一个公司要做一个大家一起用的平台并且工作内容涉及到统计以外 用python
其实R也可以连sql c c++ 关键是精通一门 然后你会发现其他都是浮云………
其实作为R和python的重度使用者 我更喜欢R 但是……公司的平台全部换成python了………
最后抱歉 好困 手欠想随便回答一下 结果写了这么多 所以有点乱 标点都用空格了……
Python与R不同,Python是一门多功能的语言。数据统计是更多是通过第三方包来实现的。
具体来说,我常用的Python在统计上面的Package有这样一些
1.Numpy与Scipy。这两个包是Python之所以能在数据分析占有一席之地的重要原因。其中Numpy封装了基础的矩阵和向量的操作,而Scipy则在Numpy的基础上提供了更丰富的功能,比如各种统计常用的分布和算法都能迅速的在Scipy中找到。
2.Matplotlib。这个Package主要是用来提供数据可视化的,其功能强大,生成的图标可以达到印刷品质,在各种学术会议里面出镜率不低。依托于Python,可定制性相对于其他的图形库更高。还有一个优点是提供互动化的数据分析,可以动态的缩放图表,用做adhoc analysis非常合适。
3.Scikit Learn。非常好用的Machine Learning库,适合于用于快速定制原型。封装几乎所有的经典算法(神经网络可能是唯一的例外,不过这个有Pylearn2来补充),易用性极高。
4.Python标准库。这里主要是体现了Python处理字符串的优势,由于Python多功能的属性和对于正则表达式的良好支持,用于处理text是在合适不过的了。
基本上就日常使用就涉及这些。符号运算等等也有Sympy和Theano等强力第三方库来支持。总结,Python在你列举这些里面是综合功能最强大的,但是这些功能分散在第三方库里面,没有得到有机的整合,相应的学习成本会较高。
python与R相比速度要快。python可以直接处理上G的数据;R不行,R分析数据时需要先通过数据库把大数据转化为小数据(通过groupby)才能交给R做分析,因此R不可能直接分析行为详单,只能分析统计结果。Python=R+SQL/Hive
R的优势在于有包罗万象的统计函数可以调用,特别是在时间序列分析方面(主要用在金融分析与趋势预测)无论是经典还是前沿的方法都有相应的包直接使用;相比python在这方面贫乏不少。
Python的优势在于其胶水语言的特性,一些底层用C写的算法封装在python包里后性能非常高效(Python的数据挖掘包Orange canve 中的决策树分析50万用户10秒出结果,用R几个小时也出不来,8G内存全部占满)。
总的来说Python是一套比较平衡的语言,各方面都可以,而R是在统计方面比较突出。但是数据分析其实不仅仅是统计,前期的数据收集,数据处理,数据抽样,数据聚类,以及比较复杂的数据挖掘算法,数据建模等等这些任务,只要是100M以上的数据,R都很难胜任,但是Python却基本胜任。
补充一下:
Python有专门的数据分析包Pandas用来完成类似SQL的功能,不过Pandas是会把数据都load到内存里,如果数据太大(2G以上)需要想办法分chunk分析,或者用pytables/pyh5转换为hdf5格式的文件在硬盘上分析。
另外如果是windows环境的话,建议用winpython,上面提到的这些包会自带。当然更丰富的是pythonxy可惜这个只有32位的。
SAS和SPSS是商业数据分析软件,本屌从来没用过。
我比较深入的使用过Python和R,给我的感觉有以下几点:
关于R 优点:各类包非常丰富,尤其是在时间序列分析和一些前沿算法
缺点:速度慢
========================
ps:关于R速度慢是有解决办法的,各位客官请看:替换Rblas为R提速
关于Python 优点:工业级编程语言,使用范围广,功能强大,其数据分析的性能由于有numpy with MKL,性能可以达到单机的极限;对于
经典 算法的实现相对而言比较丰富
缺点:毕竟是一群程序员在写统计软件,多少会有一些覆盖不全面和不直观的地方;前沿算法缺失很厉害;时间序列分析大部分函数都没有成型。
=======================================
一个简单的入门:python计量系列
这里有我用Python做的一个小案例:对sfgg所有博客的数据统计
Python可以提供一整套的数据采集,清洗,分析的工具,然而R仅仅是分析工具
===================================================
写给楼主的忠告,把Python和R都学了吧,Python学起来真的很舒服,用起来也趁手;R嘛,别人都搞不定的时候,就得它上了。
从KDnuggets排名上看,如下12年和13年的情况:
结果不言而喻,链接点这里(结果不言而喻,链接点这里(Languages used for analytics / data mining / data science
)。
但是,如果你具体到某个行业和业务场景的话,情况就不同了。
总的来说,python相比于R\SAS\SPSS 更是一种语言(灵活)——当你提到python,第一感觉就是计算机语言和
科学计算 ,而R\SAS\SPSS则更加统计。
说说我的经验吧,我的工作偏向于数据分析建模,所以PYTHON主要用来处理一些数据,比如做名称关键字的切词统计。SPSS主要用于对处理好的数据作分析,生成报告。
sas在医药统计界还是占有很大的市场份额,但单机版目前只能在windows上使用,需要写代码,也可以按钮操作但远没有写代码来的快速。 sas studio(网络版)可以在mac或者windows上使用,而且有很多已经写好的画图制表功能只需调用即可,操作非常简单。美国很多公共卫生专业都将sas专门列为学习科目。
spss 据我所知在中国普遍流行。做科研的医生或者公共卫生专业人士普遍使用spss处理和分析软件。spss以点击图标操作式为主,消耗时间,所以特别适合不需要处理复杂数据的人士使用。
stata既可以图标操作也可以写代码,不同版本对于数据行数列数有规定,且一次只能操作一张表格,不是很方便。
R作为开源软件有很多好的包可以调用,编程和建模方面较强。 但对于数据的处理,例如改变量名称,数据清理等做的不是特别好,至少没有sas方便。
matlab用于建模比较多。
Python 在前期处理大数据上优势很多,sas处理Gb数据已经很慢了,而python的numpy包可以几秒内批量处理完操作。此外 python的regular expression感觉也比sas的re要好用一点。
综上所述, sas作为医药数据分析界的一把手,从界面设计到编程语言还是很人性化的,推荐使用!如果数据很大推荐使用python做前期cleaning!
自己用过R和python的numpy库,大公司数据岗,现在基本用R的说一下原因。
1.单机部署容易度,R略强,R不需要装eclipse了(开个玩笑)。基本差不多,但相对方便,安装库不用自己从网上下载,直接一个install.packages的命令就行,而python要自己找,有的时候很累。
2.文件读取速度,R更强,不知道前几名说R文件速度慢是怎么得来的。亲自测试1gb数据下R的read.csv和python自己写for的readln,python的用时可以让R把这文件再读几百次以上…我一直很少用python的原因就是,经常碰到GB数据,python读取太慢…再说一个R的文件加速行为,R可以把数据在内存的情况存为Rdata的镜像文件,python我不知道怎么加速保存和读取,存csv肯定慢…
3.性能:我觉得R更强,有人说python的numpy速度快,我实际上还是没看出来…那出一个杀招并行怎么弄?R的并行用doParallel就行,python难道要生成exe再自己写n个批处理,生成结果后再读取继续计算?这当中断档和性能损失就不说了…最主要是编程是断档的,累不…
4.易用性:聚类,bp神经网络,基因遗传等等很多算法都直接调用R的库就行,性能好还不用自己写。唯一略弱的应该是类吧,目前用R6来写感觉有时候配上并行包会有问题。
5.发布上:R唯一的缺陷就是不能发布,只能传递脚本,不像python能生成exe…这个可能是编程语言和统计语言的本质区别吧…
mark,有更新再来,不想大家走弯路,欢迎提问~
详情请看url详情请看url
SAS vs. R (vs. Python)
Python有替代MATLAB做数据处理、分析的势头;
Python和R相比在统计上还是欠缺不少的。R上很多开源统计包和软件Python上暂时找不到好的替代,比如做bioinf的Bioconductor。
SAS一般给药厂人用的比较多,因为基于FDA认证这层关系,其它软件的功能和效用上并不能很好地代替它。
SPSS一般是做普通的社科统计用的,只需要会鼠标点击、设置相应参数即可。
再说性能。Python的性能不错,开发速度快,很容易做出数据量稍大,比如上GB情况下的Demo。这一点R和Matlab是略困难的。注意我的机器是24核96G RAM下谈的,普通笔记本更不能奢望能直接用MATLAB和R挑战GB以上的原始数据。光是Parsing就很慢。
针对超大数据集,开源的Python、R都有自己的解决方案,比如Rhadoop或者GPU包。SAS貌似也有支持,MATLAB略困难。SPSS没有这方面支持。
最后强推一下慢慢崛起的Julia language。麻理精品。