OptimGumbelMixParams.Rd
Calculate the parameters which minimise the negative log- likelihood of a mixture of two Weibull Extreme Value distributions.
OptimGumbelMixParams( max_tControl_vec, pathwaySize_vec, initialVals = c(p = 0.5, mu1 = 1, s1 = 0.5, mu2 = 1, s2 = 0.5), optimMethod = "L-BFGS-B", lowerBD = c(0, -Inf, 0, -Inf, 0), upperBD = c(1, Inf, Inf, Inf, Inf) )
max_tControl_vec | A vector of the maximum absolute \(t\)-scores for
each pathway (returned by the |
---|---|
pathwaySize_vec | A vector of the number of genes in each pathway. |
initialVals | A named vector of initial values for the Weibull parameters. The values are
|
optimMethod | Which numerical optimization routine to pass to the
|
lowerBD | A vector of the lower bounds on the |
upperBD | A vector of the upper bounds on the |
A named vector of the estimated values for the parameters which minimize the negative log-likelihood of the mixture Weibull Extreme Value distributions.
The likelihood function is equation (4) in Chen et al (2008): a
mixture of two Gumbel Extreme Value probability density functions, with
mixing proportion \(p\). Within the code of this function, the values
mu1
, mu2
and s1
, s2
are placeholders for the
mean and precision, respectively.
A computational note: the "L-BFGS-B"
option within the
optim
function requires a bounded function or
likelihood. We therefore replaced Inf
with 10 ^ 200
in the
check for boundedness. As we are attempting to minimise the negative log-
likelihood, this maximum machine value is effectively +Inf
.
See https://doi.org/10.1093/bioinformatics/btn458 for more information.
# DO NOT CALL THIS FUNCTION DIRECTLY. # Use SuperPCA_pVals() instead. if (FALSE) { ### Load the Example Data ### data("colon_pathwayCollection") ### Simulate Maximum Absolute Control t-Values ### # The SuperPCA algorithm defaults to 20 threshold values; the example # pathway collection has 15 pathways. t_mat <- matrix(rt(15 * 20, df = 5), nrow = 15) absMax <- function(vec){ vec[which.max(abs(vec))] } tAbsMax_num <- apply(t_mat, 1, absMax) ### Calculate Optimal Parameters for the Gumbel Distribution ### OptimGumbelMixParams( max_tControl_vec = tAbsMax_num, pathwaySize_vec = lengths(colon_pathwayCollection$pathways) ) }