density.npEM {mixtools} | R Documentation |
Takes 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.
## S3 method for class 'npEM': density(x, u=NULL, component=1, block=1, scale=FALSE, ...)
x |
An object of class npEM such as the output
of the npEM or spEMsymloc functions. |
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$blockid exists; should be an integer from 1 to
max(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. |
The bandwidth is taken to be the same as that used to produce the npEM
object, which is given by x$bandwidth
.
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
.
## Look at histogram of Old Faithful waiting times data(faithful) Minutes <- faithful$waiting hist(Minutes, freq=FALSE) ## Superimpose equal-variance normal mixture fit: nm <- normalmixEM(Minutes, mu=c(50,80), sigma=5, arbvar=FALSE, fast=TRUE) 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]) 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)