X-Git-Url: https://git.auder.net/?p=valse.git;a=blobdiff_plain;f=R%2FconstructionModelesLassoMLE_essai.R;fp=R%2FconstructionModelesLassoMLE_essai.R;h=0000000000000000000000000000000000000000;hp=e295d0cb5ea763740804309035973fc0c940fc34;hb=d36b8e8accd1bdab7dbabea6b66d5e5f01068af6;hpb=f33f35efc9a01f93bb61959522d90ee6a76b892e diff --git a/R/constructionModelesLassoMLE_essai.R b/R/constructionModelesLassoMLE_essai.R deleted file mode 100644 index e295d0c..0000000 --- a/R/constructionModelesLassoMLE_essai.R +++ /dev/null @@ -1,55 +0,0 @@ -constructionModelesLassoMLE = function(phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,glambda,X,Y,seuil,tau,selected){ - #get matrix sizes - n = dim(X)[1] - p = dim(phiInit)[1] - m = dim(phiInit)[2] - k = dim(phiInit)[3] - L = length(glambda) - - #output parameters - phi = array(0, dim = c(p,m,k,L)) - rho = array(dim = c(m,m,k,L)) - pi = array( dim = c(k,L)) - lvraisemblance = array( dim = c(L,2)) - - for (lambdaIndex in 1:L){ - # Procedure Lasso-MLE - a = selected[,1,lambdaIndex] - a(a==0) = c() - if (length(a) != 0){ - res_EM = EMGLLF(phiInit[a,,],rhoInit,piInit,gamInit,mini,maxi,gamma,0,X[,a],Y,tau) - phiLambda = res_EM$phi - rhoLambda = res_EM$rho - piLambda = res_EM$pi - for (j in 1:length(a)){ - phi[a[j],,,lambdaIndex] = phiLambda[j,,] - } - rho[,,,lambdaIndex] = rhoLambda - pi[,lambdaIndex] = piLambda - - dimension = 0 - for (j in 1:p){ - b = A2[j,2:end,lambdaIndex] - b[b==0] = c() - if (length(b) > 0){ - phi[A2[j,1,lambdaIndex],b,,lambdaIndex] = 0.0 - } - c = A1[j,2:end,lambdaIndex] - c[c==0] = c() - dimension = dimension + length(c) - } - - #on veut calculer l'EMV avec toutes nos estimations - densite = array(n,L) - for (i in 1:n){ - for (r in 1:k){ - delta = Y[i,]*rho[,,r,lambdaIndex] - X[i,a]*phi[a,,r,lambdaIndex] - densite[i,lambdaIndex] = densite[i,lambdaIndex] + pi[r,lambdaIndex]*det(rho[,,r,lambdaIndex])/(sqrt(2*base::pi))^m*exp(-delta %*% delta/2.0) - } - } - - lvraisemblance(lambdaIndex,1) = sum(log(densite[,lambdaIndex])) - lvraisemblance(lambdaIndex,2) = (dimension+m+1)*k-1 - } - } -} \ No newline at end of file