一、统计软件简介
SPSS(Statistical Product and Service Solutions),"统计产品与服务解决方案"软件。最初软件全称为"社会科学统计软件包"(SolutionsStatistical Package for the Social Sciences),但是随着SPSS产品服务领域的扩大和服务深度的增加,SPSS公司已于2000年正式将英文全称更改为"统计产品与服务解决方案",标志着SPSS的战略方向正在做出重大调整。为IBM公司推出的一系列用于统计学分析运算、数据挖掘、预测分析和决策支持任务的软件产品及相关服务的总称SPSS,有Windows和Mac OS X等版本。
1984年SPSS总部首先推出了世界上第一个统计分析软件微机版本SPSS/PC+,开创了SPSS微机系列产品的开发方向,极大地扩充了它的应用范围,并使其能很快地应用于自然科学、技术科学、社会科学的各个领域。世界上许多有影响的报刊杂志纷纷就SPSS的自动统计绘图、数据的深入分析、使用方便、功能齐全等方面给予了高度的评价。
SPSS是世界上最早采用图形菜单驱动界面的统计软件,它最突出的特点就是操作界面极为友好,输出结果美观漂亮。它将几乎所有的功能都以统一、规范的界面展现出来,使用Windows的窗口方式示各种管理和分析数据方法的功能,对话框展示出各种功能选择项。用户只要掌握一定的Windows操作技能,精通统计分析原理,就可以使用该软件为特定的科研工作服务。SPSS采用类似EXCEL表格的方式输入与管理数据,数据接口较为通用,能方便的从其他数据库中读入数据。其统计过程包括了常用的、较为成熟的统计过程,完全可以满足非统计专业人士的工作需要。输出结果十分美观,存储时则是专用的SPO格式,可以转存为html格式和文本格式。对于熟悉老版本编程运行方式的用户,SPSS还特别设计了语法生成窗口,用户只需在菜单中选好各个选项,然后按"粘贴"按钮就可以自动生成标准的SPSS程序。极大的方便了中、高级用户。
SPSS图表制作SPSS for Windows是一个组合式软件包,它集数据录入、整理、分析功能于一身。用户可以根据实际需要和计算机的功能选择模块,以降低对系统硬盘容量的要求,有利于该软件的推广应用。SPSS的基本功能包括数据管理、统计分析、图表分析、输出管理等等。SPSS统计分析过程包括描述性统计、均值比较、一般线性模型、相关分析、回归分析、对数线性模型、聚类分析、数据简化、生存分析、时间序列分析、多重响应等几大类,每类中又分好几个统计过程,比如回归分析中又分线性回归分析、曲线估计、Logistic回归、Probit回归、加权估计、两阶段最小二乘法、非线性回归等多个统计过程,而且每个过程中又允许用户选择不同的方法及参数。SPSS也有专门的绘图系统,可以根据数据绘制各种图形。
SPSS for Windows的分析结果清晰、直观、易学易用,而且可以直接读取EXCEL及DBF数据文件,现已推广到多种各种操作系统的计算机上,它和SAS、BMDP并称为国际上最有影响的三大统计软件。在国际学术界有条不成文的规定,即在国际学术交流中,凡是用SPSS软件完成的计算和统计分析,可以不必说明算法,由此可见其影响之大和信誉之高。最新的21.0版采用DAA(Distributed Analysis Architecture,分布式分析系统),全面适应互联网,支持动态收集、分析数据和HTML格式报告。SPSS操作界面
SPSS输出结果虽然漂亮,但是很难与一般办公软件如Office或是WPS2000直接兼容,如不能用Excel等常用表格处理软件直接打开,只能采用拷贝、粘贴的方式加以交互。在撰写调查报告时往往要用电子表格软件及专业制图软件来重新绘制相关图表,这已经遭到诸多统计学人士的批评;而且SPSS作为三大综合性统计软件之一,其统计分析功能与另外两个软件即SAS和BMDP相比仍有一定欠缺。
虽然如此,SPSS for Windows由于其操作简单,已经在我国的社会科学、自然科学的各个领域发挥了巨大作用。该软件还可以应用于经济学、数学、统计学、物流管理、生物学、心理学、地理学、医疗卫生、体育、农业、林业、商业等各个领域。
R语言
R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX,Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R还有以下特点:
1.R是自由软件。这意味着它是完全免费,开放源代码的。可以在它的网站及其镜像中下载任何有关的安装程序、源代码、程序包及其源代码、文档资料。标准的安装文件身自身就带有许多模块和内嵌统计函数,安装好后可以直接实现许多常用的统计功能。[2]
2.R是一种可编程的语言。作为一个开放的统计编程环境,语法通俗易懂,很容易学会和掌握语言的语法。而且学会之后,我们可以编制自己的函数来扩展现有的语言。这也就是为什么它的更新速度比一般统计软件,如,SPSS,SAS等快得多。大多数最新的统计方法和技术都可以在R中直接得到。[2]
3. 所有R的函数和数据集是保存在程序包里面的。只有当一个包被载入时,它的内容才可以被访问。一些常用、基本的程序包已经被收入了标准安装文件中,随着新的统计分析方法的出现,标准安装文件中所包含的程序包也随着版本的更新而不断变化。在另外版安装文件中,已经包含的程序包有:base一R的基础模块、mle一极大似然估计模块、ts一时间序列分析模块、mva一多元统计分析模块、survival一生存分析模块等等.[2]
4.R具有很强的互动性。除了图形输出是在另外的窗口处,它的输入输出窗口都是在同一个窗口进行的,输入语法中如果出现错误会马上在窗口口中得到提示,对以前输入过的命令有记忆功能,可以随时再现、编辑修改以满足用户的需要。输出的图形可以直接保存为JPG,BMP,PNG等图片格式,还可以直接保存为PDF文件。另外,和其他编程语言和数据库之间有很好的接口。[2]
5.如果加入R的帮助邮件列表一,每天都可能会收到几十份关于R的邮件资讯。可以和全球一流的统计计算方面的专家讨论各种问题,可以说是全世界最大、最前沿的统计学家思维的聚集地.[2]
R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。 R的语法是来自Scheme。R的使用与S-PLUS有很多类似之处,这两种语言有一定的兼容性。S-PLUS的使用手册,只要稍加修改就可作为R的使用手册。所以有人说:R,是S-PLUS的一个“克隆”。
但是请不要忘了:R是免费的(R is free)。R语言源代码托管在github,具体地址可以看参考资料。[3]
。
R语言的下载可以通过CRAN的镜像来查找。
R语言有域名为.cn的下载地址,有六个,其中两个由Datagurn,由
中国科学技术大学提供的。R语言Windows版,其中由两个下载地点是Datagurn和
USTC提供的。
二、数据操作
Stata 是一套提供其使用者数据分析、数据管理以及绘制专业图表的完整及整合性统计软件。它提供许许多多功能,包含线性混合模型、均衡重复反复及多项式普罗比模式。用Stata绘制的统计图形相当精美。
Stata的统计功能很强,除了传统的统计分析方法外,还收集了近20年发展起来的新方法,如Cox比例风险回归,指数与Weibull回归,多类结果与有序结果的logistic回归,Poisson回归,负二项回归及广义负二项回归,
随机效应模型等。具体说, Stata具有如下统计分析能力:
数值变量资料的一般分析:参数估计,t检验,单因素和多因素的方差分析,协方差分析,交互效应模型,平衡和非平衡设计,嵌套设计,随机效应,多个均数的两两比较,缺项数据的处理,方差齐性检验,正态性检验,变量变换等。
分类资料的一般分析:参数估计,列联表分析 ( 列联系数,确切概率 ) ,流行病学表格分析等。
等级资料的一般分析:秩变换,秩和检验,秩相关等
相关与回归分析:简单相关,偏相关,典型相关,以及多达数十种的回归分析方法,如多元
线性回归,逐步回归,加权回归,稳键回归,二阶段回归,百分位数 ( 中位数 ) 回归,残差分析、强影响点分析,曲线拟合,随机效应的线性回归模型等。
其他方法:质量控制,整群抽样的设计效率,诊断试验评价, kappa等。
资料转换、分组处理、附加档案、 ODBC 、行 - 列转换、数据标记、
字符串函数…等
基本统计(Basic statistics)
直交表、相关性、 t- 检定、变异数相等性检定、比例检定、信赖区间…等
线性模式(Linear models)
稳健Huber/White/sandwich变异估计 , 三阶最小平方法、类非相关回归、齐次多项式回归、GLS
广义型线性模式(Generalized linear models)
十连结函数、使用者-定义连结、 ML及IRLS估计、九变异数估计、七残差…等
二元、计数及有限应变量(Binary, count and limited dependent variables)
罗吉斯特、probit、卜松回归、tobit、truncated回归、条件罗吉斯特、多项式逻辑、巢状逻辑、负二项、 zero-inflated模型、Heckman 选择模式、边际影响
Panel数据/交叉 - 组合时间序列(Panel data/cross-sectional time-series)
随机及固定影响之回归、GEE、随机及固定-影响之卜松及负二项分配、随机 - 影响、工具变量回归、AR(1) 干扰回归
无母数方法(Nonparametric methods)
多变量方法(Multivariate methods)
因素分析、多变量回归、 anonical 相关系数
模型检定及事后估计量支持分析(Model testing and post-estimation support)
Wald检定、LR检定、线性及非线性组合、非线性限制检定、边际影响、修正平均数Hausman检定
群集分析(Cluster analysis)
加权平均、质量中心及中位数联结、kmeans、kmedians、dendrograms、停止规则、使用者扩充
图形(Graphics)
直线图、散布图、条状图、圆饼图、 hi-lo 图、回归诊断图…
调查方法(Survey methods)
抽样权重、丛集抽样、分层、线性变异数估计量、拟 - 概似最大估计量、回归、工具变量…
生存分析(Survival analysis)
Kaplan–Meier、Nelson–Aalen、Cox回归(弱性)、参数模式(弱性)、危险比例测试、时间共变项、左-右检查、韦柏分配、指数分配…
流行病学工具(Tools for epidemiologists)
比例标准化、病例控制、已配适病例控制、Mantel – Haenszel,药理学、ROC分析、ICD-9-CM
时间序列(Time series)
ARIMA、ARCH/GARCH、VAR、Newey–West、correlograms、periodograms、白色 - 噪音测试、最小整数根检定、时间序列运算、平滑化
最大概似法(Maximum likelihood)
转换及常态检定(Transforms and normality tests)
Box–Cox、次方转换Shapiro–Wilk、Shapiro–Francia检定
其它统计方法(Other statistical methods)
样本数量及次方、非
线性回归、逐步式回归 、统计及数学函数
包含样本范例(Sample session)
再抽样及模拟方法(Resampling and simulation methods)
bootstrapping、jackknife、
蒙地卡罗模拟、排列检定
网络功能
安装新指令、网络升级、网站档案分享、Stata 最新消息
PYTHON
Python是纯粹的
自由软件,
源代码和
解释器CPython遵循
GPL(
GNU General Public License)协议[2]
。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。
Python具有丰富和强大的库。它常被昵称为
胶水语言,能够把用其他语言制作的各种模块(尤其是
C/
C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中[3]
有特别要求的部分,用更合适的语言改写,比如
3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供
跨平台的实现。
7月20日,IEEE发布2017年编程语言排行榜:Python高居首位[4]
。
Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确的没有或者很少有歧义的语法。由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性,并且能够支撑大规模的软件开发。这些准则被称为Python格言。在Python
解释器内运行import this可以获得完整的列表。
Python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。所以很多人认为Python很慢。不过,根据二八定律,大多数程序对速度要求不高。在某些对运行速度要求很高的情况,Python设计师倾向于使用
JIT技术,或者用使用C/C++语言改写这部分程序。可用的JIT技术是
PyPy。
Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。相对于
Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了
Haskell和Standard ML中久经考验的函数式程序设计工具。
虽然Python可能被粗略地分类为“
脚本语言”(script language),但实际上一些大规模软件开发计划例如
Zope、
Mnet及BitTorrent,Google也广泛地使用它。Python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shellscript、
VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。
Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的
API和工具,以便
程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把Python作为一种“胶水语言”(glue language)使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。《
Python技术手册》的作者
马特利(Alex Martelli)说:“这很难讲,不过,2004 年,Python 已在
Google 内部使用,Google 召募许多 Python 高手,但在这之前就已决定使用Python,他们的目的是 Python where we can, C++ where we must,在操控硬件的场合使用 C++,在快速开发时候使用 Python。”