Ensemble des histogrammes basés sur une subdivision

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Alexandre LEKINA
Messages : 18
Enregistré le : 14 Juin 2007, 14:31
Contact :

Ensemble des histogrammes basés sur une subdivision

Messagepar Alexandre LEKINA » 14 Juin 2007, 18:59

Bonjour,
Dans la cadre de mon mémoire en Sélection de modèles, je suis confronté à une petite difficulté.

En effet, j'aimerais générer l'ensemble des histogrammes basés sur la subdivision [a,b] u {} où u =union et {}=ensemble vide.

Plus simplement si on se donne une grille fine et régulière de [a,b] de pas fixé, comment générer une famille de partitions de telle sorte que les partitions de celle ci (de la famille) aient pour extrémités des points de la grille ? :roll: :roll:

Existe t-il un package sous R ? ou une fonction qui pourrait par exemple me renvoyer une liste de "breaks" correspondante à ma famille ? Si oui c'est laquelle ?

---------
Plus simple encore :wink:
existe t'il un outil sous R pouvant générer à partir de ce tableau [a,1,2,3,b]
la séquence suivante:

[a,b]
[a,1,b]
[a,2,b]
[a,3,b]
[a,1,2,b]
[a,1,3,b]
[a,2,3,b]
[a,1,2,3,b]








Merci.
Encore et toujours de la Sélection de Modèles

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 15 Juin 2007, 09:49

Bonjour,


Je n'ai pas tout saisi ce que tu comptes faire, mais tu peux générer ta séquence de cette façon :

Code : Tout sélectionner

x <- NULL
for (i in 1:3){
u <- combn(c(1,2,3),i)
x <- c(x, apply(u,2,function(w) paste("[a,",paste(w,collapse=","),",b]",sep="")))
}
x
[1] "[a,1,b]"     "[a,2,b]"     "[a,3,b]"     "[a,1,2,b]"   "[a,1,3,b]"   "[a,2,3,b]"   "[a,1,2,3,b]"


Maxime

Alexandre LEKINA
Messages : 18
Enregistré le : 14 Juin 2007, 14:31
Contact :

Messagepar Alexandre LEKINA » 15 Juin 2007, 10:40

Logez Maxime a écrit :Bonjour,


Je n'ai pas tout saisi ce que tu comptes faire, mais tu peux générer ta séquence de cette façon :

Code : Tout sélectionner

x <- NULL
for (i in 1:3){
u <- combn(c(1,2,3),i)
x <- c(x, apply(u,2,function(w) paste("[a,",paste(w,collapse=","),",b]",sep="")))
}
x
[1] "[a,1,b]"     "[a,2,b]"     "[a,3,b]"     "[a,1,2,b]"   "[a,1,3,b]"   "[a,2,3,b]"   "[a,1,2,3,b]"


Maxime


Bonjour,
en fait il faut voir les "[]" comme un vecteur et a et b comme des nombres.
par exemple pour a=0, et b=4
j'aimerais avoir cette séquence
"[0,1,4]" "[0,2,4]" "[0,3,4]" "[0,1,2,4]" "[0,1,3,4]" "[0,2,3,4]" "[0,1,2,3,4]"

et sous forme de liste ...où je pourrais chopper chaque vecteur par exemple.

Mais bon ton truc a l'air de marcher, je vais essayer de le modifer.
Merci
Merci.
Encore et toujours de la Sélection de Modèles

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 15 Juin 2007, 11:12

Re,

Pour mettre en liste les résultats tu peux faire comme ça avec a=-2 et b=5 :

Code : Tout sélectionner

x <- NULL
for (i in 1:3){
u <- combn(c(1,2,3),i)
x <- c(x, apply(u,2,function(w) paste("c(",-2,",",paste(w,collapse=","),",",5,")",sep="")))
}
x <- split(x,gl(length(x),1))
x <- lapply(x,function(w) eval(parse(text=w)))
x
$`1`
[1] -2  1  5

$`2`
[1] -2  2  5

$`3`
[1] -2  3  5

$`4`
[1] -2  1  2  5

$`5`
[1] -2  1  3  5

$`6`
[1] -2  2  3  5

$`7`
[1] -2  1  2  3  5


Les "[", ne sont pas des vecteurs dans R mais servent à l'indexation, et mon truc fonctionne il suffit de voir l'exemple avec un copier coller dans ta console.

Maxime

Alexandre LEKINA
Messages : 18
Enregistré le : 14 Juin 2007, 14:31
Contact :

Messagepar Alexandre LEKINA » 15 Juin 2007, 11:38

Oui je sais ça marche. En fait j'aurais du préciser bien avant que les "[]" désignaient les vecteurs...(pas dans R toutefois)


Moi j'avais fait ceci apres avoir lu ton dernier code

Code : Tout sélectionner

x <- list()
v <- seq(0,1,1/4)
vv <- v[2:(length(v)-1)]
for(i in 1:length(vv)){
   u <- combn(vv,i)
   x <- c(x, list(apply(u,2,function(w) c(0,w,1))))   
}



Sinon merci encore....je crois que là je peux maintenant genérer ma famille d'histogrammes sur [0,1] par exemple.... J'ai les "breaks" qu'ils me manquaient.

Reste simplement à savoir si le pc de 512 Mo va tenir le coup si je veux générer juste 1.000.000 d'histogrammes....

:D
Encore et toujours de la Sélection de Modèles


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité