25
面面 面面面面 R 面面 张张 张张 张张张张张

面向统计研究的 R 编程

Embed Size (px)

DESCRIPTION

面向统计研究的 R 编程. 张晔 华南统计科学中心. 个人简介. Kaggle 比赛. Higgs Boson ML Challege. Higgs Boson ML 比赛 Higgs Boson ML 比赛中要求参赛者在利用 29 个变量去对实验事件进行分类,将有物理意义的实验现象和背景噪声分开。. 我的几次尝试. 图 1 提交 Kaggle 的成绩统计图,不同颜色表示不同的模型. Kaggle 比赛的总结. 一个正确的模型还是很重要的! 不过数据量还是可以压倒很多事情的! 但是数据量上去了,计算能力也要上去啊!. 统计研究的一种思路. - PowerPoint PPT Presentation

Citation preview

Page 1: 面向统计研究的 R 编程

面向统计研究的 R 编程张晔 华南统计科学中心

Page 2: 面向统计研究的 R 编程

个人简介

Page 3: 面向统计研究的 R 编程

Kaggle 比赛

Page 4: 面向统计研究的 R 编程

Higgs Boson ML Challege

Higgs Boson ML 比赛

Higgs Boson ML 比赛中要求参赛者在利用 29 个变量去对实验事件进行分类,将有物理意义的实验现象和背景噪声分开。

Page 5: 面向统计研究的 R 编程

我的几次尝试

图 1 提交 Kaggle 的成绩统计图,不同颜色表示不同的模型

Page 6: 面向统计研究的 R 编程

Kaggle 比赛的总结

一个正确的模型还是很重要的!

不过数据量还是可以压倒很多事情的!

但是数据量上去了,计算能力也要上去啊!

Page 7: 面向统计研究的 R 编程

统计研究的一种思路

Page 8: 面向统计研究的 R 编程

带有 SmartArt 的标题和内容版式

明确问题• 了解背景知识• 大致了解数据

提出猜想• 问题的假设• 可能的解决方

验证猜想• 制定可行的研

究方案• 数据实现• 修正方法和猜

总结成文• 写论文• 写博客

Page 9: 面向统计研究的 R 编程

问题:编程难在哪里?

Page 10: 面向统计研究的 R 编程

数据结构设计之难

Page 11: 面向统计研究的 R 编程

我第一次修改 R 包的经验

mvpart 是实现多元分类树算法的一个 R 包,从 rpart 包发展而来(主要是在 rpart 的基础上添加了针对相应变量为多元变量的算法)

图 2 mvpart 包中定义树结构的头文件

Page 12: 面向统计研究的 R 编程

我第一次创建 R 包的检验

这是后来的开发的另外一个基于树算法的 R 包—— edtree 。用了 S3

类。利用 list 可以方便地在 Rcpp 中方便地转换。

图 3 edtree 中定义树结构的 R 代码

Page 13: 面向统计研究的 R 编程

总结

学术研究过程中的编程工作有着如下的特点: 与工程界相比,代码规模一般更小; 要求一定的可复用性;

一定的软件工程能力是需要的 设计适合的数据格式

Page 14: 面向统计研究的 R 编程

Debug 之难

Page 15: 面向统计研究的 R 编程

最近的一个比较奇怪的例子

图 4 图中提示找不到名为’ PRI_tau_pt’ 的函数对象,但实际上’ PRI_tau_pt’ 是用到的数据中的一个变量名。

Page 16: 面向统计研究的 R 编程

建议与实例无他,唯手熟尔

Page 17: 面向统计研究的 R 编程

善用搜索引擎

Page 18: 面向统计研究的 R 编程

从修改别人的包开始

Page 19: 面向统计研究的 R 编程

修改他人的包的好处

学习良好的数据结构设计

一定程度上减少工作量 代码复用 数据结构的一致性减少重构的代码量

Page 20: 面向统计研究的 R 编程

使用好的工具

Page 21: 面向统计研究的 R 编程

强大的 Rstudio

图 4 Rstudio 集成了 debug 、文档生成和版本控制工具,堪称 R 语言开发瑞士军刀。

Page 22: 面向统计研究的 R 编程

Rcpp : R 与 C++ 的桥梁

Rcpp 的优点:

1. 数据结构与 R 相似;

2. 自动的内存管理;

3. 扩展性强;

图 5 Seamless R and C++ Integration with Rcpp 本书中文版即将

出版

Page 23: 面向统计研究的 R 编程

清洗数据的能力

Page 24: 面向统计研究的 R 编程

清洗数据有时候挺麻烦的

Group start 24h 48h 72h 96h 5天 6天 7天 8天NEC 15. 73 14. 75 *06

NEC 15. 49 *01

NEC 15. 66 14. 79 13. 53 12. 36 *10

NEC 16. 08 15. 23 14. 01 13. 49 12. 66 12. 11 11. 49 10. 67 *17

NEC 16. 12 15. 08 14. 37 13. 17

NEC 16. 28 15. 41 13. 86 *09

NEC 16. 32 15. 09 14. 11 13. 08 12. 03 *12

NEC 16. 37 *04

NEC 16. 72 16. 23 15. 19 14. 11 4分NEC 16. 81 15. 21 14. 67 13. 54

NEC 17. 09 16. 18 14. 29 13. 62 12. 66 12. 08 11. 50 *14

NEC 17. 29 15. 74 15. 08 13. 57 3分NEC 17. 37 16. 24 15. 39 13. 46 13. 13 12. 73 12. 21 11. 45 3分NEC 17. 47 16. 18 15. 03 13. 88

NEC 17. 52 15. 21 *07

NEC 17. 75 *02

( ) “ ” “ *”说明: 数据为体重 克 ; 黄色 为该时间点抽样,其右侧为肠组织评分值; 号为死亡,按死亡时间顺序标记

表 1 一份来自临床医生的实验数据

Page 25: 面向统计研究的 R 编程

Thank you