normMixMH {Bolstad2}R Documentation

Sample from a normal mixture model using Metropolis-Hastings

Description

normMixMH uses the Metropolis-Hastings algorithm to draw a sample from a univariate target distribution that is a mixture of two normal distributions using an independent normal candidate density or a random walk normal candidate density.

Usage

  normMixMH(theta0, theta1, p,  candidate,
            steps = 1000, type = 'ind',
            randomSeed = NULL, startValue = NULL)

Arguments

theta0

A vector of length two containing the mean and standard deviation of the first component of the normal mixture

theta1

A vector of length two containing the mean and standard deviation of the second component of the normal mixture

p

A value between 0 and 1 representing the mixture proportion, so that the true density is p\times f(μ1,σ1) + (1-p)\times f(μ_2,σ_2)

candidate

A vector of length two containing the mean and standard deviation of the candidate density

steps

The number of steps to be used in the Metropolis-Hastings algorithm. steps must be greater than 100

type

Either 'ind' or 'rw' depending on whether a independent candidate density or random walk candidate density is to be used. 'i' and 'r' may be used as alternative compact notation

startValue

A starting value for the chain

randomSeed

A seed for the random number generator. Only used when you want the same sequence of random numbers in the chain

Value

A vector containing a sample from the normal mixture distribution.

Examples

## Set up the normal mixture
theta0 <- c(0,1)
theta1 <- c(3,2)
p <- 0.8

## Sample from an independent N(0,3^2) candidate density
candidate <- c(0, 3)
MCMCsampleInd <- normMixMH(theta0, theta1, p, candidate)


## If we wish to use the alternative random walk N(0, 0.5^2)
## candidate density
candidate <- c(0, 0.5)
MCMCsampleRW <- normMixMH(theta0, theta1, p, candidate, type = 'rw')

[Package Bolstad2 version 1.0-28 Index]