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 #'

11 #' @export

12 filterModels = function(LLF)

13 {

14 D = LLF[,2]

15 D1 = unique(D)

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 }

35 return (list(indices=indices,D1=D1))

36 }