X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=R%2FmodelSelection.R;h=86e2efd563829e9474b6769a03a76803b907be16;hb=31ef8a5c9bbaefcf40d2c2bad43b27d469c28c34;hp=5a79bb6326299e8d852aef47566288f24a2bbb25;hpb=f2a9120810d7e1e423c7b5c2c4320f4e27221f50;p=valse.git diff --git a/R/modelSelection.R b/R/modelSelection.R index 5a79bb6..86e2efd 100644 --- a/R/modelSelection.R +++ b/R/modelSelection.R @@ -1,36 +1,40 @@ #' Among a collection of models, this function constructs a subcollection of models with -#' models having strictly different dimensions, keeping the model which minimizes +#' models having strictly different dimensions, keeping the model which minimizes #' the likelihood if there were several with the same dimension #' #' @param LLF a matrix, the first column corresponds to likelihoods for several models -#' the second column corresponds to the dimensions of the corresponding models. +#' the second column corresponds to the dimensions of the corresponding models. #' -#' @return a list with indices, a vector of indices selected models, -#' and D1, a vector of corresponding dimensions +#' @return a list with indices, a vector of indices selected models, +#' and D1, a vector of corresponding dimensions #' @export #' modelSelection = function(LLF) { - D = LLF[,2] - D1 = unique(D) - - indices = rep(1, length(D1)) - #select argmax MLE - if (length(D1)>2) - { - for (i in 1:length(D1)) - { - A = c() - for (j in 1:length(D)) - { - if(D[[j]]==D1[[i]]) - a = c(a, LLF[j,1]) - } - b = max(a) - #indices[i] : first indices of the binary vector where u_i ==1 - indices[i] = which.max(vec_bin(LLF,b)[[1]]) - } - } - - return (list(indices=indices,D1=D1)) + D = LLF[,2] + D1 = unique(D) + + indices = rep(1, length(D1)) + #select argmax MLE + if (length(D1)>2) + { + for (i in 1:length(D1)) + { + A = c() + for (j in 1:length(D)) + { + if(D[[j]]==D1[[i]]) + a = c(a, LLF[j,1]) + } + b = max(a) + #indices[i] : first indices of the binary vector where u_i ==1 + indices[i] = which.max(LLF == b) + } + } + + return (list(indices=indices,D1=D1)) } + +#TODO: +## Programme qui sélectionne un modèle +## proposer à l'utilisation différents critères (BIC, AIC, slope heuristic)