2009年12月5~6日以及2009年12月12~13日,第二届中国R语言会议分别在北京和上海两个分会场成功召开。北京会场由中国人民大学应用统计科学研究中心和中国人民大学统计学院主办;上海会场由华东师范大学资源与环境科学学院、金融与统计学院主办,Mango Solutions咨询公司提供赞助。对R语言在中国的推广做出了杰出贡献的吴喜之教授和谢益辉博士远在美国为本次会议发来祝贺;中国R语言的领军人物、华东师范大学的汤银才老师也应邀参加会议并做了专题报告。两个会场的会议就R语言在众多领域中的应用展开了广泛的交流和讨论,为R语言在中国的进一步应用和推广开辟了更宽阔的道路。
会议主题
本次会议的主题是“无处不在的R”,也即印在参会胸牌上的“use R eveRywheRe”,意指R的应用领域之广;同时,“use R eveRywheRe”又可看成是“useR eveRywheRe”,意指R的使用者遍布四面八方。
从会议的结果来看,演讲的内容和参会者所在的单位都很好地契合了这一主题。
会议概况
参会单位
北京和上海两地会议共吸引了90余家单位共300余人参加,参会单位包括:
高校:北京交通大学、北京科技大学、北京林业大学、北京师范大学、东华大学、东南大学、复旦大学、华东师范大学、华中科技大学、吉林大学、剑桥大学、江苏大学、南京财经大学、南京人口管理干部学院、南京人口学院、南京信息工程大学、清华大学、山东大学、上海财经大学、上海大学、上海电机学院、上海海洋大学、首都经济贸易大学、苏州大学系统生物学中心、西北师范大学、西藏民族学院财经学院、新加坡国立大学、英国杜伦大学、浙江大学、中国科学院研究生院、中国农业大学、中国人民大学、中国石油大学、中南大学、中央财经大学、中央民族大学等
科研机构:东海所、上海交通大学瑞金医院、南京地质古生物研究所、上海生命科学研究所、上海植生所、上海中医药大学附属龙华医院、协和医院基础医学所、宣武医院、有色金属技术经济研究院、中国地质环境监测院、中科院动物研究所、中科院生态中心、中科院西双版纳植物园、中科院系统科学研究所、中国科学院计算机网络信息中心、中国科学院马普计算生物学研究所、中国科学院上海生命科学研究院计算生物学研究所、中国科学院植物研究所、中国林业科学研究院、中国农业科学院、中国食品发酵工业研究院、中国水稻研究所等
公司企业:Alipay、CUPL、IMShealth、Iresearch、Mango Solutions、SAS Institute、SIPPE、SPSS China、北京瑞丽杂志社、北京中彩在线科技有限责任公司、贝塔斯曼集团、方正科技集团股份有限公司、好耶、科瑞纳、摩托罗拉、欧维特服务、赛诺菲巴斯德生物统计中国部、上海汇众汽车制造有限公司、上海源略数据、思创软件、拓普公司、网秦、新华信国际信息咨询(北京)、中科软科技股份有限公司、中芯国际等
政府部门及事业单位:北京市质量协会、国家统计局、国家知识产权局专利局、宁波市疾控等
参会人员
用R对填写了年龄信息的参会人员数据进行汇总,得到年龄分布的结果如下:
Min. 1st Qu. Median Mean 3rd Qu. Max.
18.00 22.00 24.00 24.93 27.00 45.00
18 | 00
20 | 00000000000000000000000000000
22...
阅读全文 »
标签 ‘ R语言 ’
第二届中国R语言会议纪要
也谈提高R语言的运算效率
用过底层语言做计算的人转入R语言的时候一般都会觉得R语言的运算太慢,这是一个常见的对R的误解或者对R的设计的不理解。在二三十年前Chambers等一群人在贝尔实验室设计S语言之前,统计计算主要是通过那些底层语言实现的,典型的如Fortran。当时有一个基于Fortran的统计分析库,用它的麻烦就在于无论做什么样的数据分析,都涉及到一大摞繁琐的底层代码,这让数据分析变得很没劲,统计学家有统计学家的事情,天天陷在计算机程序代码中也不是个办法,要摆脱底层语言,那就只能设计高层语言了。有所得必有所失,众所周知,高层语言一般来说比底层语言低效,但对用户来说更友好。举个简单的例子,用C语言计算均值时,我们得对一个向量(数组)从头循环到尾把每个值累加起来,得到总和,然后除以向量的长度,而均值在统计当中简直是再家常便饭不过了,要是每次都要来这么个循环,大家也都甭干活儿了,天天写循环好了。
前两天COS论坛上有个帖子提到“R语言的执行效率问题”,大意如下:
有120000行数据,用perl写成12万行R命令做t.test,然后执行,大概几分钟就算完了。如果只用R语言,把所有数据先读入,然后用循环,每一行做t.test,花了几个小时,到现在还没有算完。这说明一个问题,在R里执行单行命令要比用循环快,涉及到循环的问题,最好写成单行命令执行。
我不清楚作者是如何写这“12万行”R命令的,本文假设是把t.test(dat), i = 1, 2, ..., 120000写入一个文件,然后用source()执行之。面对这样一个问题,我们有若干种改进计算的可能性。首先我们看“硬”写入程序代码的方法:
## 为了使计算可重复,设定随机数种子
set.seed(123)
## 生成数据,随机数,120000行 x 100列矩阵
dat = matrix(rnorm(120000 * 100), 120000)
nr = nrow(dat)
nc = ncol(dat)
## 六种方法的P值向量
p1 = p2 = p3 = p4 = p5 = p6 = numeric(nr)
## via source()
f = file("test.t")
writeLines(sprintf("p1 = t.test(dat)$p.value",
seq(nr), seq(nr)), f)
system.time({
source(f)
})
# user...
阅读全文 »
从调查报告中的比例数字说统计人如何甄别统计假象
新华网刚发布了一个关于学生冬季长跑的调查结果(于2009年4月27日13:52访问),一共调查了100人,结果中却出现了92.79%这样的比例数字,有常识的读者都知道,世上不存在0.79个人,因此这里面必然有某个地方是错的(姑且不妄言造假)。这则消息让我马上想起《统计陷阱》这本书,我们生活中有多少陷阱呢?
从消息编辑人员的角度来说,他们可能觉得保留两位小数显得“精确”,而这种“精确精神”从数学的角度来说显得既可爱又可笑,如果小数位能表示精确,那何不保留100位小数呢?
从统计人的角度来看,对这种调查报告中的比例数字应该有足够的警觉。很多调查报告并不会告诉我们究竟样本量多大(在这一点上新华网的调查网还比较诚实),这种情况下,我们应该弄清究竟调查了多少对象,当样本量很小的时候我们会怀疑这个调查的代表性。当我们看到比例66%的时候也许能想起来这是2/3(猜测样本量是3的倍数),但对29.1667%这个比例我们未必能很快反应出来分子和分母是多少,若报告公布方没有说明样本量,我们只能自己猜测;对于667这样的数字,我们很容易猜测这是6循环的四舍五入。最终大概思路就是拿比例去挨个乘以一系列整数,看看哪个结果接近整数,从而“还原”原来的分式n/N。以下是简单的R代码:
> digit = ((1:100) * 0.29166666)%%1 # 整除1之后的“余数”
> plot(digit, ylim = c(0, 1))
> idx = which((1 - digit) < 1e-05 | (digit - 0) < 1e-05) # 与0或1很靠近时
> points(idx, digit, pch = 20)
> abline(v = idx, lty = 2)
> axis(3, idx)
> idx * 0.29166666
7 14 21 28
我们很容易发现分母(样本量)是24的倍数,因为上图中24的倍数乘以29.167%得到的结果很靠近整数;而具备某种特征的样本数量为7的倍数。根据具体的调查背景,我们可以自己猜测报告方究竟调查了多少人:24人?太少;960人?为什么不是1000人?……
上面只是统计侦查的小游戏而已,当我们具备更多统计知识储备之后,便可以去考虑一些具体的统计模型输出是否存在造假嫌疑。我想,P值在0.05之下且很靠近0.05的时候,或P值一律接近于0的时候,我们不妨以小人之心揣测这个模型也许有问题。当因子分析中,50个变量能根据载荷被准确划分到作者预先设定的5个因子中时(5列因子载荷一律都是只在某个因子上取值极大),这个分析也许存在嫌疑。当然,所有的“小人之心”的前提假设都是:理想情况在现实中是不容易出现的(这是赤裸裸的假设检验逻辑)。
阅读全文 »
不同版本的散点图矩阵
散点图矩阵是散点图的高维扩展,它从一定程度上克服了在平面上展示高维数据的困难,在展示多维数据的两两关系时有着不可替代的作用。R 软件就包含了各种不同版本的散点图函数,本文主要介绍散点图矩阵的设计及其在R中的实现方法,并比较它们的长短,从而审时度势,选取自己喜欢的表现方式和相应的函数。
阅读全文 »
相关矩阵的可视化及其新方法探究
针对相关系数阵的可视化方法,本文回顾了颜色图和椭圆图,并提出了一种新方法——圆圈图。通过实际数据的比较和分析,阐述了各类图形的不同性质并发现椭圆图具有许多优良性质,是一类优秀的相关系数阵的可视化方法。
阅读全文 »
调和曲线图和轮廓图的比较
调和曲线图和轮廓图都是多元数据的可视化方法,本文利用R软件和iris数据展示了这两种方法并比较了它们的效果。
阅读全文 »
在Windows中创建R的包的步骤
本文将向你介绍在Windows下创建包的步骤。在Unix下的创建过程以及如何用R调用C语言代码,请参考Google Group中的如何写R的程序包一文。
阅读全文 »
R与SAS之争:一个导读
现在R与SAS社区里,最热闹的大概是源于《纽约时报》的一篇文章而引发的R与SAS之争。
2009年1月7号,《纽约时报》科技版登了一篇注定要引起四方瞩目的文章, Data Analysts Captivated by R's Power(1月6号就有网络版),作者是该报的记者Ashlee Vance。这大概是开源统计软件包R,自1996年诞生以来,第一次出现在公众视野,而且是出现在《纽约时报》这样的主流媒体。
阅读全文 »
第一届中国R语言会议纪要
2008年12月13日~14日,由教育部重点研究基地中国人民大学应用统计科学研究中心与中国人民大学统计学院主办的“第一届中国R语言会议”在中国人民大学明德商学楼0402教室成功召开。国内R语言的各位先锋如中国人民大学统计学院吴喜之教授、中国科学院上海生命科学研究院丁国徽博士等以及国外R语言专业人士如澳大利亚国立大学John Maindonald教授也通过网络连线会场参加了本次会议;会议围绕R语言的众多应用领域展开了广泛的交流和讨论,为R语言在中国的应用和推广开辟了一条崭新的道路。
阅读全文 »
