Soyez très prudent : toutes les réponses données sur cette page enlèvent implicitement à l'utilisateur la décision de savoir où commence le classement - le bord gauche du bac le plus à gauche, si vous voulez -. Si l'utilisateur combine l'une de ces fonctions de regroupement des données avec sa propre décision concernant le point de départ du regroupement (comme le fait le blog dont le lien figure ci-dessus), les fonctions ci-dessus sont toutes incorrectes. Avec un point de départ arbitraire pour la classification "Min", la fonction correcte est :
bin(x) = width*(floor((x-Min)/width)+0.5) + Min
Vous pouvez voir pourquoi cela est correct de manière séquentielle (il est utile de dessiner quelques bacs et un point quelque part dans l'un d'entre eux). Soustrayez Min de votre point de données pour voir à quelle distance de la plage de binages il se trouve. Divisez ensuite par la largeur de la cellule afin de travailler en unités de "cellules". Ensuite, "planifiez" le résultat pour atteindre le bord gauche de cette cellule, ajoutez 0,5 pour atteindre le milieu de la cellule, multipliez par la largeur pour ne plus travailler en unités de cellules mais en échelle absolue, et enfin ajoutez le décalage Min que vous avez soustrait au début.
Cette fonction est à l'œuvre :
Min = 0.25 # where binning starts
Max = 2.25 # where binning ends
n = 2 # the number of bins
width = (Max-Min)/n # binwidth; evaluates to 1.0
bin(x) = width*(floor((x-Min)/width)+0.5) + Min
Par exemple, la valeur 1,1 se trouve vraiment dans la case de gauche :
- cette fonction l'affecte correctement au centre de l'emplacement gauche (0,75) ;
- La réponse de Born2Smile, bin(x)=largeur*floor(x/largeur), l'associe incorrectement à 1 ;
- La réponse de mas90, bin(x)=width*floor(x/width) + binwidth/2.0, correspond incorrectement à 1.5.
La réponse de Born2Smile n'est correcte que si les limites des cases se situent à (n+0,5)*largeur des cases (où n s'étend sur des entiers). La réponse de mas90 n'est correcte que si les limites des cases se situent à n*largeur des cases.
2 votes
Si vous n'obtenez pas de réponse, il existe d'autres outils destinés à faire ce genre de choses. J'utilise Root ( Root.cern.ch ) beaucoup d'autres ici utilisent R, et il y a au moins quelques autres options.
1 votes
La case est la plage de valeurs rassemblées pour chaque barre de l'histogramme. Chaque case a une limite inférieure et une limite supérieure, et toutes les données dont la valeur se situe dans cette fourchette sont comptabilisées pour cette barre. Binné signifie que mon fichier de données est déjà organisé en fonction du nombre de points de données compris dans chaque bin et qu'il est donc prêt à être représenté sous la forme d'un histogramme.