X-Git-Url: https://git.auder.net/?p=valse.git;a=blobdiff_plain;f=pkg%2FR%2Fmain.R;h=ecfe506608ec257dd1fc9c189a85c2fe7c4bd2e4;hp=bff2ec5b70e971cae6f7bfa64cd7a728949144c8;hb=2e813ad23c796bbed3d5ba685b8fa002bdc6689d;hpb=08f4604c778da8af7e26b52b1d433a6be82c3139 diff --git a/pkg/R/main.R b/pkg/R/main.R index bff2ec5..ecfe506 100644 --- a/pkg/R/main.R +++ b/pkg/R/main.R @@ -102,19 +102,18 @@ valse = function(X, Y, procedure='LassoMLE', selecMod='DDSE', gamma=1, mini=10, } # Get summary "tableauRecap" from models - tableauRecap = do.call( rbind, lapply( models_list, function(models) { + tableauRecap = do.call( rbind, lapply( seq_along(models_list), function(i) { + models <- models_list[[i]] #Pour un groupe de modeles (même k, différents lambda): - llh = matrix(ncol = 2) - for (l in seq_along(models)) - llh = rbind(llh, models[[l]]$llh) - LLH = llh[-1,1] - D = llh[-1,2] - k = length(models[[1]]$pi) - cbind(LLH, D, rep(k, length(models)), 1:length(models)) + LLH <- sapply( models, function(model) model$llh ) + k == length(models[[1]]$pi) + # TODO: chuis pas sûr du tout des lignes suivantes... + # J'ai l'impression qu'il manque des infos + sumPen = sapply( models, function(model) + sum( model$pi^gamma * sapply(1:k, function(r) sum(abs(model$phi[,,r]))) ) ) + data.frame(model=paste(i,".",seq_along(models),sep=""), + pen=sumPen/1000, complexity=sumPen, contrast=LLH) } ) ) - tableauRecap = tableauRecap[rowSums(tableauRecap[, 2:4])!=0,] - tableauRecap = tableauRecap[(tableauRecap[,1])!=Inf,] - data = cbind(1:dim(tableauRecap)[1], tableauRecap[,2], tableauRecap[,2], tableauRecap[,1]) modSel = capushe::capushe(data, n) indModSel <- @@ -126,5 +125,6 @@ valse = function(X, Y, procedure='LassoMLE', selecMod='DDSE', gamma=1, mini=10, modSel@BIC_capushe$model else if (selecMod == 'AIC') modSel@AIC_capushe$model + models_list[[tableauRecap[indModSel,3]]][[tableauRecap[indModSel,4]]] }