星期五, 四月 29, 2011

R语言中进行logistic回归

logistic回归又主要在流行病学中应用较多,比较常用的情形是探索某疾病的危险因素,根据危险因素预测某疾病发生的概率,等等。例如,想探讨胃癌发生的危险因素,可以选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群肯定有不同的体征和生活方式等。这里的因变量就是是否胃癌,即“是”或“否”,为两分类变量,自变量就可以包括很多了,例如年龄、性别、饮食习惯、幽门螺杆菌感染等。自变量既可以是连续的,也可以是分类的。通过logistic回归分析,就可以大致了解到底哪些因素是胃癌的危险因素。

logistic回归的因变量可以是二分类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释。所以实际中最为常用的就是二分类的logistic回归。

星期三, 四月 27, 2011

在R语言中进行地理信息绘图

数据可视化是将科学计算中产生的大量非直观的、抽象的或者不可见的数据,借助计算机图形学和图像处理等技术,以图形图像信息的形式,直观、形象地表达出来,并进行交互处理。地图是空间信息可视化的最主要和最常用的形式。

R语言中也有相关的扩展包可以使用,例如maps,sp等。下面的例子是仿照《R Graph Cookbook》一书中的例子,利用R中的sp空间分析包得到的。代码如下:

星期日, 四月 24, 2011

R语言中如何调用世界银行数据来比较金砖五国的GDP

将数据进行可视化是探索分析的首要步骤。R语言中有两大高级绘图扩展包,即是lattice与ggplot2。它们各自都有很强的绘图能力。不过只有工具是不够的,巧妇难为无米之炊,你还得有数据。World Bank Data是世界银行组织构建的一个开放数据库,其中包括了世界各国关于经济、环境、人口等信息。数据获取的一种方法是从其网站上下载数据再导入R软件,另一种是利用WDI扩展包,直接读取想要的数据。

下面我们用WDI包的WDI函数,将中国、俄罗斯、南非、印度、巴西这五国的GDP数据载入内存,选取的时间为1990-2009年,在选择国家时需使用ISO-2标准的国家代码,数据指标是世界银行的特定编码,你可以通过WDIsearch("gdp")命令来得到所有关于GDP的编码。

星期日, 四月 17, 2011

R语言教材小结(2012.08)

一、去哪里找R语言相关的资料
1.官方网站 http://cran.csdb.cn/index.html (官方文献集中地)
2.统计之都论坛
3.人大经济论坛-R子论坛 (免费资料也不少)
4.http://library.nu/ 这是网上电子书最多的地方,其中有一个R语言专门书柜。该站已经被迫关闭
5.本博客的资料收集
6.笔者在verycd上发的一个书单
7.国外著名的R语言群博 http://www.r-bloggers.com/
8.实在不行就google了

二、R语言教程推荐
(一)中文部分:
  • 《R for beginners》和《R导论》都有中文版,用其快速入门是相当不错的。西安交大出过一本R语言初学指南也还不错的。
  • 《简明参考卡片》,是居家旅行必备的东西。在R官方站可以下载得到
  • 《统计学与R笔记》,网络同好做的一个总结资料,相当的完整,不过不合适用来学习而应该作为参考查阅。
  • 《统计建模与R软件》(推荐),薛毅老师的书相当精彩,中级统计和多元都有涉及,不仅对R的各种函数命令讲解清楚,而且用基本编程方法来解决统计问题,非常有利于学习。
  • 《统计模拟及其R实现》,主要讲R在模拟方面的应用,例子一般,看电子版即可。
  • 《多元统计分析及R语言建模》,王斌会老师的书,是多元方面的R语言实现,略为简单,现在出了第二版,如何可以的话还是去读英文资料吧。
  • 《环境与生态统计-R语言的应用》,美国杜克大学钱松老师的书,统计思想讲的很透彻,内容包括了初级中级高级三个层次内容,多重模型尤其出彩。

