R: Normal kernel density estimate for nonparametric EM output

density.npEM {mixtools} | R Documentation

## Normal kernel density estimate for nonparametric EM output

### Description

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.

### Usage

    ## S3 method for class 'npEM'
    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.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`.

### See Also

`npEM`, `spEMsymloc`, `plot.npEM`

### 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)
    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)

[Package mixtools version 1.2.0 Index]