OptimGumbelMixParams.RdCalculate 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) ) }