| 1 | #' Among a collection of models, this function constructs a subcollection of models with |
| 2 | #' models having strictly different dimensions, keeping the model which minimizes |
| 3 | #' the likelihood if there were several with the same dimension |
| 4 | #' |
| 5 | #' @param LLF a matrix, the first column corresponds to likelihoods for several models |
| 6 | #' the second column corresponds to the dimensions of the corresponding models. |
| 7 | #' |
| 8 | #' @return a list with indices, a vector of indices selected models, |
| 9 | #' and D1, a vector of corresponding dimensions |
| 10 | #' @export |
| 11 | #' |
| 12 | modelSelection = function(LLF) |
| 13 | { |
| 14 | D = LLF[,2] |
| 15 | D1 = unique(D) |
| 16 | |
| 17 | indices = rep(1, length(D1)) |
| 18 | #select argmax MLE |
| 19 | if (length(D1)>2) |
| 20 | { |
| 21 | for (i in 1:length(D1)) |
| 22 | { |
| 23 | A = c() |
| 24 | for (j in 1:length(D)) |
| 25 | { |
| 26 | if(D[[j]]==D1[[i]]) |
| 27 | a = c(a, LLF[j,1]) |
| 28 | } |
| 29 | b = max(a) |
| 30 | #indices[i] : first indices of the binary vector where u_i ==1 |
| 31 | indices[i] = which.max(LLF == b) |
| 32 | } |
| 33 | } |
| 34 | |
| 35 | return (list(indices=indices,D1=D1)) |
| 36 | } |