Technique de discrétisation par Binning à Largeur Égale (Equal Width Binning), Excel VBA
Voici une explication détaillée et le code VBA pour la technique de discrétisation par Binning à Largeur Égale (Equal Width Binning) en Excel, avec un exemple d’output et des explications complètes.
Technique de Binning à Largeur Égale (Equal Width Binning)
Explication :
Le Binning à Largeur Égale est une technique de discrétisation des données où l’intervalle des données est divisé en un nombre fixe de sous-intervalles (ou bins) de taille égale. Cela signifie que toute la plage de valeurs des données est divisée en un nombre pré-défini de bins, et chaque bin a la même largeur. Cette méthode est simple à implémenter, mais elle peut ne pas être adaptée pour des données très dispersées ou asymétriques.
Étapes de la Discrétisation par Binning à Largeur Égale :
1. Trouver l’Intervalle des Données : Commencez par déterminer les valeurs minimales et maximales de votre jeu de données.
2. Diviser l’Intervalle : L’intervalle est divisé en k intervalles égaux, où k est le nombre de bins que vous souhaitez créer.
3. Assigner les Données aux Bins : Pour chaque point de données, on détermine à quel bin il appartient en fonction de sa valeur, et on assigne ce point de données au bin approprié.
4. Gérer les Valeurs Extrêmes (Outliers) : Les points de données qui se trouvent en dehors de la valeur minimale ou maximale peuvent être placés dans le bin le plus proche.
Code VBA pour la Technique de Binning à Largeur Égale :
Ce code VBA permet d’implémenter la technique de Binning à Largeur Égale. Il prend un ensemble de données, calcule la largeur des bins, assigne chaque point de données à son bin correspondant, et affiche le résultat dans une nouvelle colonne.
Sub DiscretisationBinningLargeurEgale()
' Déclaration des variables
Dim PlageDonnees As Range
Dim NbBins As Integer
Dim MinValeur As Double
Dim MaxValeur As Double
Dim LargeurBin As Double
Dim i As Integer
Dim PointDonnee As Double
Dim Bin As Integer
Dim PlageSortie As Range
Dim DebutBin As Double
Dim FinBin As Double
' Définir la plage des données et le nombre de bins
Set PlageDonnees = Range("A2:A21") ' Ajustez cette plage selon vos besoins
NbBins = 5 ' Définir le nombre de bins
' Calculer la valeur minimale et maximale des données
MinValeur = Application.WorksheetFunction.Min(PlageDonnees)
MaxValeur = Application.WorksheetFunction.Max(PlageDonnees)
' Calculer la largeur de chaque bin
LargeurBin = (MaxValeur - MinValeur) / NbBins
' Définir la plage de sortie pour les bins (colonne suivante, c'est-à-dire B2:B21)
Set PlageSortie = PlageDonnees.Offset(0, 1)
' Effacer les résultats précédents dans la plage de sortie
PlageSortie.ClearContents
' Boucle à travers les données et assigner les bins
For i = 1 To PlageDonnees.Cells.Count
PointDonnee = PlageDonnees.Cells(i).Value
' Déterminer à quel bin appartient le point de données
Bin = Int((PointDonnee - MinValeur) / LargeurBin)
' Gérer les valeurs extrêmes (en dehors de la valeur minimale ou maximale)
If Bin >= NbBins Then
Bin = NbBins - 1 ' Placer dans le dernier bin si la valeur est supérieure à la valeur maximale
ElseIf Bin < 0 Then
Bin = 0 ' Placer dans le premier bin si la valeur est inférieure à la valeur minimale
End If
' Définir les plages de bins et écrire le résultat dans la colonne adjacente
DebutBin = MinValeur + Bin * LargeurBin
FinBin = DebutBin + LargeurBin
PlageSortie.Cells(i).Value = "Bin " & Bin + 1 & ": [" & Round(DebutBin, 2) & " - " & Round(FinBin, 2) & "]"
Next i
' Informer l'utilisateur que l'opération est terminée
MsgBox "Discrétisation par Binning à Largeur Égale Terminée !"
End Sub
Explication du Code :
1. Plage des Données (PlageDonnees) : La plage contenant les données (dans cet exemple, elle se trouve dans les cellules A2:A21).
2. Nombre de Bins (NbBins) : Le nombre de bins que vous souhaitez créer. Cette valeur est personnalisable selon vos besoins.
3. Valeurs Minimale et Maximale (MinValeur, MaxValeur) : Ces variables stockent respectivement la valeur minimale et maximale de vos données.
4. Calcul de la Largeur des Bins : La largeur des bins est calculée en soustrayant la valeur minimale de la valeur maximale et en divisant le résultat par le nombre de bins. Cela donne la largeur de chaque bin.
5. Boucle à Travers les Données : La boucle passe en revue chaque point de données dans la plage PlageDonnees et détermine à quel bin il appartient en fonction de la différence entre la valeur et la valeur minimale, divisée par la largeur des bins.
6. Gestion des Valeurs Extrêmes : Si un point de données dépasse la valeur maximale, il est placé dans le dernier bin ; s’il est inférieur à la valeur minimale, il est placé dans le premier bin.
7. Sortie des Résultats : Les résultats sont affichés dans la colonne adjacente (i.e., B2:B21). Pour chaque point de données, le bin auquel il appartient est indiqué, ainsi que la plage de ce bin.
Exemple de Sortie :
Supposons que vos données dans A2:A21 ressemblent à ceci :
| Données (A) |
| 3.5 |
| 5.8 |
| 8.1 |
| 2.3 |
| 9.9 |
| 6.0 |
| 7.2 |
| 3.2 |
| 4.9 |
| 6.4 |
| 7.6 |
| 5.4 |
| 8.3 |
| 6.7 |
| 9.5 |
| 2.8 |
| 4.2 |
| 3.9 |
| 7.0 |
| 6.5 |
Et vous avez défini le nombre de bins à 5. Le résultat sera affiché dans la colonne B comme suit (en supposant que la valeur minimale est 2.3 et la valeur maximale est 9.9) :
| Données (A) | Résultat Binning (B) |
| 3.5 | Bin 1: [2.3 – 3.74] |
| 5.8 | Bin 2: [3.74 – 5.18] |
| 8.1 | Bin 4: [6.62 – 8.06] |
| 2.3 | Bin 1: [2.3 – 3.74] |
| 9.9 | Bin 5: [8.06 – 9.5] |
| 6.0 | Bin 3: [5.18 – 6.62] |
| 7.2 | Bin 4: [6.62 – 8.06] |
| 3.2 | Bin 1: [2.3 – 3.74] |
| 4.9 | Bin 2: [3.74 – 5.18] |
| 6.4 | Bin 3: [5.18 – 6.62] |
| 7.6 | Bin 4: [6.62 – 8.06] |
| 5.4 | Bin 2: [3.74 – 5.18] |
| 8.3 | Bin 5: [8.06 – 9.5] |
| 6.7 | Bin 3: [5.18 – 6.62] |
| 9.5 | Bin 5: [8.06 – 9.5] |
| 2.8 | Bin 1: [2.3 – 3.74] |
| 4.2 | Bin 2: [3.74 – 5.18] |
| 3.9 | Bin 1: [2.3 – 3.74] |
| 7.0 | Bin 4: [6.62 – 8.06] |
| 6.5 | Bin 3: [5.18 – 6.62] |
Conclusion :
- Le Binning à Largeur Égale permet de diviser vos données en intervalles égaux, facilitant ainsi l’analyse de grandes quantités de données.
- Le nombre de bins (NbBins) est ajustable en fonction de vos besoins.
- Cette méthode est simple à mettre en œuvre, mais elle peut ne pas être idéale pour des données très asymétriques ou contenant des valeurs extrêmes (outliers).