您的位置首页生活百科

R软件中经验分布函数的应用

R软件中经验分布函数的应用

的有关信息介绍如下:

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)