Description Usage Arguments Value See Also Examples
Function for converting objects of class rMix
to objects of class datMix
, so that they could be passed to functions estimating the mixture complexity.
1 2 |
obj |
object of class |
theta.bound.list |
named list specifying the upper and lower bounds for the component parameters. The names of the list elements have to match the names of the formal arguments of the functions |
MLE.function |
function (or a list of functions) which takes the data as input and outputs the maximum likelihood estimator for the parameter(s) the component distribution |
Hankel.method |
character string in |
Hankel.function |
function required for the moment estimation via |
Object of class datMix
with the following attributes (for further explanations see above):
dist |
character string giving the abbreviated name of the component distribution, such that the function |
discrete |
logical flag indicating whether the mixture distribution is discrete. |
theta.bound.list |
named list specifying the upper and lower bounds for the component parameters. |
MLE.function |
function which computes the MLE of the component distribution |
Hankel.method |
character string taking on values |
Hankel.function |
function required for the moment estimation via |
datMix
for direct generation of a datMix
object from a vector of observations.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | ### generating 'Mix' object
normLocMix <- Mix("norm", discrete = FALSE, w = c(0.3, 0.4, 0.3), mean = c(10, 13, 17),
sd = c(1, 1, 1))
### generating 'rMix' from 'Mix' object (with 1000 observations)
set.seed(1)
normLocRMix <- rMix(1000, normLocMix)
### generating 'datMix' from 'R' object
## generate list of parameter bounds
norm.bound.list <- vector(mode = "list", length = 2)
names(norm.bound.list) <- c("mean", "sd")
norm.bound.list$mean <- c(-Inf, Inf)
norm.bound.list$sd <- c(0, Inf)
## generate MLE functions
# for "mean"
MLE.norm.mean <- function(dat) mean(dat)
# for "sd" (the sd function uses (n-1) as denominator)
MLE.norm.sd <- function(dat){
sqrt((length(dat) - 1) / length(dat)) * sd(dat)
}
# combining the functions to a list
MLE.norm.list <- list("MLE.norm.mean" = MLE.norm.mean,
"MLE.norm.sd" = MLE.norm.sd)
## function giving the j^th raw moment of the standard normal distribution,
## needed for calculation of the Hankel matrix via the "translation" method
## (assuming gaussian components with variance 1)
mom.std.norm <- function(j){
ifelse(j %% 2 == 0, prod(seq(1, j - 1, by = 2)), 0)
}
normLoc.dM <- RtoDat(normLocRMix, theta.bound.list = norm.bound.list,
MLE.function = MLE.norm.list, Hankel.method = "translation",
Hankel.function = mom.std.norm)
### using 'datMix' object to estimate the mixture
set.seed(0)
res <- paramHankel.scaled(normLoc.dM)
plot(res)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.