R语言的学习(四)
一、直方图
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, warn.unused = TRUE, ...)
二、核密度函数
与直方图相配套的是核密度估计函数density(),作用是已知其样本,估计其密度
使用方法:
density(x,bw="nrdo",adjust=1,kernel=c("guassian","epanechnikov","rectangular","triangular","biweight","cosine","optosine"),
windoe=kernel,width,
give.Rkern=FALSE,
n=512,from,to,cut=3,na.rm=FALSE)
其中x是由样本构成的向量,bw是带宽,当bw为省略值时,R软件会画出光滑的曲线
w<-c(75.0,64.0,47.4,66.9,62.2,66.2,58.7,63.5,66.6,64.0,57.0,69.0,56.9,50.0,72.0)
> hist(w,freq=FALSE)
> lines(density(w),col="blue")
> x<-44:76
> lines(x,dnorm(x,mean(w),sd(w)),col="red")
freq:TRUE是绘出频率直方图
counts是绘出频率直方图
FALSE是绘出密度直方图
蓝色的线是核密度估计曲线,红色的线是正态分布的概率密度曲线
三、经验分布
直方图的制作适合于总体为连续分布的场合,对于一般的总体分布,若要估计它的 总体分布函数F(x),可用经验分布函数做估计
用法:
ecdf(x)
plot(x,verticals=FALSE)
verticals为FALSE为不画竖线,为TRUE为画竖线,
ex:
plot(ecdf(w),verticals=TRUE,do.p=FALSE)
> x<-44:78
> lines(x,pnorm(x,mean(w),sd(w)))
do.p为FALSE代表不画点处的记号,TRUE或缺省画记号
四QQ图
不论是直方还是经验分布图,要从比较上鉴别样本是否近似于某种类型的分布是困难的,QQ图可以帮助我们鉴别样本的分布是否近似于某种类型的分布
R软件中提供了画正态QQ图和相应直线的方法
qqnorm(y,...)
qqnorm(y,ylim,main="Normal Q-Q plot",
xlab="Theoretical Quantiles",
ylab="Sample Quantiles",plot.it=TRUE,
datax=FALSE,...)
qqline(y,datax=FALSE,...)
qqplot(x,y,plot.it=TRUE,xlab=deparse(substitute(x)),
ylab=deparse(substitute(y)),...)
#deparse:Turn unevaluated expressions into character strings.
EX:
w
[1] 75.0 64.0 47.4 66.9 62.2 66.2 58.7 63.5 66.6 64.0 57.0 69.0 56.9 50.0
[15] 72.0
> qqnorm(w);qqline(w)
从正态QQ图来看,样本的数据基本可以看成来自正态总体
对于对数正态,指数等分布也可以做相应的QQ图,用以鉴别数据知否来自某一类型的总体分布
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步