Développer une solution d’analyse prédictive personnalisée, Excel VBA

Développer une solution d’analyse prédictive personnalisée, Excel VBA
1. Qu’est-ce que l’analyse prédictive ?
L’analyse prédictive consiste à utiliser des algorithmes statistiques et des techniques d’apprentissage automatique pour identifier la probabilité des résultats futurs en fonction des données historiques. Dans Excel VBA, vous pouvez automatiser des processus comme l’analyse des données, la formation de modèles et la génération de prédictions.
2. Objectif
Nous allons créer un code VBA qui :

  • Prend un ensemble de données historiques (X, Y).
  • Effectue une régression linéaire pour trouver la meilleure ligne de régression.
  • Utilise le modèle de régression pour prédire des valeurs futures.

3. Données d’exemple :
Imaginons que nous avons les données suivantes dans Excel :

X (Variable indépendante) Y (Variable dépendante)
1 2
2 3
3 5
4 7
5 11
  • Colonne A : Variable indépendante (X)
  • Colonne B : Variable dépendante (Y)

Nous allons effectuer une régression linéaire pour trouver l’équation de la droite de régression et prédire des valeurs futures.
4. Code VBA pour la régression linéaire et l’analyse prédictive
Voici un code VBA qui effectue une régression linéaire et utilise ce modèle pour prédire des valeurs :

Sub AnalysePrédictive()
    ' Variables pour l'analyse de régression
    Dim PlageX As Range, PlageY As Range
    Dim Pente As Double, Intercept As Double
    Dim ValeurPrédite As Double
    Dim DernièreLigne As Long
    Dim i As Long
    ' Définir les plages pour les variables indépendantes (X) et dépendantes (Y)
    DernièreLigne = Cells(Rows.Count, 1).End(xlUp).Row
    Set PlageX = Range("A2:A" & DernièreLigne)
    Set PlageY = Range("B2:B" & DernièreLigne)
    ' Utiliser la fonction LINEST d'Excel pour calculer les coefficients de régression
    ' LINEST renvoie un tableau : le premier élément est la pente et le deuxième est l'intercept
    Dim RésultatsLinEst As Variant
    RésultatsLinEst = Application.WorksheetFunction.LinEst(PlageY, PlageX)
    ' Extraire la pente et l'intercept
    Pente = RésultatsLinEst(1, 1)
    Intercept = RésultatsLinEst(1, 2)
    ' Afficher la pente et l'intercept dans la fenêtre immédiate (pour le débogage)
    Debug.Print "Pente : " & Pente
    Debug.Print "Intercept : " & Intercept
    ' Prédire les valeurs futures à l'aide du modèle de régression (y = mx + b)
    For i = 2 To DernièreLigne
        ValeurPrédite = Pente * Cells(i, 1).Value + Intercept
        Cells(i, 3).Value = ValeurPrédite ' Afficher la prédiction dans la colonne C
    Next i
    ' Prédire une nouvelle valeur (par exemple pour X = 6)
    ValeurPrédite = Pente * 6 + Intercept
    MsgBox "Valeur prédite pour X = 6 : " & ValeurPrédite
End Sub

5. Explication du code :
Déclaration des variables :

  • PlageX et PlageY représentent les plages des variables indépendantes (X) et dépendantes (Y).
  • Pente et Intercept stockent les coefficients de l’équation de la régression linéaire (y = mx + b).
  • ValeurPrédite sera utilisée pour stocker les valeurs prédites en fonction de notre modèle de régression.

Configuration des plages de données :

  • Le code détermine automatiquement la dernière ligne de données dans la colonne A pour ajuster dynamiquement les plages des données X et Y.
  • Les données sont supposées commencer à partir de la ligne 2.

Calcul de la régression (fonction LINEST) :

  • Application.WorksheetFunction.LinEst(PlageY, PlageX) utilise la fonction LINEST d’Excel pour calculer la pente et l’intercept de la régression linéaire. La fonction renvoie un tableau avec la pente en première position et l’intercept en deuxième position.

Sortie des coefficients de régression :

  • Le code affiche la pente et l’intercept dans la fenêtre immédiate (pour le débogage).

Boucle de prédiction :

  • Le code boucle sur chaque ligne de données, calcule la valeur prédite Y à l’aide de la formule de régression Y = mx + b et affiche la prédiction dans la colonne C.

Prédiction pour une nouvelle valeur de X :

  • Le code montre également comment prédire une nouvelle valeur pour une entrée donnée (par exemple, X = 6). Il affiche cette valeur dans une boîte de message.

6. Comment utiliser ce code :
1. Ouvrez Excel et appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
2. Dans l’éditeur, insérez un nouveau module (Insertion > Module).
3. Collez le code ci-dessus dans le module.
4. Fermez l’éditeur VBA et revenez à votre feuille Excel.
5. Appuyez sur Alt + F8, sélectionnez la macro AnalysePrédictive et cliquez sur Exécuter.
Le code fera ce qui suit :

  • Calculera les coefficients de régression.
  • Affichera les valeurs prédites pour chaque ligne dans la colonne C.
  • Affichera la prédiction pour une nouvelle valeur (par exemple, X = 6) dans une boîte de message.

7. Personnalisation pour d’autres modèles prédictifs :
Ce modèle est une régression linéaire simple, mais vous pouvez l’étendre pour créer des modèles prédictifs plus complexes comme :

  • Régression multiple : Si vous avez plusieurs variables indépendantes (X1, X2, etc.), vous pouvez ajuster la fonction LINEST en conséquence.
  • Prévision de séries temporelles : Utilisez des données historiques pour appliquer des méthodes comme les moyennes mobiles ou le lissage exponentiel.
  • Modèles d’apprentissage automatique : Bien que VBA soit limité pour des modèles complexes, vous pouvez l’utiliser pour des applications de base. Pour des modèles plus avancés comme les arbres de décision ou les réseaux neuronaux, il serait plus pertinent d’utiliser des langages comme Python ou R.

Conclusion :
En utilisant VBA, vous pouvez automatiser des processus d’analyse prédictive directement dans Excel, vous permettant ainsi d’analyser des données et de générer des prédictions avec un minimum d’efforts manuels. Ce modèle de régression linéaire sert de base pour la construction de modèles prédictifs plus sophistiqués que vous pouvez développer selon vos besoins.

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