R语言中的概率分布函数怎么使用
本篇内容介绍了"R语言中的概率分布函数怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
R中拥有众多的概率函数,既有概率密度函数,也有概率分布函数,可以调用函数,也可以产生随机数,其使用规则如下所示:
[dpqr]distribution_abbreviation()
其中前面字母为函数类型,含义如下:
d=密度函数(density)
p=分布函数(distributionfunction)
q=分位数函数(quantilefunction)
r=生成随机数(随机偏差)
distribution_abbreviation为概率分布名称的缩写,R中的概率分布类型如下所示:
对于概率密度函数和分布函数,其使用方法举例如下:例如正态分布概率密度函数为dnorm(),概率分布函数pnorm(),生成符合正态分布的随机数rnorm()。
x=pretty(c(-3,3),100)y=dnorm(x)plot(x, y)
作图结果如下所示:
对于生成随机数,其使用方法举例如下:
rnorm(n, mean=0, sd=1) #产生n个正态分布的数,mena平均值,sd标准差runif(n, min=0, max=1) #产生n个均匀分布的数,min最小值,max最大值
接下来我们产生符合正态分布的随机数并作图:
library(ggplot2)y=rnorm(10000, mean=0, sd=1)x=1:10000data=data.frame(x=x, y=y)ggplot(data, aes(x=y)) + geom_histogram(position='identity', alpha=0.5, binwidth=0.1, aes(y=..density..), fill="cyan") + stat_density(geom='line', position='identity', color="cyan4")
作图结果如下所示:
可以看到数据分布图像与正态函数图像基本相同。R也可以产生多维随机变量,例如MASS包中的mvrnorm()函数可以产生一维或者多维正态分布的随机变量,其使用方法如下所示:
mvrnorm(n=1, mu, Sigma...)
其中n为随机数的个数,mu为数值向量,给出均值,Sigma为对称的数值矩阵给出协方差矩阵。
当有多个随机变量都服从正态分布时,为多元正态性。接下来我们产生相关系数不同(1、0.75、0.25、0)的二维正太随机变量,并绘制其密度图,来观察区别,具体如下:
library(MASS) #相关系数1Sigma1=matrix(c(1, 1, 1, 1), 2, 2) X1=mvrnorm(n=1000, c(0, 0), Sigma1) #总共1000个点K1=kde2d(X1[,1], X1[,2], n=100) #n为估计密度所用点数,不能太大col.palette=colorRampPalette(c("white","red")) #自定义颜色filled.contour(K1, color=col.palette)#相关系数0.75Sigma2=matrix(c(1, 0.75, 0.75, 1), 2, 2) X2=mvrnorm(n=1000, c(0, 0), Sigma2)K2=kde2d(X2[,1], X2[,2], n=100)filled.contour(K2, color=col.palette)#相关系数0.25Sigma3=matrix(c(1, 0.25, 0.25, 1), 2, 2) X3=mvrnorm(n=1000, c(0, 0), Sigma3)K3=kde2d(X3[,1], X3[,2], n=100)filled.contour(K3, color=col.palette)#相关系数0Sigma4=matrix(c(1, 0, 0, 1), 2, 2) X4=mvrnorm(n=1000, c(0, 0), Sigma4)K4=kde2d(X4[,1], X4[,2], n=100)filled.contour(K4, color=col.palette)
作图结果如下所示:
上面程序中kde2d()函数根据二维坐标来估计数据点的分布密度,并画出等密度线(可以使用contour(K4, lwd=1,add=T, xlim, ylim...)函数添加边界线并标注数据比例),然后自定义颜色并并填充进去形成图像,实际上展示了三维信息。但是我们仍可以用persp()函数来展示出3D图:
persp(K1, col="orange", theta=95, phi=30, d=2)
"R语言中的概率分布函数怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!