简单来说,R语言是一种主要用于统计分析、绘图的语言和操作环境。的源代码可自由下载使用,亦有已编译的执行档版本可以下载,可在多种平台下运行,包括UNIX(也包括FreeBSD和Linux)、Windows和MacOS。R主要是以命令行操作,同时有人开发了几种图形用户界面。
为什么我会使用R语言呢?毕竟我们还有SPSS,SAS,S等其他工具。就我个人而言(其实对很多人也是这样)有两个原因----R的开源与其极高的自由度。
R是开源的,是属于GNU系统的一个自由、免费、源代码开放的软件因此在使用它时我们不用担心使用的资格问题。(当然对人一般人来说其他软件也可以使用盗版…起码国内是这样)另外作为一种语言,R拥有极高的自由度----对于,很多新的统计学模型,也许SPSS等软件根本无法处理---你只能使用系统提供的有限选项。但是在R语言中,你可以自己去实现它。这也是学术界对R如此关注的原因。
敲了这么多废话,进入正题。
这一篇的内容是数据描述,就冲R中内嵌的一些简单分布开始吧。
R语言中提供了四类有关统计分布的函数(密度函数,累计分布函数,分位函数,随机数函数)。分别在代表该分布的R函数前加上相应前缀获得(d,p,q,r)。如正态分布的函数是norm,命令dnorm(0)就可以获得正态分布的密度函数在0处的值(0.3989)(默认为标准正态分布)。同理pnorm(0)是0.5就是正态分布的累计密度函数在0处的值。而qnorm(0.5)则得到的是0,即标准正态分布在0.5处的分位数是0(在来个比较常用的:qnorm(0.975)就是那个估计中经常用到的1.96了)。最后一个rnorm(n)则是按正态分布随机产生n个数据。上面正态分布的参数平均值和方差都是默认的0和1,你可以通过在函数里显示指定这些参数对其进行更改。如dnorm(0,1,2)则得出的是均值为1,标准差为2的正态分布在0处的概率值。要注意的是()内的顺序不能颠倒。
接下来我们用R来生成一个二项分布分布的图形吧。
binom是二项分布。
n<-20
p<-0.2
k<-seq(0,n)
plot(k,dbinom(k,n,p))
R语言中用<-给变量赋值,我们先让n=20,p=0.2然后用函数seq生成一个向量(1,2,3...20)并将其赋于k。然后用polt函数画图。
在这里,我们用dbinom(k,n,p)生成了参数为n,p的二项分布在1….20处的概率值,然后以k的各个值为横坐标,dbinom(k,n,p)的各个值为纵坐标,绘图。
然后我们来看一些R对数据性质的描述。
绘制直方图:hist(x),横轴表示变量取值,纵轴表示频率。
如x<-c(1,2,3,4,5)
hist(x)
(R语言中的向量前要求加c进行说明,故第一步是让x为一个值为(1,2,3,4,5)的向量,当然也可以看成一个值为1,2,3,4,5的样本)
我们来画二项分布的直方图吧
N<-10000
n<-100
p<-0.9
x<-rbinom(x,n,p)
思考一下,上面的代码是怎样运作的?
绘制茎叶图: stem(x)
如:x<-c(11,12,13,21,22,23)
stem(x)
结果如下:
The decimal point is 1 digit(s) to the right of the |
1 | 123
1 |
2 | 123
另外还有
盒图:boxplot(x)
在各种图形之后,就是对数据的数值型描述了,包括
最大值max(x),最小值min(x),中位数median(x),五个分位数fivenum(x),平均数mean(x),样本方差var(x),样本标准差sd(x),样本偏度系数skewness(x),峰度系数kurtosis(x)等等。
如:N<-10000
max(x)
min(x)
median(x)
fivenum(x)
mean(x)
var(x)
sd(x)
library(fBasics)
skewness(x)
kurtosis(x)
就可以得到生成的随机数据的各种描述。
注意:skewness函数和kurtosis函数属于一个并非默认的fBasics的包,所以需要先用library(fBasics)引入该包才能使用这两个函数。
基本的就是这些了,当然还可以更加复杂,比如多组数据的图形与数值描述等等。即使是我们在上面使用的函数其实也是非常强大的,只是我们在上面使用了很多的默认的参数而简化了它们的调用而以。