做数据阐明必需学R的4个来由
当前位置:以往代写 > 其他教程 >做数据阐明必需学R的4个来由
2019-06-14

做数据阐明必需学R的4个来由

做数据阐明必需学R的4个来由

R 是一种机动的编程语言,专为促进摸索性数据阐明、经典统计学测试和高级图形学而设计。R 拥有富厚的、仍在不绝扩大的数据包库,处于统计学、数据阐明和数据挖掘成长的前沿。R 已证明本身是不绝生长的大数据规模的一个有用东西,而且已集成到多个商用包中,好比 IBM SPSS® 和 InfoSphere®,以及 Mathematica。
本文提供了一位统计学家Catherine Dalzell对 R 的代价的观点。
为什么选择 R?R 可以执行统计。您可以将它视为 SAS Analytics 等阐明系统的竞争敌手,更不消提 StatSoft STATISTICA 或 Minitab 等更简朴的包。当局、企业和制药行业中很多专业统计学家和要领学家都将其全部职业生涯都投入到了 IBM SPSS 或 SAS 中,但却没有编写过一行 R 代码。所以从某种水平上讲,进修和利用 R 的抉择事关企业文化和您但愿如何事情。我在统计咨询实践中利用了多种东西,但我的大部门事情都是在 R 中完成的。以下这些示例给出了我利用 R 的原因:
R 是一种强大的剧本语言。我最近被要求阐明一个范畴研究的功效。研究人员查抄了 1,600 篇研究论文,并依据多个条件对它们的内容举办编码,事实上,这些条件是大量具有多个选项和分叉的条件。它们的数据(曾经扁平化到一个 Microsoft® Excel® 电子表格上)包括 8,000 多列,个中大部门都是空的。研究人员但愿统计差异种别和标题下的总数。R 是一种强大的剧本语言,可以或许会见雷同 Perl 的正则表达式来处理惩罚文本。缭乱的数据需要一种编程语言资源,并且尽量 SAS 和 SPSS 提供了剧本语言来执行下拉菜单意外的任务,但 R 是作为一种编程语言编写的,所以是一种更适合该用途的东西。
R 走在时代的前沿。统计学中的很多新成长最初都是以 R 包的形式呈现的,然后才被引入到贸易平台中。我最近得到了一项对患者回想的医疗研究的数据。对付每位患者,我们拥有大夫发起的治疗项目数量,以及患者实际记着的项目数量。自然模子是贝塔—二项漫衍。这从上世纪 50 年月就已知道,但将该模子与感乐趣的变量相关联的估算进程是最近才呈现的。像这样的数据凡是由广义预计方程式 (general estimating equations, GEE) 处理惩罚,但 GEE 要领是渐进的,并且假设抽样范畴很广。我想要一种具有贝塔—二项 R 的广义线性模子。一个的 R 包估算了这一模子:Ben Bolker 编写的 betabinom。而 SPSS 没有。
集成文档宣布。 R 完美地集成了 LaTeX 文档宣布系统,这意味着来自 R 的统计输出和图形可嵌入到可供宣布的文档中。这不是所有人都用得上,但假如您但愿便携异步关于数据阐明的书籍,可能只是不但愿将功效复制到文字处理惩罚文档,最短且最优雅的路径就是通过 R 和 LaTeX。
没有本钱。作为一个小型企业的所有者,我很喜欢 R 的免费特定。纵然对付更大的企业,知道您可以或许姑且调入某小我私家并当即让他们坐在事情站旁利用一流的阐明软件,也很不错。无需担心预算。
R 是什么,它有何用途?作为一种编程语言,R 与很多其他语言都很雷同。任何编写过代码的人城市在 R 中找到许多熟悉的对象。R 的非凡性在于它支持的统计哲学。一种统计学革命:S 和摸索性数据阐明
140 字符的表明:R 是 S 的一种开源实现,是一种用于数据阐明和图形的编程情况。
计较机老是擅长计较 — 在您编写并调试了一个措施来执行您想要的算法后。但在上世纪 60 和 70 年月,计较机并不擅长信息的显示,尤其是图形。这些技能限制在团结统计理论中的趋势,意味着统计实践和统计学家的培训专注于模子构建和假设测试。一小我私家假定这样一个世界,研究人员在个中设定假设(经常是农业方面的),构建经心设计的尝试(在一个农业站),填入模子,然后运行测试。一个基于电子表格、菜单驱动的措施(好比 SPSS 反应了这一要领)。事实上,SPSS 和 SAS Analytics 的第一个版本包括一些子例程,这些子例程可从一个(Fortran 或其他)措施挪用来填入和测试一个模子东西箱中的一个模子。
在这个类型化和渗透理论的框架中,John Tukey 放入了摸索性数据阐明 (EDA) 的观念,这就像一个鹅卵石击中了玻璃屋顶。如今,很难想像没有利用箱线图(box plot) 来查抄偏度和异常值就开始阐明一个数据集的景象,可能没有针对一个分位点图查抄某个线性模子残差的常态的景象。这些想法由 Tukey 提出,此刻任何先容性的统计课程城市先容它们。但并不老是如此。
与其说 EDA 是一种理论,不如说它是一种要领。该要领离不开以下履历法则:只要有大概,就应利用图形来识别感乐趣的成果。阐明是递增的。实验以下这种模子;按照功效来填充另一个模子。利用图形查抄模子假设。标志存在异常值。利用健全的要领来防备违背漫衍假设。Tukey 的要领激发了一个新的图形要领和稳健预计的成长海潮。它还开导了一个更适合摸索性要领的新软件框架的开拓。
S 语言是在贝尔尝试室由 John Chambers 和同事开拓的,被用作一个统计阐明平台,尤其是 Tukey 排序。第一个版本(供贝尔尝试室内部利用)于 1976 年开拓,但直到 1988 年,它才形成了雷同其当前形式的版本。在这时,该语言也可供贝尔尝试室外部的用户利用。该语言的每个方面都切合数据阐明的 “新模子”:
S 是一种在编程情况操纵的表明语言。S 语法与 C 的语法很相似,但省去了坚苦的部门。S 认真执行内存打点和变量声明,举例而言,这样用户就无需编写或调试这些方面了。更低的编程开销使得用户可以在同一个数据集上快速执行大量阐明。
从一开始,S 就思量到了高级图形的建设,您可向任何打开的图形窗口添加成果。您可很容易地突出乐趣点,查询它们的值,使散点图变得更滑腻,等等。
面向工具性是 1992 年添加到 S 中的。在一个编程语言中,工具结构数据和函数来满意用户的直觉。人类的思维始终是面向工具的,统计推理尤其如此。统计学家处理惩罚频率表、时间序列、矩阵、具有各类数据范例的电子表格、模子,等等。在每种环境下,原始数据都拥有属性和期望值:举例而言,一个时间序列包括调查值和时间点。并且对付每种数据范例,都应获得尺度统计数据僻静面图。对付时间序列,我大概绘制一个时间序列平面图和一个相关图;对付拟合模子,我大概绘制拟合值和残差。S 支持为所有这些观念建设工具,您可以按照需要建设更多的工具类。工具使得从问题的观念化到其代码的实现变得很是简朴。
一种具有立场的语言:S、S-Plus 和假设测试最初的 S 语言很是重视 Tukey 的 EDA,已到达只能 在 S 中执行 EDA 而不能执行其他任何操纵的水平。这是一种具有立场的语言。举例而言,尽量 S 带来了一些有用的内部成果,但它缺乏您但愿统计软件拥有的一些最明明的成果。没有函数来执行双抽样测试或任何范例的真实假设测试。但 Tukey 认为,假设测试有时正符合。
1988 年,位于西雅图的 Statistical Science 得到 S 的授权,并将该语言的一个加强版本(称为 S-Plus)移植到 DOS 以及今后的 Windows® 中。实际认识到客户想要什么后,Statistical Science 向 S-Plus 添加了经典统计学成果。添加执行方差阐明 (ANOVA)、测试和其他模子的成果。对 S 的面向工具性而言,任何这类拟合模子的功效自己都是一个 S 工具。符合的函数挪用城市提供假设测试的拟合值、残差和 p-值。模子工具甚至可以包括阐明的中间计较步调,好比一个设计矩阵的 QR 解析(个中 Q 是对角线,R 是右上角)。
有一个 R 包来完成该任务!尚有一个开源社区约莫在与宣布 S-Plus 沟通的时间,新西兰奥克兰大学的 Ross Ihaka 和 Robert Gentleman 抉择实验编写一个表明器。他们选择了 S 语言作为其模子。该项目逐渐成形并得到了支持。它们将其定名为 R。
R 是 S 的一种实现,包括 S-Plus 开拓的更多模子。有时候,发挥浸染的是同一些人。R 是 GNU 许可下的一个开源项目。在此基本上,R 不绝成长,主要通过添加包。R 包 是一个包括数据集、R 函数、文档和 C 或 Fortran 动态加载项的荟萃,可以一起安装并从 R 会话会见。R 包向 R 添加新成果,通过这些包,研究人员可在同行之间轻松地共享计较要领。一些包的范畴有限,另一些包代表着整个统计学规模,尚有一些包括的技能成长。事实上,统计学中的很多成长最初都是以 R 包形式呈现的,然后才应用到商用软件中。
在撰写本文时,R 下载站点 CRAN 上已有 4,701 个 R 包。个中,单单那一天就添加了 6 个 R 。万事万物都有一个对应的 R 包,至少看起来是这样。
我在利用 R 时会产生什么?备注:本文不是一部 R 教程。下面的示例仅试图让您相识 R 会话看起来是什么样的。
R 二进制文件可用于 Windows、Mac OS X 和多个 Linux® 刊行版。源代码也可供人们自行编译。
在 Windows® 中,安装措施将 R 添加到开始菜单中。要在 Linux 中启动 R,可打开一个终端窗口并在提示符下键入 R。您应看到雷同图 1 的画面。做数据阐发必须学R的4个理由图 1. R 事情区在提示符下键入一个呼吁,R 就会响应。
此时,在真实的情况中,您大概会从一个外部数据文件将数据读入 R 工具中。R 可从各类差异名目标文件读取数据,但对付本示例,我利用的是来自 MASS 包的 michelson 数据。这个包附带了 Venables and Ripley 的符号性文本 Modern Applied Statistics with S-Plus。michelson 包括来自丈量光速的风行的 Michelson and Morley 尝试的功效。
清单 1 中提供的呼吁可以加载 MASS 包,获取并查察 michelson 数据。图 2 显示了这些呼吁和来自 R 的响应。每一行包括一个 R 函数,它的参数放在方括号 ([]) 内。
清单 1. 启动一个 R 会话    2+2             # R can be a calculator. R responds, correctly, with 4.    library(“MASS”) # Loads into memory the functions and data sets from                     # package MASS, that accompanies Modern Applied Statistics in S
    data(michelson) # Copies the michelson data set into the workspace.
    ls()            # Lists the contents of the workspace. The michelson data is there.
    head(michelson) # Displays the first few lines of this data set.                    # Column Speed contains Michelson and Morleys estimates of the                     # speed of light, less 299,000, in km/s.                    # Michelson and Morley ran five experiments with 20 runs each.                    # The data set contains indicator variables for experiment and run.    help(michelson) # Calls a help screen, which describes the data set.
