Calculer la kurtosis, Excel VBA

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 ? 

  1. Saisir des valeurs dans une colonne (par ex. A1:A10). 
  2. Entrer la formule dans une cellule :  =Kurtosis(A1:A10) 
  3. 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. 

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x