正态分布函数dnorm()、pnorm()、qnorm()和rnorm()的使用方法:

密度函数: dnorm(x, mean=0, sd=l, log=FALSE)

分布函数: pnorm(q, mean=0, sd=l, lower.tail=TRUE, log.p=FALSE)

计算下分位点: qnorm(p, mean=0, sd=l, lower.tail=TRUE, log.p=FALSE)

产生随机数: rnorm(n,mean=0,sd=l)

说明:

log.p是逻辑变量,当它为真(TRUE)时,函数的返回值是对数正态分布.

lower.tail是逻辑变量,当它为真(TRUE,缺省值)时,分布函数的计算公式为F(z)=P{X≤z},FALSE时,分布函数的计算公式为F(z)=P{X>z}.

例如:

> dnorm(2,0,1)

[1] 0.05399097

> pnorm(0,0,1)

[1] 0.5

其他的分布函数也有类似的用法:

分布函数或分布律

R中的名称

附加参数

beta

beta

shapel, shape2, ncp

binomial

binom

size, prob

Cauchy

cauchy

location, scale

chi-squared

chisq

df, ncp

exponential

exp

rate

F

f

dfl, df2, ncp

gamma

gamma

shape, scale

geometric

geom

prob

hypergeometric

hyper

m, n, k

log-normal

lnorm

meanlog, sdlog

logistic

logis

location, scale

negative binomial

nbinom

size, prob

normal

norm

mean, sd

Poisson

pois

lambda

Student"s t

t

df, ncp

uniform

unif

min, max

Weibull

weibull

shape, scale

Wilcoxon

wilcox

m, n

不同的前缀表示不同的意义:

d-概率密度函数或分布律;

p-分布函数F(x);

q-分布函数的反函数,即给定概率p后,求其下分位点;

r-仿真(产生相同分布的随机数)

图像

直方图hist(x)

完整的格式是:

hist(x, breaks = "Sturges", freq = NULL, probability = !freq,include.lowest = TRUE, right = TRUE,density = NULL, angle = 45, col = NULL, border = NULL,main = paste("Histogram of" , xname),xlim = range(breaks), ylim = NULL,xlab = xname, ylab,axes = TRUE, plot = TRUE,labels = FALSE,nclass = NULL, ...)

经验分布

ecdf(x)

plot(y, ..., ylab="Fn(x)", verticals = FALSE,col.01line = "gray70")

说明:

其中,在函数ecdf()中的x是由观察值得到的数值型向量,而在函数plot()中的x是由函数ecdf()生成的向量.verticals是逻辑变量,当verticals=TRUE表示画竖线;否则(FALSE,缺省值)不画坚线.

例题:15位学生的体重数据w,建立一个脚本

w <- c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5,66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0)

plot(ecdf(w),verticals=TRUE,do.p=FALSE) #do.p是逻辑变量=FALSE表示不画点处的记号x=44:78

lines(x,pnorm(x,mean(w),sd(w)))

QQ图

在R软件中,函数qqnorm()和qqline()提供了画正态QQ图和相应直线的方法。例如:绘制学生体重数据的qq图:

w <- c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5,66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0)

qqnorm(w);qqline(w)

茎叶图、箱线图及五数总括

茎叶图

与直方图比较,茎叶图更能细致地看出数据分布的结构,下面用具体的例子来说明茎叶图的意义.

例:对某班学生的体重做出其茎叶图,

在R软件中,用stem()函数作茎叶图

> w =c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5,66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0)

> stem(w)

stem()函数的使用方法是:

stem(x, scale=1,width=80, atom=le-08)

其中x是数据向量. scale控制绘出茎叶图的长度. width绘图的宽度.atom是容差,如果选择scale=2,即将10个个位数俞成两段,0~4为一段,5~9为另一段。

箱线图boxplot(x)

如仍对上述体重数据w作图。

此外boxplot还有以下两种用法:

boxplot(formula, data = NULL, ..., subset, na.action = NULL)

boxplot(x, ..., range = 1.5, width = NULL, varwidth = FALSE,notch = FALSE, outline = TRUE, names, plot = TRUE,border = par("fg"), col = NULL, log = "",pars = list(boxwex = 0.8, staplewex = 0.5,outwex = 0.5),horizontal = FALSE, add = FALSE, at = NULL)

五数总括

在探索性数据分析中,能反映数据重要特征的五个数:中位数,下四分位数,上四分位数,最小值mim和最大值max.在R软件中,函数fivenum()计算样本的五数总括,使用格式为

fivenum(x, na.rm=TRUE)

其中x是样本数据,na. rm是逻辑变量,当na.rm=TRUE(缺省值)时,在计算五数总括之前,所有的NA和NAN数据将被去掉。

例:学生考试成绩的五数总括

> x<-c(25, 45, 50, 54, 55, 61, 64, 68, 72, 75, 75,78, 79, 81, 83, 84, 84, 84, 85, 86, 86, 86,87, 89, 89, 89, 90, 91, 91, 92, 100)

> fivenum(x)

[1] 25 70 84 88 100

正态性检验与分布拟合检验

正态性W检验方法

利用Shapiro-Wilk(夏皮罗一威尔克)W统计量作正态性检验,因此称这种检验方法为正态W检验方法,函数shapiro .test()提供W统计量和相应的p值,当p值小于某个显著性水平Q(比如0.05),则认为样本为不是来自正态分布的总体;否则承认样本来自正态分布的总体。

shapiro.test (x)

>w=c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5,66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0)

>shapiro.test(w)

Shapiro-Wilk normality test

data: w

W = 0.9686, p-value = 0.8371

p值为0.8371>0.05,因此,认为来自正态分布的总体.