Calculer la kurtosis, Excel VBA
Voici un code VBA pour calculer la kurtosis (ou kurtose) d’une plage de données dans Excel, accompagné d’une explication détaillée.
Code VBA : Calcul de la Kurtosis
Function Kurtosis(rng As Range) As Double Dim cell As Range Dim n As Long Dim sumX As Double, sumX2 As Double, sumX4 As Double Dim meanX As Double, stdDev As Double Dim result As Double ' Initialisation des variables n = rng.Cells.Count If n < 4 Then Kurtosis = CVErr(xlErrDiv0) ' Erreur si moins de 4 valeurs (kurtosis nécessite un échantillon de taille >= 4) Exit Function End If ' Calcul de la moyenne For Each cell In rng sumX = sumX + cell.Value Next cell meanX = sumX / n ' Calcul de la variance et des puissances For Each cell In rng sumX2 = sumX2 + (cell.Value - meanX) ^ 2 sumX4 = sumX4 + (cell.Value - meanX) ^ 4 Next cell ' Écart-type (std deviation) stdDev = Sqr(sumX2 / n) ' Calcul de la kurtosis avec la formule de Fisher (ajustée pour un échantillon) If stdDev <> 0 Then result = (sumX4 / n) / (stdDev ^ 4) Kurtosis = ((n * (n + 1)) / ((n - 1) * (n - 2) * (n - 3))) * result - (3 * (n - 1) ^ 2) / ((n - 2) * (n - 3)) Else Kurtosis = CVErr(xlErrDiv0) ' Erreur si l'écart-type est nul End If End Function
Explication du Code :
1. Vérification de la taille de l’échantillon
- Si la plage contient moins de 4 valeurs, la kurtosis ne peut pas être calculée correctement (division par zéro possible).
- On retourne une erreur #DIV/0!.
2. Calcul de la moyenne
- On somme toutes les valeurs de la plage et on divise par n.
3. Calcul de la variance et des moments d’ordre 4
- sumX2 : somme des carrés des écarts à la moyenne (variance brute).
- sumX4 : somme des écarts à la puissance 4.
4. Calcul de l’écart-type
- L’écart-type est la racine carrée de la variance.
5. Application de la formule de kurtosis ajustée (excess kurtosis)
- On utilise la formule de Fisher pour un échantillon fini :
K = (n.(n+1) / (n−1)(n−2)(n−3)).(∑(xi−X−) / n.σ4)) − (−3(n−1)² / (n−2)(n−3))
- Cette formule ajuste la kurtosis de l’échantillon pour éviter un biais.
6. Gestion des erreurs
- Si l’écart-type est nul (toutes les valeurs identiques), la kurtosis est indéfinie → erreur #DIV/0!.
Comment utiliser cette fonction dans Excel ?
- Saisir des valeurs dans une colonne (par ex. A1:A10).
- Entrer la formule dans une cellule : =Kurtosis(A1:A10)
- La cellule affichera la kurtosis de l’échantillon.
Cette fonction est plus précise que KURT() d’Excel car elle utilise une formule sans biais pour un échantillon.