move selectiontotale to appropriate folder (untranslated)
[valse.git] / src / test / generate_test_data / generateRunSaveTest_constructionModelesLassoMLE.R
index d367bfd..dbce359 100644 (file)
@@ -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)
 }