经验分布函数是将数据按照从小到大的顺序排列后,统计其出现的累计概率发布的一种简单算法。经验分布函数对离散型和连续性随机变量都适用。R软件的代码是很容易实现的。
工具/原料
R
方法/步骤
1、本文以R中的基础数据包iris为例。#数据集data<-iris;head(data)x<-iris$Species;head(x)y<-iris$Sepal.Length;head(y)
2、R中的经验分布函数ecdf即可实现经验分布函数的计算。但是ecdf表示的是一个函数,对其应用后才出现函数值。Fnx<-ecdf(x)Fny<-ecdf(y)Fnx#返回函数head(Fnx(x))#返回x的百分比head(Fny(y))
3、对于联系变量可以看到计算出的四分位数。对于分类变量,可以类别数及累计概率。#查看统计值summary(Fnx)summary(Fny)summary.stepfun(Fnx)summary.stepfun(Fny)
4、经验分布图可以用函数plot.e罕铞泱殳cdf,y也可以直接用plot函数。plot.ecdf(Fnx)libr锾攒揉敫ary(graphics)op<-par(mfrow=c(2,1),mgp=c(1.5,0.8,0),mar=.1+c(3,3,2,1))plot(Fnx)plot(Fny,verticals=TRUE)#添加垂直线par(op)
5、设置图形参数,将经验分布函数图额鹿赤柝画的更美观。plot(Fny,verticals=TRUE,do.points=T伊怕锱鳏RUE,lwd=2,col.points="steelblue",cex=0.1,col.hor="red3",col.vert="bisque",main="经验分布图")mtext("lwd=2",adj=0)
6、为了方便观看每个点的对应横坐标轴,可以添加竖直坐标线。yy<-unique(sort(y),knots(Fny))lines(yy,Fny(yy),col="blue")abline(v=knots(Fny),lty=2,col="gray70")par(op)