r语言 power怎么算statistical power

下载丁香园 App
关注今日:55 | 主题:487389
每发1个新帖可以获得0.5个丁当奖励
【求助】关于统计学中statistical power 求助
楼层直达:
各位大侠好,之前投了一篇文章,关于基因多态性与疾病相关性分析的一篇文章,被编辑修回,reviewer的意见如下:The major concern with this manuscript is about allele frequencies and sample size. All the studied polymorphisms have very low minor allele frequencies (MAFs) in the range (1-3%). What is the statistical power of the study to detect association with those MAFs? 后来我给与了回复: In our experiment, we have included all the samples we had access to ensure a relatively large sample. Furthermore, we actually used Fisher’s exact test to assess the statistical power of the association with these MAFs. However, due to a typo, this was wrongly stated in the previous version of the manuscript.但是编辑认为我所答非所问,依旧回修,问题还是上面的问题,我真的不知道编辑在问什么,该如何作答,
不知道邀请谁?试试他们
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
有power软件可以计算的,你可以在网上找一下,我这里没有。
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
丁香园准中级站友
你的恢复的确 “答非所问”:你说这就是我所有的病例了,不行。就好比:顾客要一斤三只的螃蟹,你告诉他:我这里最大的是一斤五只,人家能买?或许吧,但至少你得说:你走遍上海也只能找到一斤五只的。Fisher exact test 关系就更远了,也许有关,怎样的关系,你得说明。具体的建设性的意见,需要根据你的核心结论如何进行 “设计”。如果结果是 “阴性的”,你需要解释你这样的样本得出阴性结论的把握有多大,可以说:我只有这些样本,反过去计算,得出的把握度有多大。如果结果是 ”阳性的“,那就需要说明:这个样本量得出阳性结果,假阳性率估算有多大。
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
您好,首先非常感谢您,百忙之中给与我的指点,我后来找到了相应的统计效能计算软件,也算出了统计效能,但是我这样的实验设计方法,检验效能只有20%-30%,这种检验效能挺低的,我也算出了如果想把统计效能提高到80%即二类错误beta出现的概率为20%的样本量。我觉得编辑可能会因我的检验效能低而拒稿,请大侠指点,有没有什么好的回答角度,有可能接受文章。谢谢
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
yanjie1087 您好,首先非常感谢您,百忙之中给与我的指点,我后来找到了相应的统计效能计算软件,也算出了统计效能,但是我这样的实验设计方法,检验效能只有20%-30%,这种检验效能挺低的,我也算出了如果想把统计效能提高到80%即二类错误beta出现的概率为20%的样本量。我觉得编辑可能会因我的检验效能低而拒稿,请大侠指点,有没有什么好的回答角度,有可能接受文章。谢谢genetic power calculation个人意见,因为你的maf比较低,所以统计效力可能就会很低。建议你把统计效力低作为limitation说一下。强调对于low frequency的variants,仍然需要扩大样本以提高统计效力。觉得编辑应该不会因为检验效能低而拒绝你。你可以看一下发表的文章,很多研究的统计效力都没有达到80%。另外,如果你的结果是positive的话,就更没问题了。个人意见,供参考
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
yanjie1087 您好,首先非常感谢您,百忙之中给与我的指点,我后来找到了相应的统计效能计算软件,也算出了统计效能,但是我这样的实验设计方法,检验效能只有20%-30%,这种检验效能挺低的,我也算出了如果想把统计效能提高到80%即二类错误beta出现的概率为20%的样本量。我觉得编辑可能会因我的检验效能低而拒稿,请大侠指点,有没有什么好的回答角度,有可能接受文章。谢谢 我想问一下,你的统计效能计算软件是什么软件啊,谢谢
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
关于丁香园下载丁香园 App
关注今日:34 | 主题:167490
每发1个新帖可以获得0.5个丁当奖励
【求助】怎样用SPSS计算POWER?急!
楼层直达:
这个帖子发布于3年零9天前,其中的信息可能已发生改变或有所发展。
各位高手,我的一篇观察性文章,总样本量106例,偏小,各参数方差分析结果为阳性。老外审稿回来要我提供statistical power analysis。请教大家方差分析怎样用SPSS实现POWER分析?十万火急,求助!
不知道邀请谁?试试他们
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
额,,是不能计算的。。SPSS 公司的工具是单独分开的。。
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
,那您知道具体怎么算吗?
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
用专门的软件算,很多的。
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
关于丁香园君,已阅读到文档的结尾了呢~~
用R语言做曲线拟合R,用R,拟合..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
用R语言做曲线拟合
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口R 语言的优劣势是什么?
按投票排序
就一个R和SAS精通程度几乎相同,在两种环境下都做过比较大(moderately big, ~xx Gb)的数据分析,与其他语言环境嵌合(SQL, Perl, etc...)使用过的个人(统计专业人员,非编程专业人员)的感受而言:R的优点:1. 免费... 开源... (这是最重要的一点好不好,也是SAS流行于公司,R流行于研究机构和大学的最主要原因)2. 是专门为统计和数据分析开发的语言,各种功能和函数琳琅满目,其中成熟稳定的一抓一把3. 语言简单易学。虽与C语言之类的程序设计语言已差别很大(比如语言结构相对松散,使用变量前不需明确正式定义变量类型等等),但仍保留了程序设计语言的基础逻辑与自然的语言风格。我这样说可能让人听得云里雾里,但是如果你对SAS或者SPSS有一点点了解,就会明白我的意思了...4. 小... 安装程序只有50Mb左右,比起某些死贵且3个G的付费软件真的是超级迷你小巧玲珑... 因为体积轻便,运行起来系统负担也小。5. 同各种OS的兼容性好。我两台本本一台Windows,一台Linux,都用得很顺手。相比之下,你有见过人在Mac上用SAS吗... 这人是要多么的想不开... =. =6. 因为用的人越来越多,又是开源,有很多配套的“插件”为其锦上添花。比如xtable里有一个函数可以直接将R里的表格导出为TeX格式;另有RStudio的插件让你可以在同一个环境里写TeX跑R并可在你的TeX文件中插入你的R代码,多么的贤良淑德... (这个插件我没用过,不过我同学一天到晚在用)7. 有R GUI和RStudio两种风格供君选择,说实话我觉得这两种风格已经涵括了大多数人的使用偏好... 8. 已经提过了开源,还想再强调一下。各种包和函数的透明性极好,这使得对函数的调整和改良变得非常便利。只需要把源码调出来,自己稍微修改一下就可以了。这种事情放在任何其他统计软件里都近乎奢望。9. 如果你做Bayesian,用R你有OpenBUGS, WinBUGS, JAGS等各种成熟活泼的包裹,很多语言又简单又附带各种预设的plot,你只需调用即可;还可以自己写MCMC。如果你用SAS/SPSS/Stata,你可以... @@? = =bbb10. 漂亮又灵活的图,大家也都已经讲过了。原本不是什么特别突出的长处(有则好,没也没啥),不过现在数据可视化越来越热,也就一跃成为主要优点了。说说缺点:1. 对大文本(text data)处理极差... 或者说data management本就不是R的强项。SAS于R的最大优势之一可能就在于它兼顾了数据分析和数据管理。在SAS里对数据进行各种复杂操作都相对容易,只需要简单的DATA STEP(必要时结合PROC SQL)即可完成;在R里可就真的是千辛万苦... 虽然也有相应的aggregate, merge之类的函数,但是大都不太好用。这也是为什么大家常常把数据(尤其是数据大时)在别的环境下整好/分割好再喂给R。人家术业有专攻,数据管理真是有些难为它了。2. 内存管理和平行处理(parallel processing/programming)都为人诟病。数据小时没有感觉,数据大了就各种报错... =. =3. package的可靠性问题。我第一门完全使用R做作业的课是门统计课,教授已经六十多岁,见过各种统计软件的出生发展和湮没。她同我们说到R时第一句话就是Never use a package before you understand the manual and confirm the validity of the functions. 也就是包裹虽然好,使用需谨慎。主要原因还是在于开源。不常用的package一定要搞清楚函数的用法和核实过输出,不然真的不推荐使用。我个人也是倾向非常用函数尽量自己写,至少错了也容易debug...4. 不得不提的package的版本问题。 就算你确认了包裹的可靠性并熟知了各个变量要怎么用,还是可能掉入潜在的陷阱=. = 讲个真事:去年工作的时候一个项目是使用11年某项目的一个贝叶斯模型分析新的数据。当年写代码的人因为相信末日说两年前就已经辞职环游世界去了,于是我只好独自研读他的代码。第一步,很自然的,就是重复当年的分析结果。这时发现当年他用的一个package和现在的R已经不兼容,于是就下载了这个package的最新版本。结果有一个简单的credible interval怎么都重复不出来... 怎么怎么都重复不出来... 我都快绝望了。最后经各种推理验证,发现这个区别源自于新旧版本的函数内部在对数据排序之后对NaN的不同处理... 而这个小小的修改未在任何地方留下任何文字记录。所以怎么说呢... 很多时候还是写自己的程序靠谱哇...5. 当你跑比较大的simulation,对效率有要求的时候,有时还是不得不用C,这可能是10小时和10分钟的差别,毫不夸张。6. 想不出来乐 =w=大致就是这样。最后,因为不是学计算机出身,文中与编程语言和系统相关的措辞可能不准确或有误用,请程序员们多包涵=)
R,不仅仅是一种语言本文原载于《程序员》杂志2010年第8期,因篇幅所限,有所删减,这里刊登的是全文。简介:R是什么转帖:来自《程序员》上的一篇文章,希望对大家有帮助工欲善其事,必先利其器,作为一个战斗在IT界第一线的工程师,C/C++、java、perl、python、ruby、php、javascript、erlang等等等等,你手中总有一把使用自如的刀,帮助你披荆斩棘。应用场景决定知识的储备与工具的选择,反过来,无论你选择了什么样的工具,你一定会努力地把它改造成符合自己应用场景所需的那个样子。从这个道理来说,我选择了R[1]作为数据挖掘人员手中攻城陷池的那把云梯,并努力地把它改造成自己希望的那个样子。关于R的一个比较准确的描述是:R是一门用于统计计算和作图的语言,它不单是一门语言,更是一个数据计算与分析的环境。统计计算领域有三大工具:SAS、SPSS、S,R正是受S语言和Scheme语言影响发展而来。其最主要的特点是免费、开源、各种各样的模块十分齐全,在R的综合档案网络CRAN中,提供了大量的第三方功能包,其内容涵盖了从统计计算到机器学习,从金融分析到生物信息,从社会网络分析到自然语言处理,从各种数据库各种语言接口到高性能计算模型,可以说无所不包,无所不容,这也是为什么R正在获得越来越多各行各业的从业人员喜爱的一个重要原因。从R的普及来看,国外的普及度要明显好于国内,跟盗版windows的泛滥会影响linux在中国的普及一样的道理,破解的matlab与SPSS的存在也影响了R在中国的使用人群。但在国外高校的统计系,R几乎是一门必修的语言,具有统治性的地位。在工业界,作为互联网公司翘楚的google内部也有不少的工程使用R进行数据分析工作,这里[2]有一个google campus的讲课视频,内容就是用R作为工具来讲述数据挖掘的概念与算法。随着近年来R使用者的增加,关于R的报道也屡有见于报端,如2009年初美国纽约时报就有一篇很好的报道:Data Analysts Captivated by R’s Power[3]。报道中述说了R的发展历史以及由于数据挖掘需求的增长而日益普及的现状,它虽源于S但其发展却远远地超过了S,已经成为高校毕业学生所选用的第二大工具语言,google与Pfizer的员工也介绍了R在自己公司中的应用。此外,报道中google首席经济学家Hal Varian说:R的最让人惊艳之处在于你可以通过修改它来做所有的事情,而你已经拥有大量可用的工具包,这无疑让你是站在巨人的肩膀上工作。以下就R的几个主要应用场景以及我在实践中的经验对这个并不算主流的编程语言作一些介绍。统计计算:R之最强项R从它出生的第一天就是为了做统计计算的,那时它被定义为一个统计计算与作图的工具,虽然发展到现在它已经被赋予了越来越强大的功能,但现在R的开发人员里,还是以各个高校统计系的老师与学生为主,他们自然最了解自己最需要的是什么。在统计计算中,我们常常需要根据样本数据作线性回归,得到一定的规律性,R中实现这个功能十分简单,以下是一个一元线性回归的例子:x &- 1:10y &- x+rnorm(10, 0, 1)fit &- lm(y ~ x)summary(fit)注明一下,R里的“&-”符号意义为赋值,大多数情况下它可以用“=”号来代替,但某些特殊的场合不可以,本文会遵循“&-”这种官方使用的写法。这个例子的前两行准备了两列数据:自变量x与因变量y,第三行的函数lm即根据提供的样本数据进行线性回归计算,得到的模型结果可以用第四行打印出来。函数lm除了可以做这种简单的一元线性回归,还可以做多元线性回归,同时返回模型的各种统计量。做统计的往往免不了要做各种各样的图形,R的另一个基本特点就是对图形的强大支持,以下代码展示了一个箱线图的作法,代码来自boxplot函数的manual,该图显示了几列数据的分位数、中值、均值、奇异点等信息及其对比位置。更详细的关于R的作图功能可以参看[4]。boxplot(mpg~cyl,data=mtcars, main=”Car Milage Data”, xlab=”Number of Cylinders”, ylab=”Miles Per Gallon”)机器学习:让你的数据发挥它应有的作用机器学习、数据挖掘领域面临着一些抽象自大量现实生活的问题,比如关联规则挖掘、聚类、分类这三大问题。作为一个完备的工程计算包,R毫无疑问对它们都提供了足够的支持。关联规则问题源于“买了这件商品的顾客还买了什么”这个问题,现在已经广泛应用于客户行为分析以及互联网用户行为分析中。关联规则挖掘领域最经典的算法为apriori,R的第三方包arules[5],就是专门用于做关联规则挖掘的。以下例子需要你已经安装了arules包。library(arules)data &- paste(“item1,item2″,”item1″,”item2,item3″, sep=”\n”)write(data, file = “demo_basket”)tr &- read.transactions(“demo_basket”, format = “basket”, sep=”,”)data(“Adult”)rules &- apriori(Adult, parameter = list(supp = 0.5, conf = 0.9, target = “rules”))最后一行的apriori函数接受一个transaction对象的输入,输出关联规则对象rules,为方便起见,这里用于计算的transaction对象Adult是通过第5行从arules包中现成载入进来的,第2~4行说明了怎么从一个文本文件中读入数据并生成一个transaction对象。聚类算法使用最广泛的高效算法无疑是kmeans,R在其默认载入的stats包中就包含了这个函数,以下是一个来自kmean说明文档的例子:x &- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2), matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))cl &- kmeans(x, 2)plot(x, col = cl$cluster)points(cl$centers, col = 1:2, pch = 8, cex=2)代码第1行生成两组两维的正态分布的数据,第一组均值为0,第二组均值为1,两组数据方差都为0.3。第2行对该数据进行聚类,第3和第4行把聚类结果画出来。分类器是模式识别领域的研究主题,也是人类认知活动的中心。多年来的学术研究积累下来很多种类型的分类器,而其中比较靠谱的分类器基本都能在R中找到对应的实现。诸多分类器中以svm最为著名,它也被一些人称为是单分类器的王道。以下是一个利用svm对著名的iris数据集进行分类的过程,运行该例子需要你已经安装了e1071这个包[6]。library(e1071)data(iris)x &- subset(iris, select = -Species)y &- iris$Speciesmodel &- svm(x, y)summary(model)pred &- predict(model, x)table(pred, y)第5行代码调用svm函数,计算由x作为特征y作为类别标签的分类器模型,第7行把模型应用于原数据进行预测。以上例子的演示并非想让各位读者当场学会各个不同领域中这些功能函数的用法,而是一方面展示一些实际的R代码以及它解决问题的方式,另一方面说明了R在这些常见的机器学习领域的积累。在R帮助下去解决这些或许不是我们专业的问题,可以省去我们大量重复造轮子的精力,写出来的代码也足够的短小精悍,节省时间之余也让你对自己算法逻辑的全局一览无余。高性能计算:向量化与并行/分布计算作为现代数据挖掘人员从业者,可能第一个需要关心的是所使用工具的可伸缩性(scalability),具体来说就是在面对大数据量场景时的计算能力。一个拥有高性能计算能力的计算包,首先它必须能充分利用历史上积累下来的那些著名的数值计算包,比如blas、lapack;另一方面,它必须具有良好的可扩展性,即它必须方便开发人员并行化自己的算法,很幸运这些特性R都具备了。类似于R、scilab与matlab那样的工程计算包,通常都会以向量化计算(Vectorization)作为其基本的计算特点(即使python的numpy包也是如此),因为向量化的处理方式是现代大型计算机的基本特性,在计算机领域,无论硬件还是软件,都提供了对向量化的支持,硬件上如Intel的MMX, SSE等指令集都提供了对向量化的支持,更多可以看到wikipedia上的介绍[7]。软件上如blas等著名的计算包,天然地就可以对向量化的命令自动实施并行计算。所谓向量化,是一种特殊的并行计算的方式,相比于一般程序在同一时间只执行一个操作的方式,它可以在同一时间执行多次操作,通常是对不同的数据执行同样的一个或一批指令,或者说把指令应用于一个数组/向量。以下列出R中经常使用几种向量化运算,都是十分稀松平常的操作,但它们本质上都是同时对一批数据应用相同的操作,所以都可以经过向量化处理方式的改造:向量取值,如:V[1:10]向量赋值,如:V[1:10] &- seq(1,10)lapply,类似于python里的map函数:lapply(A, mean)矩阵运算:A + B;A %*% B向量化因其在计算过程中数据的前后不依赖的特点,是并行计算的天然先驱,一个用向量化实现的算法,必定是一个可以高度并行化的算法。正因为这个原因,在利用R写脚本的时候,都要尽量利用向量化的思想来设计自己的算法,尽可能少地使用循环结构。一旦你的程序都是或大都是基于向量化的,除了当时获得来自于计算机软硬件上的优化外,将来某一天数据量膨胀使得计算成为瓶颈时,你就可以极为方便地把原来的算法并行化。正如我们所知,CRAN包括了各种你能想像得到的工具包,当然也有不少并行计算的包,这些包被归纳在R高性能计算相关的包列表中[8]。关于R的向量化及并行计算更详细的内容可以参考我的一篇博客[9]。编写接口与工具包:最有用的包必定是你写的那一个一个开源软件的最强大之处在于大量从业人员的贡献,R最让人激奋,进而选择它作为工作平台的一个重要原因则是庞大而无所不包的的CRAN,在那里几乎能找到所有你能想像得到的与分析研究相关的工具包,可以说丝毫不逊色于perl的CPAN。之所以拥有一个如此强大的第三方支持,一方面在于R本身在统计计算与计算能力方面的支持,另一方面则在于开发一个R扩展是如此地容易,以致于每一个使用R作为自己常用工具的人,都会按捺不住强烈的冲动要写一个自己的包,以满足工作需要。如果自己的这个包感觉写得不错,又为很多人所需要,就可以提交到CRAN。这是造成CRAN如此庞大的原因,但同时也造成了CRAN的软件包良萎不全。但大多数情况下,这些包都会是你的得力助手,特别是那些著名而广为使用的包,如果觉得它们不满足你的需要,那么放心地对它们进行修改吧,因为它们都是开源的。下面展示一个简单的R扩展包的制作过程:1、生成包结构:新建一个目录mypkg,同时作为包名,在mypkg中新建几个目录与文件,mypkg的目录结构如下图所示。R自带的函数package.skeleton可以自动帮你生成这些目录,但它需要一些现成的函数对象或文件作启动,为了顺序说明整个过程,这里没有使用。2、目录说明:必需的是DESCRIPTION文件、man目录和R目录,剩下的都是可选的。DESCRIPTION文件描述包的meta信息;R目录下面存放R脚本文件,里面的函数可导出作为包函数库提供给外部使用;如果要在包里放一些试验数据,可以放在data目录里,常用是以csv格式存放,在R终端里data(***)可以载入,这里留空;man目录是R的帮助文档,有一定的格式要求,这里也留空,生成包时会有一些警告,可以不用管;src存放c/c++/fortran源代码,必须同时放置Makefile或Makevars文件指导编译程序工作,这里留空;zzz.R可以在载入包时做一些事情,这里也留空。3、添加功能:DESCRIPTION文件的内容可以参考任意一个R包对应文件的写法,依样把信息修改成自己相应的信息即可。以下只写一个简单的R函数作为说明,在R目录下添加一个名为helloword.R的文件,文件内容如下:helloword &- function(x, y){return(x*y)}4、安装:在命令行中运行R CMD build mypkg,会编译生成一个mypkg_0.1.tar.gz安装包,其中的数字是我在DESCRIPTION里写的版本号;运行R CMD INSTALL mypkg,就可以把包安装到系统里。5、试验:运行R,进入R终端;library(mypkg),载入刚制作的包;search(),可以看到mypkg包已经被载入;在R终端运行helloworld(2,3),返回6,试验成功。一个具有一定功能的包就这样做好了,是不是很简单。如果有其它需要,只要往R目录或src目录添加文件,然后重新生成并安装就可以了。R与c/c++之间的接口调用也十分方便,限于篇幅,无法更仔细地说明,更详细的内容可以参考我的几篇博客[10-13]。R在中国的发展R在中国的普及现在并不十分地广泛,主要还是学校及研究机构在使用,但近年来随着R的声名鹊起,也已经有越来越多各个领域的工业界从业人员选择R作为自己的工作平台,其中统计之都[14]是一个国内R用户的聚焦地。今年的6月份在人民大学举行了第3届R语言会议,从前三届会议的人员组成来看,R的中国用户群一直呈现较大的增长趋势,用户分布的领域也越来越丰富。第三届R语言会议参会者人来源可以从会议纪要中看到[15]。相信随着数据挖掘广为各个公司接受,R也会走近工业界的各行各业中。R在豆瓣中的应用有一段时间,我一直在寻找介乎于matlab与系统语言(如C, Fortran)的中间物,希望它既能拥有系统语言的高性能,又能方便数据挖掘人员的日常工作,于是我找到了R,这不仅是一门语言,它更是一个理想的计算环境。它一方面方便我对新算法原型的构建、调试、评测,另一方面并没有让我失去系统级语言的计算优势,甚至在实现并行计算方面拥有了更多的选择。现在我使用R编写我们自己的工具包,进行算法原型构造、矩阵运算、并行算法等离线应用,为相似性计算、推荐系统等上层应用提供底层的支持。一个R写的协同过滤推荐的例子最后用一个R实现的协同过滤推荐的例子来结束本文,协同过滤是推荐系统中一个基本的算法,详细内容可以参考这里[16]。由于大量地采用了向量化的计算方式(包括各种矩阵运算),所以算法的实现相当简洁,有可能是史上代码最少的协同过滤推荐引擎 data &- read.table(‘data.dat’, sep=’,', header=TRUE)user &- unique(data$user_id)subject &- unique(data$subject)uidx &- match(data$user, user)iidx &- match(data$subject, subject)M &- matrix(0, length(user), length(subject))i &- cbind(uidx, iidx)M[i] &- 1mod &- colSums(M^2)^0.5MM &- M %*% diag(1/mod)S &- crossprod(MM)R &- M %*% SR &- apply(R, 1, FUN=sort, decreasing=TRUE, index.return=TRUE)k &- 5res &- lapply(R, FUN=function(r)return(subject[r$ix[1:k]]))write.table(paste(user, res, sep=’:'), file=’result.dat’,quote=FALSE, row.name=FALSE, col.name=FALSE)代码我就不细加注释了,有兴趣了解其原理的同学可以看这里[16]。参考:[1] R官方网站[2] Youtube上的GoogleTechTalks,通过R来教学数据挖掘:Statistical Aspects of Data Mining (Stats 202)[3] 纽约时报的报道Data Analysts Captivated by R’s Power[4] R Graphics[5] arules package[6] e1072 package[7] 向量化[8] R高性能计算相关的包[9] 向量化与并行计算[10] R package的最简单制作[11] R与C的接口:从R调用C的共享库[12] R对象结构,用.Call的调用方式更灵活地写R-package[13] 编写R包C扩展的核心指引[14] 统计之都[15] 第三届R语言会议(北京会场)会议纪要[16] 可能是史上代码最少的协同过滤推荐引擎
R有着独一无二神一样的的ggplot(只是效率太低,希望dplyr发布后作者能够用它重构ggplot里的数据处理部分,取代plyr),还有data.table (它的语法实在是太精简了)。当然,R最显著的特点就是其语言特性支持超高的信噪比(这里特指数据整洁、分析时,其他时候相反!),同样的功能在R里所占据的字符数比在Python里少了一半以上。比如R:
a[x&2 & a&-3, list(y, z)]
# (a 是一个 data.table)
a[(a['x']&2) & (a['x']&-3)][['y','z']] # (a 是一个 data frame)
但是,有时候,你需要自己写一些复杂的程序,或者调用一些外部的C, python代码,这个时候就Python 就显示出优势来了。用R写程序极其令人烦躁(很多代码都是为了做些不相干的事情,比如在一个正确的frame里获取一个object的名字 --& 为了能够在使用的时候保持高信噪比,我多次深陷quote, substitute, eval, parent.frame里不能自拔),同时效率也不高(除非你用Rcpp)
优点:统计前沿的主流语言;扩展性好;对内存和并行运算的诟病其实很多人没真的理解r(它不适合直接就支持的,Revolution可以),内存不是r的限制,r的确是在内存中做运算的,但如果对计算机语言和统计算法的掌握不够,就会得到以上的结论。缺点:一点没基础的人很难起步,不过现在有视频和培训了;要精通r很难,这点在上面内存已经说过了,这其实国内统计教育的失败之处;r包现在发展极快,学习r需要耗费大量精力(严格这不是r的问题,而是中国社会环境的问题)
作为一个R语言的痴迷者,其强大的作图功能和扩展能力一直让我无法自拔,而且是免费的开源平台;但要编程,学习起来很困难,由于我是学流行病与卫生统计学的,所以我从很多医生那里了解到,对于医生这种有统计需求但是工作又非常忙的人来说,R太不实用了。所以我做了这样一件事,基于R shiny搭建了一个在线的数据分析平台,内核是 R version 3.2.2.
医生只要指定数据类型,这个平台就能自动进行逻辑判断,建议最合适的统计方法。我希望能用这个方法让更多人能享受到R的优点。
优势和劣势都是那些包,用起来强大无比,学起来头疼万分
R语言的优势是免费开源易操作,劣势是慢、慢、慢!
优势基本上就是开源,方便,更新快而且功能多。最大的缺点自然就是慢。另外,yihui的这篇博客文章非常切题地讨论了这个问题:
说一个很现实的问题:求职。一线城市不用讲没问题,二线看哪里(类似南京武汉这些老牌大城市也应该有公司要);三四线,尤其IT业不发达的城市,我是几乎没怎么听到有公司有专门岗位招R的。同样做数据分析,可能小地方更加希望你能够全包,这样你的业务理解就更重要了(哪怕你就只是用excel而已)。如果想到后面不做数据分析改行做软件开发的话,个人觉得学Python可能更有助于后面的发展。
弱:1. R对内存的管理不尽人意2. 不能compile,所以慢强:1. CRAN和R Forge有很多让人眼前一亮的packages,许多学者和许多程序员做出了很多贡献2. 开源,under GNU 3,便宜。。。3. 有很强的user groups。芝加哥每年有Rfinance conference。LA也有很多R group定期交流。建议:如果你对你的computational speed很在意,C是首选,GNU scientific library有很多很强悍的packages。如果你对数据分析,作图感兴趣,R是你的首选。
已有帐号?
无法登录?
社交帐号登录}

我要回帖

更多关于 r语言集合运算 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信