(二)英文部分
  • 《An Introduction to R: Software for Statistical Modelling & Computing》R官方站上的免费教程,钱松老师推荐为是最好的入门讲义。
  • 《Introductory Statistics with R》,springer出版的佳作,入门推荐,整体简洁清晰,讲解常规方法比较细致一些,除经典统计内容外还涉及到了生存分析,logistic回归和非线性拟合的内容。
  • 《R in Action》入门最佳),由Quick-R站长所著,分为三个层次讲解的中级统计教程,排版精致,讲到很多较新的扩展包。统计之都团队正组织翻译出版。
  • 《The_Art_of_R_Programming》,该书只讲纯粹的R编程语法,不涉及任何统计知识,在一定程度上减轻了学习R的难度。中文版正在翻译中。
  • 《Linear Models with R》,关于经典线性模型的教材,讲解有一定深度,需要有一定的概率统计基础。《Extending the Linear Model with R 》线性模型的扩展,和上一本书是同一作者,公式较多,对广义线性模型、加性模型、非线性模型等讲解最为详细。
  • 《Applied Econometrics with R》,是Use R!系列中的一本,为计量经济学中之应用。
  • 《Exploratory multivariate analsis by Example Using R》,多元方面的书,较为简洁,例子不错。
  • 《A Handbook of Statistical Analyses Using R》(推荐),非常经典的中级统计(条件推断、荟萃分析和面板数据分析尤其出色)主要通过案例讲解,基本没有公式。《Modern Applied Statistics With S 》(推荐)另一本经典,虽然标题是讲S,但也有R的示范,这两本可谓是R教材中的倚天屠龙。
  • 《Introductory time series with R》,Use R!系列的另一本,用它来入门时间序列很不错,如果要深入一些可以看《time series analysis: with applications in R》,这本书华章出了中文版。
  • 《A first course in statistical programming with R》,关于科学计算方面的R语言教材,入门水平。如果要更进一步可以去看《Introduction to Scientific Programming and Simulation Using R》(推荐),非常棒的代码和案例。
  • 《R cookbook》,菜谱式参考书,主题清楚方便查找。另一本相关的是《R graph cookbook》,绘图方面的必备参考书,以R语言基本绘图命令为主,还涉及到headmap以及地理绘图。
  • 《Using R for Data Management, Statistical Analysis, and Graphics 》统计函数手册,容易查阅。
  • 《Data Mining with R Learning with_Case Studies》(推荐) 用例子来讲解数据挖掘,有点难度的。如果能将这几个案例全部照着做一遍应该会极有收获。还有一本关于数据挖掘的是《Data Mining with Rattle and R》,对于数据挖掘的流程讲解很好,偏向于使用R的一个扩展包rattle。《Machine Learning for Hackers》(推荐)是较近出版的机器学习教程,代码示例全面,想象力丰富,极好的学习资料。
  • 《R in Nutshell》(推荐),果壳系列图书之一,讲解全面,索引非常有用。我将它全文打印出来放在桌头参考。 统计之都团队正组织翻译出版。
  • 《The R Book》,公认的好书,极为全面,章节编排有序,由浅入深,包含内容很丰富。但此书排版不大好,另外出版时间较早,一些新的函数包没有涉及。
  • 《Data Analysis and Graphics Using R: An_Example_Based_Approach》(推荐),综合性的统计分析教程,没有很多公式,用各种案例讲解统计模型,覆盖面和the R book不相伯仲,出版时间较近,有一定难度。
  • 《Lattice Multivariate Data Visualization with R》和《ggplot2 Elegant Graphics for Data Analysis》(推荐)两本都是关于R高级绘图的教材,一个着重于lattice包,另一个着重于ggplot2包,前者学习入门较快,后者略有难度但潜力无穷,我的最爱啊。
  • 《Statistics and Data Analysis for Financial Engineering》,金融专业的必读书,覆盖面广,用简洁清晰的方式讲解了数量金融涉及到的统计知识,并有R代码示例。
R语言学习的心得:不仅要从资料中进行学习和归纳,还要去使用它,天天用就会日渐精深。另外一个,不只要学会表面的一两个命令,还要掌握其背后的理论公式及其实现过程和方法。

没有时间钻研大部头的同学可以参见本博客的系列入门文章,想下载这些书目电子版的点这里

星期四, 四月 14, 2011

用R语言来解微分方程模型

20世纪40年代,Lotka(1925)和Volterra(1926)奠定了种间竞争关系的理论基础,他们提出的种间竞争方程对现代生态学理论的发展有着重大影响。Lotka-Volterra模型由一个微分方程组来描述。下面我们就用R中的deSolve包来解这个方程组,代码如下:

#首先加载包
library(deSolve)

在R语言中进行简单的交易系统回测

从简单的概念上讲,交易系统是系统交易思维的物化。系统交易思维是一种理念,它体现为在行情判断分析中对价格运动的总体性的观察和时间上的连续性观察,表现为在决策特征中对交易对象、交易资本和交易投资者的这三大要素的全面体现。

本文仅从进出场的规则入手,将均线交易方法运用到沪市综指上进行回测以检验效果。下述代码仅供参考。

#首先加载两个必要的包
library(quantmod)
library(PerformanceAnalytics)

层次分析法在R语言中的实现

层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯·塞蒂(T.L.Saaty)正式提出。它是一种定性和定量相结合的、系统化、层次化的分析方法。由于它在处理复杂的决策问题上的实用性和有效性,很快在世界范围得到重视。它的应用已遍及经济计划和管理、能源政策和分配、行为科学、军事指挥、运输、农业、教育、人才、医疗和环境等领域。

层次分析法的基本思路与人对一个复杂的决策问题的思维、判断过程大体上是一样的。不妨用假期旅游为例:假如有3个旅游胜地A、B、C供你选择,你会根据诸如景色、费用和居住、饮食、旅途条件等一些准则去反复比较这3个候选地点.首先,你会确定这些准则在你的心目中各占多大比重,如果你经济宽绰、醉心旅游,自然分别看重景色条件,而平素俭朴或手头拮据的人则会优先考虑费用,中老年旅游者还会对居住、饮食等条件寄以较大关注。其次,你会就每一个准则将3个地点进行对比,譬如A景色最好,B次之;B费用最低,C次之;C居住等条件较好等等。最后,你要将这两个层次的比较判断进行综合,在A、B、C中确定哪个作为最佳地点。