X-Git-Url: https://git.auder.net/?p=valse.git;a=blobdiff_plain;f=src%2Ftest%2Fgenerate_test_data%2FgenerateRunSaveTest_constructionModelesLassoMLE.R;h=dbce359c592cb698cb0c0d1a3fb3224c69e7b99f;hp=d367bfd2ce072c3643dd366040d095d528c4a98b;hb=31ef8a5c9bbaefcf40d2c2bad43b27d469c28c34;hpb=dc4252096180c25408d656a1442579bbd8dfa82f diff --git a/src/test/generate_test_data/generateRunSaveTest_constructionModelesLassoMLE.R b/src/test/generate_test_data/generateRunSaveTest_constructionModelesLassoMLE.R index d367bfd..dbce359 100644 --- a/src/test/generate_test_data/generateRunSaveTest_constructionModelesLassoMLE.R +++ b/src/test/generate_test_data/generateRunSaveTest_constructionModelesLassoMLE.R @@ -1,76 +1,65 @@ -generateRunSaveTest_constructionModelesLassoMLE = function(n, p, m, k, mini, maxi, gamma, glambda, varargin){ - #set defaults for optional inputs - optargs = c(200 15 10 3 5 10 1.0 list(0.0,0.01,0.02,0.03,0.05,0.1,0.2,0.3,0.5,0.7,0.85,0.99)) - #replace defaults by user parameters - optargs[1:length(varargin)] = varargin - n = optargs[1] - p = optargs[2] - m = optargs[3] - k = optargs[4] - mini = optargs[5] - maxi = optargs[6] - gamma = optargs[7] - glambda = optargs[8] - tau = 1e-6 - seuil = 1e-15 - L = length(glambda) - - #Generate phiInit,piInit,... - basicInit = basicInitParameters(n, p, m, k) - phiInit = basicInit$phiInit - rhoInit = basicInit$rhoInit - piInit = basicInit$piInit - gamInit = basicInit$gamInit - - #Generate X and Y - generateIOdef = generateIOdefault(n, p, m, k) - X = generateIOdef$X - Y = generateIOdef$Y +source("helpers/constructionModelesLassoMLE.R") - A2 = array(0, dim=c(p, m+1, L)) +generateRunSaveTest_constructionModelesLassoMLE = function(n=200, p=15, m=10, k=3, mini=5, + maxi=10, gamma=1.0, glambda=list(0.0,0.01,0.02,0.03,0.05,0.1,0.2,0.3,0.5,0.7,0.85,0.99)) +{ + tau = 1e-6; + seuil = 1e-15; + L = length(glambda); A1 = array(0, dim=c(p, m+1, L)) - for(i in 1:L){ - for(j in 1:p){ - A2[j, 1, i] = j - A1[j, 1, i] = j - } - for(k in 1:5){ - A2[k,2,i] = k - A1[k,2,i] = k - } + A2 = array(0, dim=c(p, m+1, L)) + for (i in 1:L) + { + A1[,1,i] = seq_len(p) + A1[1:5,2,i] = seq_len(5) + A2[,1,i] = seq_len(p) + A2[1:5,2,i] = seq_len(5) } + require(valse) + params = valse:::basicInitParameters(n, p, m, k) + xy = valse:::generateXYdefault(n, p, m, k) - testFolder = 'data/' - dir.create(testFolder) - delimiter = ' ' - - + testFolder = "../data/" + dir.create(testFolder, showWarnings=FALSE, mode="0755") #save inputs - write(strcat(testFolder,'phiInit'), reshape(phiInit,1), delimiter) - write(strcat(testFolder,'rhoInit'), reshape(rhoInit,1), delimiter) - write(strcat(testFolder,'piInit'), piInit, delimiter) - write(strcat(testFolder,'gamInit'), reshape(gamInit,1), delimiter) - write(strcat(testFolder,'mini'), mini, delimiter) - write(strcat(testFolder,'maxi'), maxi, delimiter) - write(strcat(testFolder,'gamma'), gamma, delimiter) - write(strcat(testFolder,'glambda'), glambda, delimiter) - write(strcat(testFolder,'X'), reshape(X,1), delimiter) - write(strcat(testFolder,'Y'), reshape(Y,1), delimiter) - mwrite(strcat(testFolder,'seuil'), seuil, delimiter) - write(strcat(testFolder,'tau'), tau, delimiter) - write(strcat(testFolder,'A1'), reshape(A1,1), delimiter) - write(strcat(testFolder,'A2'), reshape(A2,1), delimiter) - write(strcat(testFolder,'dimensions'), [n,p,m,k,L], delimiter) - - construct_LME = constructionModelesLassoMLE(phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,glambda,X,Y,seuil,tau,A1,A2) - phi = construct_LME$phi - rho = construct_LME$rho - pi = construct_LME$pi - lvraisemblance = construct_LME$lvraisemblance - + write.table(as.double(params$phiInit), paste(testFolder,"phiInit",sep=""), + row.names=F, col.names=F) + write.table(as.double(params$rhoInit), paste(testFolder,"rhoInit",sep=""), + row.names=F, col.names=F) + write.table(as.double(params$piInit), paste(testFolder,"piInit",sep=""), + row.names=F, col.names=F) + write.table(as.double(params$gamInit), paste(testFolder,"gamInit",sep=""), + row.names=F, col.names=F) + write.table(as.integer(mini), paste(testFolder,"mini",sep=""), + row.names=F, col.names=F) + write.table(as.integer(maxi), paste(testFolder,"maxi",sep=""), + row.names=F, col.names=F) + write.table(as.double(gamma), paste(testFolder,"gamma",sep=""), + row.names=F, col.names=F) + write.table(as.double(glambda), paste(testFolder,"glambda",sep=""), + row.names=F, col.names=F) + write.table(as.double(xy$X), paste(testFolder,"X",sep=""), + row.names=F, col.names=F) + write.table(as.double(xy$Y), paste(testFolder,"Y",sep=""), + row.names=F, col.names=F) + write.table(as.double(seuil), paste(testFolder,"seuil",sep=""), + row.names=F, col.names=F) + write.table(as.double(tau), paste(testFolder,"tau",sep=""), + row.names=F, col.names=F) + write.table(as.double(A1), paste(testFolder,"A1",sep=""), + row.names=F, col.names=F) + write.table(as.double(A2), paste(testFolder,"A2",sep=""), + row.names=F, col.names=F) + write.table(as.integer(c(n,p,m,k,L)), paste(testFolder,"dimensions",sep=""), + row.names=F, col.names=F) + + res = constructionModelesLassoMLE( + params$phiInit,params$rhoInit,params$piInit,params$gamInit, + mini,maxi,gamma,glambda,xy$X,xy$Y,seuil,tau,A1,A2) + #save output - write(strcat(testFolder,'phi'), reshape(phi,1), delimiter); - write(strcat(testFolder,'rho'), reshape(rho,1), delimiter); - write(strcat(testFolder,'pi'), reshape(pi,1), delimiter); - write(strcat(testFolder,'lvraisemblance'), reshape(lvraisemblance,1), delimiter); + write.table(as.double(res$phi), paste(testFolder,"phi",sep=""), row.names=F, col.names=F) + write.table(as.double(res$rho), paste(testFolder,"rho",sep=""), row.names=F, col.names=F) + write.table(as.double(res$pi), paste(testFolder,"pi",sep=""), row.names=F, col.names=F) + write.table(as.double(res$llh), paste(testFolder,"llh",sep=""), row.names=F, col.names=F) }