赞
踩
给定一个数据集,需要观察这些样本的分布情况,往往我们会采用直方图的方法来进行直观的展现。该方法简单,容易计算,但是直方图存在着如下的两大问题:
针对直方图的问题,这里提到了核密度图。核密度估计(kernel density estimation)是在概率论中用来估计未知的密度函数,属于非参数检验方法之一,由Rosenblatt (1955)和Emanuel Parzen (1962)提出,又名Parzen窗(Parzen window)。Ruppert和Cline基于数据集密度函数聚类算法提出修订的核密度估计方法。
核密度估计的思想原理并不是那么复杂,在我们对每一事物的出现概率进行分析时,如果现实中出现了某个数字,则会认为该数字出现的概率比较大,和这个数比较近的数的概率密度也会比较大,而那些离这个数远的数的概率密度会比较小。基于这种想法,针对观察中的第一个数,我们都可以f(x-xi)去拟合我们想象中的那个远小近大概率密度,当然也可以使用其他的方式,但是思类似。
在R语言中,核密度图可以单独绘制也可以绘制在其他图形中。
#直接绘制核密度图
plot(density(mtcars$mpg))
polygon(density(mtcars$mpg),col = "red") #填充为红色
hist(mtcars$mpg,freq=FALSE) #必须设置freq参数为显示频率
lines(density(mtcars$mpg)) #在已有图形上加核密度图
核密度函数的一个重要功能是可以比较不同数据之间的差异性,需要安装sm
包,即可以比较。
library(sm)
attach(mtcars)
cyl.f <- factor(cyl, levels= c(4,6,8), #创建分组因子
labels = c("4 cylinder", "6 cylinder",
"8 cylinder"))
sm.density.compare(mpg, cyl, xlab="Miles Per Gallon")
title(main="MPG Distribution by Car Cylinders")
detach(mtcars)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。