R软件中经验分布函数的应用
的有关信息介绍如下:经验分布函数是将数据按照从小到大的顺序排列后,统计其出现的累计概率发布的一种简单算法。经验分布函数对离散型和连续性随机变量都适用。R软件的代码是很容易实现的。
本文以R中的基础数据包iris为例。
#数据集
data<-iris;head(data)
x<-iris$Species;head(x)
y<-iris$Sepal.Length;head(y)
R中的经验分布函数ecdf即可实现经验分布函数的计算。但是ecdf表示的是一个函数,对其应用后才出现函数值。
Fnx<-ecdf(x)
Fny<-ecdf(y)
Fnx #返回函数
head(Fnx(x)) #返回x的百分比
head(Fny(y))
对于联系变量可以看到计算出的四分位数。对于分类变量,可以类别数及累计概率。
#查看统计值
summary(Fnx)
summary(Fny)
summary.stepfun(Fnx)
summary.stepfun(Fny)
经验分布图可以用函数plot.ecdf,y也可以直接用plot函数。
plot.ecdf(Fnx)
library(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)
设置图形参数,将经验分布函数图画的更美观。
plot(Fny, verticals = TRUE,do.points =TRUE,lwd=2,
col.points="steelblue", cex=0.1,
col.hor="red3", col.vert="bisque",main="经验分布图")
mtext("lwd = 2", adj =0)
为了方便观看每个点的对应横坐标轴,可以添加竖直坐标线。
yy <- unique(sort(y), knots(Fny))
lines(yy, Fny(yy), col = "blue")
abline(v = knots(Fny), lty = 2, col = "gray70")
par(op)