图 2. 会话启动和 R 的响应做数据阐发必须学R的4个理由此刻让我们看看该数据(拜见 清单 2)。输出如 图 3 中所示。清单 2. R 中的一个箱线图    # Basic boxplot
    with(michelson, boxplot(Speed ~ Expt)) 
    # I can add colour and labels. I can also save the results to an object.
    michelson.bp = with(michelson, boxplot(Speed ~ Expt, xlab=”Experiment”, las=1,                     ylab=”Speed of Light – 299,000 m/s”,                     main=”Michelson-Morley Experiments”,                    col=”slateblue1″))                      # The current estimate of the speed of light, on this scale, is 734.5    # Add a horizontal line to highlight this value.
    abline(h=734.5, lwd=2,col=”purple”)  #Add modern speed of light
Michelson and Morley 好像有打算地高估了光速。各个尝试之间好像也存在必然的不匀称性。图 3. 绘制一个箱线图做数据阐发必须学R的4个理由在对阐明感想满足后,我可以将所有呼吁生存到一个 R 函数中。拜见清单 3。
清单 3. R 中的一个简朴函数    MyExample = function(){        library(MASS)        data(michelson)        michelson.bw = with(michelson, boxplot(Speed ~ Expt, xlab=”Experiment”, las=1,         ylab=”Speed of Light – 299,000 m/s”, main=”Michelsen-Morley Experiments”,             col=”slateblue1″))        abline(h=734.5, lwd=2,col=”purple”)
    }
