正态分布函数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,因此,认为来自正态分布的总体.