1. 概率函数
概率论是统计学的基础,R有许多用于处理概率,概率分布以及随机变量的函数。R对每一个概率分布都有一个简称,这个名称用于识别与分布相联系的函数。这部分涉及到很多统计学基础的理论知识,比如随机试验,样本空间,对立与互斥,随机事件与必然事件,概率密度,概率分布等。
2. R概率分布
- d 概率密度函数(probablity density function)
- p 分布函数(distribution,由于字母d已经被用来表示概率密度函数,所以p用来表示分布函数)
- q 分布函数的反函数(quantile分位数)
- r 产生相同分布的随机数(random)
所以分别在对应的分布函数前加上d,p,q,r来构成对应的分布函数。
2.1 正态分布
图1 正态分布函数dnorm,pnorm,qnorm,rnorm则分别是正态分布函数。可以通过?Normal来访问帮助
rnorm(n=100,mean=15,sd=2)#生成均值为15,方差为2 的100个符合正态分布的随机数
round(rnorm(n=100,mean=15,sd=2))#对生成的均值为15,方差为2 的100个符合正态分布的随机数进行取整
2.2 离散分布
图2 离散分布相关的函数2.2.1 几何分布
以此类推,d,p,q,r+geom来构成几何分布函数,?Geometric来查看几何分布函数的帮助信息
2.2.1 超几何分布
以此类推,d,p,q,r+geom来构成超几何分布函数,?Geometric来查看超几何分布函数的帮助信息
3. 分布函数区别以及可视化
我们处理统计数据,通常针对不同的数据用不同的分布函数。那么我们就必须要会判断何种数据属于何种分布,并对其进行合理的检验。
3.1 生成正态分布数据并绘图
x<-rnorm(n=100,mean=15,sd=2)#生成100个符合正态分布的随机数
qqnorm(x)#绘图
3.2 生成均匀分布随机数
可以使用runif函数(r+unif),runif可以生成0到1之间的随机数。但是会出现每次运行后生成的随机数都不一样,我们可以在运行runif代码前先运行set.seed(666)来绑定这个生成好的随机数,下次还想再使用这组随机数时就可以先运行set.seed(666)再运行runif来获取。但你会发现将生成的随机数赋值给一个变量就可以了。
runif(50)#生成五十个0到1的随机数
#set.seed(666)#会使下一步的代码生成的随机数固定
#runif(50,min=1,max=20)#生成五十个1到20的随机数
图5 生成固定值的随机数
3.3 生成符合gamma分布的的概率密度
dgamma(c(1:9),shape=2,rate=1)#生成gamma分布的概率密度
图6 生成gamma分布的概率密度
网友评论