# density.spEM: Normal kernel density estimate for semiparametric EM output In mixtools: Tools for Analyzing Finite Mixture Models

## Description

Takes an object of class `spEM` and returns an object of class `density` giving the kernel density estimate.

## Usage

 ```1 2``` ```## S3 method for class 'spEM' density(x, u=NULL, component=1, block=1, scale=FALSE, ...) ```

## Arguments

 `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.

## 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.spEM` returns a list of type `"density"`. See `density` for details. In particular, the output of `density.spEM` may be used directly by functions such as `plot` or `lines`.

`spEM`, `spEMsymloc`, `plot.spEM`
 ```1 2 3 4 5 6 7 8 9``` ``` set.seed(100) mu <- matrix(c(0, 15), 2, 3) sigma <- matrix(c(1, 5), 2, 3) x <- rmvnormmix(300, lambda = c(.4,.6), mu = mu, sigma = sigma) d <- spEM(x, mu0 = 2, blockid = rep(1,3), constbw = TRUE) plot(d, xlim=c(-10, 40), ylim = c(0, .16), xlab = "", breaks = 30, cex.lab=1.5, cex.axis=1.5) # plot.spEM calls density.spEM here ```