Learn R Programming

numOSL (version 2.8)

mcFMM: Finite mixture age model optimization (using a Markov chain Monte Carlo method)

Description

Sampling from the joint-likelihood functions of finite mixture age models (include the central age model) using a Markov chain Monte Carlo (MCMC) method.

Usage

mcCAM(EDdata, addsigma = 0, iflog = TRUE, 
      nsim = 50000, inis = list(), control.args = list())

mcFMM(EDdata, ncomp = 2, addsigma = 0, iflog = TRUE, nsim = 50000, inis = list(), control.args = list())

Value

Return an invisible list of S3 class object "mcAgeModels" including the following elements:

EDdata

equivalent dose values

addsigma

additional uncertainty

model

fitting model

iflog

transform equivalent dose values to log-scale or not

nsim

number of iterations

chains

simulated samples of parameters

Arguments

EDdata

matrix(required): a two-column matrix (i.e., equivalent dose values and
associated standard errors)

ncomp

integer(with default): number of components

addsigma

numeric(with default): additional uncertainty, i.e., the sigmab value

iflog

logical(with default): transform equivalent dose values to log-scale or not

nsim

integer(with default): deseried number of iterations

inis

list(with default): initial state of parameters.
Example: inis=list(p1=1,p2=1,mu1=5,mu2=10) in FMM2 (the sum of p1 and p2 will be normalized to 1 during the simulation)

control.args

list(with default): arguments used in the Slice Sampling algorithm, see details

Details

Function mcFMM is used for sampling from the joint-likelihood functions of finite mixture age models (include the central age model) using a Markov chain Monte Carlo sampling algorithm called Slice Sampling (Neal, 2003). Three arguments (control.args) are used for controling the sampling process:
(1) w: size of the steps for creating an interval from which to sample, default w=1;
(2) m: limit on steps for expanding an interval, m<=1 means no limit on the expandation, m>1 means the interval is expanded with a finite number of iterations, default m=-100;
(3) nstart: maximum number of trials for updating a variable in an iteration. It can be used for monitoring the stability of the simulation. For example, a MAM4 is likely to crash down for data sets with small numbers of data points or less dispersed distributions (see section 8.3 of Galbraith and Roberts, 2012 for a discussion), and sometimes more than one trial (i.e., using nstart>1) is required to complete the sampling process, default nstart=1.

References

Galbraith RF, Green P, 1990. Estimating the component ages in a finite mixture. International Journal of Radiation Applications and Instrumentation. Part D. Nuclear Tracks and Radiation Measurements, 17: 197-206.

Neal RM, 2003. "Slice sampling" (with discussion). Annals of Statistics, 31(3): 705-767. Software is freely available at https://glizen.com/radfordneal/slice.software.html.

Peng J, Dong ZB, Han FQ, 2016. Application of slice sampling method for optimizing OSL age models used for equivalent dose determination. Progress in Geography, 35(1): 78-88. (In Chinese).

See Also

mcMAM; reportMC; RadialPlotter; optimSAM; sensSAM; EDdata

Examples

Run this code
  # Not run.
  # data(EDdata)
  # Construct a MCMC chain for CAM.
  # obj<-mcCAM(EDdata$gl11,nsim=5000)
  # reportMC(obj,thin=2,burn=1e3)
  
  # Construct a MCMC chain for FMM3.
  # obj<-mcFMM(EDdata$gl11,ncomp=3,nsim=5000)
  # reportMC(obj,thin=2,burn=1e3)

Run the code above in your browser using DataLab