View source: R/calc_FiniteMixture.R
calc_FiniteMixture | R Documentation |
This function fits a k-component mixture to a De distribution with differing known standard errors. Parameters (doses and mixing proportions) are estimated by maximum likelihood assuming that the log dose estimates are from a mixture of normal distributions.
calc_FiniteMixture(
data,
sigmab,
n.components,
grain.probability = FALSE,
dose.scale,
pdf.weight = TRUE,
pdf.sigma = "sigmab",
pdf.colors = "gray",
pdf.scale,
plot.proportions = TRUE,
plot = TRUE,
...
)
data |
RLum.Results or data.frame (required):
for data.frame: two columns with De |
sigmab |
numeric (required): spread in De values given as a fraction (e.g. 0.2). This value represents the expected overdispersion in the data should the sample be well-bleached (Cunningham & Wallinga 2012, p. 100). |
n.components |
numeric (required):
number of components to be fitted. If a vector is provided (e.g. |
grain.probability |
logical (with default): prints the estimated probabilities of which component each grain is in |
dose.scale |
numeric:
manually set the scaling of the y-axis of the first plot with a vector
in the form of |
pdf.weight |
logical (with default):
weight the probability density functions by the components proportion (applies only
when a vector is provided for |
pdf.sigma |
character (with default):
if |
pdf.colors |
character (with default):
colour coding of the components in the the plot.
Possible options are |
pdf.scale |
numeric: manually set the max density value for proper scaling of the x-axis of the first plot |
plot.proportions |
logical (with default):
plot graphics::barplot showing the proportions of components if
|
plot |
logical (with default): plot output |
... |
further arguments to pass. See details for their usage. |
This model uses the maximum likelihood and Bayesian Information Criterion (BIC) approaches.
Indications of overfitting are:
increasing BIC
repeated dose estimates
covariance matrix not positive definite
covariance matrix produces NaN
convergence problems
Plot
If a vector (c(k.min:k.max)
) is provided
for n.components
a plot is generated showing the the k components
equivalent doses as normal distributions. By default pdf.weight
is
set to FALSE
, so that the area under each normal distribution is
always 1. If TRUE
, the probability density functions are weighted by
the components proportion for each iteration of k components, so the sum of
areas of each component equals 1. While the density values are on the same
scale when no weights are used, the y-axis are individually scaled if the
probability density are weighted by the components proportion.
The standard deviation (sigma) of the normal distributions is by default
determined by a common sigmab
(see pdf.sigma
). For
pdf.sigma = "se"
the standard error of each component is taken
instead.
The stacked graphics::barplot shows the proportion of each component (in
per cent) calculated by the FFM. The last plot shows the achieved BIC scores
and maximum log-likelihood estimates for each iteration of k.
Returns a plot (optional) and terminal output. In addition an RLum.Results object is returned containing the following elements:
.$summary |
data.frame summary of all relevant model results. |
.$data |
data.frame original input data |
.$args |
list used arguments |
.$call |
call the function call |
.$mle |
covariance matrices of the log likelihoods |
.$BIC |
BIC score |
.$llik |
maximum log likelihood |
.$grain.probability |
probabilities of a grain belonging to a component |
.$components |
matrix estimates of the de, de error and proportion for each component |
.$single.comp |
data.frame single component FFM estimate |
If a vector for n.components
is provided (e.g. c(2:8)
),
mle
and grain.probability
are lists containing matrices of the
results for each iteration of the model.
The output should be accessed using the function get_RLum
0.4.2
Burow, C., 2024. calc_FiniteMixture(): Apply the finite mixture model (FMM) after Galbraith (2005) to a given De distribution. Function version 0.4.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., 2024. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 0.9.24. https://CRAN.R-project.org/package=Luminescence
Christoph Burow, University of Cologne (Germany)
Based on a rewritten S script of Rex Galbraith, 2006.
, RLum Developer Team
Galbraith, R.F. & Green, P.F., 1990. Estimating the component ages in a finite mixture. Nuclear Tracks and Radiation Measurements 17, 197-206.
Galbraith, R.F. & Laslett, G.M., 1993. Statistical models for mixed fission track ages. Nuclear Tracks Radiation Measurements 4, 459-470.
Galbraith, R.F. & Roberts, R.G., 2012. Statistical aspects of equivalent dose and error calculation and display in OSL dating: An overview and some recommendations. Quaternary Geochronology 11, 1-27.
Roberts, R.G., Galbraith, R.F., Yoshida, H., Laslett, G.M. & Olley, J.M., 2000. Distinguishing dose populations in sediment mixtures: a test of single-grain optical dating procedures using mixtures of laboratory-dosed quartz. Radiation Measurements 32, 459-465.
Galbraith, R.F., 2005. Statistics for Fission Track Analysis, Chapman & Hall/CRC, Boca Raton.
Further reading
Arnold, L.J. & Roberts, R.G., 2009. Stochastic modelling of multi-grain equivalent dose (De) distributions: Implications for OSL dating of sediment mixtures. Quaternary Geochronology 4, 204-230.
Cunningham, A.C. & Wallinga, J., 2012. Realizing the potential of fluvial archives using robust OSL chronologies. Quaternary Geochronology 12, 98-106.
Rodnight, H., Duller, G.A.T., Wintle, A.G. & Tooth, S., 2006. Assessing the reproducibility and accuracy of optical dating of fluvial deposits. Quaternary Geochronology 1, 109-120.
Rodnight, H. 2008. How many equivalent dose values are needed to obtain a reproducible distribution?. Ancient TL 26, 3-10.
calc_CentralDose, calc_CommonDose, calc_FuchsLang2001, calc_MinDose
## load example data
data(ExampleData.DeValues, envir = environment())
## (1) apply the finite mixture model
## NOTE: the data set is not suitable for the finite mixture model,
## which is why a very small sigmab is necessary
calc_FiniteMixture(ExampleData.DeValues$CA1,
sigmab = 0.2, n.components = 2,
grain.probability = TRUE)
## (2) repeat the finite mixture model for 2, 3 and 4 maximum number of fitted
## components and save results
## NOTE: The following example is computationally intensive. Please un-comment
## the following lines to make the example work.
FMM<- calc_FiniteMixture(ExampleData.DeValues$CA1,
sigmab = 0.2, n.components = c(2:4),
pdf.weight = TRUE, dose.scale = c(0, 100))
## show structure of the results
FMM
## show the results on equivalent dose, standard error and proportion of
## fitted components
get_RLum(object = FMM, data.object = "components")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.