Normal kernel density estimate for nonparametric EM output
density.npEM.RdTakes an object of class npEM and returns an object of class
density giving the kernel density estimate for the selected
component and, if applicable, the selected block.
Usage
# S3 method for class 'npEM'
density(x, u=NULL, component=1, block=1, scale=FALSE, ...)Arguments
- x
An object of class
npEMsuch as the output of thenpEMorspEMsymlocfunctions.- u
Vector of points at which the density is to be evaluated
- component
Mixture component number; should be an integer from 1 to the number of columns of
x$posteriors.- block
Block of repeated measures. Only applicable in repeated measures case, for which
x$blockidexists; should be an integer from 1 tomax(x$blockid).- scale
Logical: If TRUE, multiply the density values by the corresponding mixing proportions found in
x$lambdahat- ...
Additional arguments; not used by this method.
Details
The bandwidth is taken to be the same as that used to produce the npEM
object, which is given by x$bandwidth.
Value
density.npEM returns a list of type "density". See
density for details. In particular, the output of
density.npEM may be used directly by functions such as
plot or lines.
Examples
## Look at histogram of Old Faithful waiting times
data(faithful)
Minutes <- faithful$waiting
hist(Minutes, freq=FALSE)
## Superimpose equal-variance normal mixture fit:
set.seed(100)
nm <- normalmixEM(Minutes, mu=c(50,80), sigma=5, arbvar=FALSE, fast=TRUE)
#> number of iterations= 10
x <- seq(min(Minutes), max(Minutes), len=200)
for (j in 1:2)
lines(x, nm$lambda[j]*dnorm(x, mean=nm$mu[j], sd=nm$sigma), lwd=3, lty=2)
## Superimpose several semiparametric fits with different bandwidths:
bw <- c(1, 3, 5)
for (i in 1:3) {
sp <- spEMsymloc(Minutes, c(50,80), bw=bw[i], eps=1e-3)
for (j in 1:2)
lines(density(sp, component=j, scale=TRUE), col=1+i, lwd=2)
}
legend("topleft", legend=paste("Bandwidth =",bw), fill=2:4)