这个简朴示例演示了 R 的多个重要成果:生存功效—boxplot() 函数返回一些有用的统计数据和一个图表,您可以通过雷同 michelson.bp = … 的负值语句将这些功效生存到一个 R 工具中,并在需要时提取它们。任何赋值语句的功效都可在 R 会话的整个进程中得到,而且可以作为进一步阐明的主题。boxplot 函数返回一个用于绘制箱线图的统计数据(中位数、四分位等)矩阵、每个箱线图中的项数,以及异常值(在 图 3 中的图表上显示为开口圆)。请拜见图 4。图 4. 来自 boxplot 函数的统计数据做数据阐发必须学R的4个理由公式语言— R(和 S)有一种紧凑的语言来表达统计模子。参数中的代码 Speed ~ Expt 汇报函数在每个 Expt (尝试数字)级别上绘制 Speed 的箱线图。假如但愿执行方差阐明来测试各次尝试中的速度是否存在显著差别,那么可以利用沟通的公式:lm(Speed ~ Expt)。公式语言可表达富厚多样的统计模子,包罗交错和嵌套效应,以及牢靠和随机因素。用户界说的 R 函数— 这是一种编程语言。
R 已进入 21 世纪Tukey 的摸索性数据阐明要领已成为通例课程。我们在传授这种要领,而统计学家也在利用该要领。R 支持这种要领,这表明白它为什么仍然如此风行的原因。面向工具性还辅佐 R 保持,因为新的数据来历需要新的数据布局来执行阐明。InfoSphere® Streams 此刻支持对与 John Chambers 所设想的差异的数据执行 R 阐明。
R 与 InfoSphere StreamsInfoSphere Streams 是一个计较平台和集成开拓情况,用于阐明从数千个来历得到的高速数据。这些数据流的内容凡是长短布局化或半布局化的。阐明的目标是检测数据中不绝变革的模式,基于快速变革的事件来指导决定。SPL(用于 InfoSphere Streams 的编程语言)通过一种典型来组织数据,反应了数据的动态性以及对快速阐明和响应的需求。
我们已经间隔用于经典统计阐明的电子表格和通例平面文件很远,但 R 可以或许应付自如。从 3.1 版开始,SPL 应用措施可将数据通报给 R,从而操作 R 复杂的包库。InfoSphere Streams 对 R 的支持方法是,建设符合的 R 工具来吸收 SPL 元组(SPL 中的根基数据布局)中包括的信息。InfoSphere Streams 数据因此可通报给 R 供进一步阐明,并将功效传回到 SPL。R 需要主流硬件吗?
我在一台运行 Crunchbang Linux 的宏碁上网本上运行了这个示例。R 不需要粗笨的呆板来执行中小局限的阐明。20 年来,人们一直认为 R 之所以迟钝是因为它是一种表明性语言,并且它可以阐明的数据巨细受计较机内存的限制。这是真的,但这凡是与现代呆板毫无关连,除非应用措施很是大(大数据)。
R 的不敷之处公正地讲,R 也有一些事做欠好或完全不会做。不是每个用户都适合利用 R:
R 不是一个数据客栈。在 R 中输入数据的最简朴方法是,将数据输入到其他处所,然后将它导入到 R 中。人们已经尽力地为 R 添加了一个电子表格前端,但它们还没风行起来。电子表格成果的缺乏不只会影响数据输入,还会让以直观的方法查抄 R 中的数据变得很坚苦,就像在 SPSS 或 Excel 中一样。
R 使普通的任务变得很坚苦。举例而言,在医疗研究中,您对数据做的第一件事就是计较所有变量的归纳综合统计量,列出无响应的处所和缺少的数据。这在 SPSS 中只需 3 次单击即可完成,但 R 没有内置的函数来计较这些很是明明的信息,并以表格形式显示它。您可以很是轻松地编写一些代码,但有时您只是想指向要计较的信息并单击鼠标。
R 的进修曲线长短平凡的。初学者可打开一个菜单驱动的统计平台并在几分钟内获取功效。不是每小我私家都但愿成为措施员,然后再成为一名阐明家,并且或者不是每小我私家都需要这么做。
R 是开源的。R 社区很大、很是成熟而且很活泼,R 无疑属于较量乐成的开源项目。前面已经提到过,R 的实现已有高出 20 年汗青,S 语言的存在时间更长。这是一个久经检验的观念和久经检验的产物。但对付任何开源产物,靠得住性都离不开透明性。我们信任它的代码,因为我们可自行查抄它,并且其他人可以查抄它并陈诉错误。这与自行执行基准测试并验证其软件的企业项目差异。并且对付更少利用的 R 包,您没有来由假设它们会实际生成正确的功效。
竣事语我是否需要进修 R?或者不需要;需要 是一个情感很强烈的词。但 R 是否是一个有代价的数据阐明东西呢?虽然是的。该语言专为反应统计学家的思考和事情方法而设计。R 固定了精采的习惯和公道的阐明。对我而言,它是适合我的事情的东西。

    关键字:

在线提交作业