Moyenne Mobile

Bonjour,

J'ai une série de valeurs dans ma colonne A (plusieurs milliers de cellules). Je souhaiterais construire une moyenne mobile de 100 périodes (cellules) dans ma colonne B. Cependant,

- Je voudrais que la moyenne mobile soit calculée non pas sur les 100 cellules précédentes seulement (comme c'est le cas lorsque l'on utilise la moyenne mobile de l'utilitaire d'analyse) mais bien plutôt sur les 50 valeurs précédentes ET les 50 valeurs suivantes.

- Je voudrais que les premières et dernières valeurs soient tout de même calculées sur moins de données. Actuellement j'obtiens le message N/A sur les 100 premières valeurs car il manque des données pour pouvoir les calculer.

Comment faire?

Merci!

Tu ne peux pas le faire.

Bonjour,

Solution VBA à tester.

Cdlt.

95jossbeaumont.xlsm (36.91 Ko)
Option Explicit
Public Sub moyenne_mobile()
Dim ws As Worksheet
Dim lastrow As Long, i As Long
Dim rng As Range

    Application.ScreenUpdating = False

    Set ws = Worksheets("Feuil1")

    With ws
        lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 50 To lastrow - 50
            Set rng = .Range(.Cells(i - 49, 1), .Cells(i + 50, 1))
            .Cells(i, 2) = Application.Average(rng)
        Next
    End With

    Set ws = Nothing: Set rng = Nothing

End Sub

Melanger des moyennes mobiles differentes ne fait aucun sens!

Re,

Je suis tout à fait d'accord, supprimons 'mobile'.

Cdlt.

OK, merci.

Dans ce cas, existe-t-il d'autres manière de lisser une série de valeurs?

Le lissage exponentiel de l'utilitaire d'analyse ne me convient pas car il y a trop peu paramètres et dès que l'on utilise un coefficient un tant soit peu élevé la courbe se décale trop vers la droite.

Y-a-t-il d'autres fonctions dans Excel ? Ou une formule mathematiques peut-être

Comme je l'ai dit auparavant je souhaiterais que le lissage soit effectué en se basant non pas seulement sur les valeurs précédentes mais aussi sur les valeurs suivantes

Je précise également que j'ai besoin de la serie de valeurs lissée et pas seulement du graph

Re,

Je pense qu'il est nécessaire que tu envoies un fichier représentatif de ta demande

Cdlt.

Ceci est un graph qui représente un Retour sur Investissement en fonction du risque (risque en abscisse, proche de 1 =risque faible, proche de 1,7 =risque elevé)

Mon but est de lisser les ROI de manière à faire des prévisions de ROI en fonction d'un facteur risque donné.

Dans mon exemple, rien ne peut expliquer la grosse chute de ROI (entre 1,45 et 1,57), il semble donc qu'il s'agisse là simplement d'une chute de variance (par sûr du terme, de la malchance en gros). Je souhaiterais donc lisser toutes les données entre 1,36 et 1,7 pour obtenir une serie qui face abstraction de accident dûs au hasard (mais qui conserve bien sûr la même moyenne que la serie originale).

En revanche, le fait que le ROI soit legerement negatif entre 1 et 1,05 est tout à fait significatif et je souhaiterais que ma formule conserve ce détail.

Il faut préciser que les ROIs à faible niveau de risque (entre 1 et 1,3) sont basée sur bien plus de données que les ROIs qui correspondent à un risque plus elevé. Ceci explique qu'en montant en risque, on ait bien plus de variance et que de grosses chutes de ROI se produisent à des niveau de risque èlevé.

En fait ce qu eje souhaiterais c'est réaliser une moyenne qui, en montant en risque, lisse de plus en plus.

N'est-ce pas ce que lissage exponentiel d'Excel est censé faire? Dommage que celui-ci ne prennent en compte que les valeurs précédentes ce qui provoque un gros décalage de la courbe vers la droite.

Donc, quelle formule utiliser?

98lissage.xlsx (39.19 Ko)

Ce que tu veux c'est une droite...

la fonction pente va te donner la pente entre tes series de données

=pente(A2:A100;B2:B100)

Il te suffira de multiplier cette pente par tes X pour avoir tes Y

si ta serie est centrée réduite tes résidus seront un bruit blanc.

Si elles ne l'est pas tu la centre, tu la réduis puis tu l'expends.

Une droite éliminerai trop de détails...

Ce que je voudrais c'est une courbe lissée de manière exponentielle

Excel fait très bien le lissage exponentiel.. Tu ne pourras pas supprimer cette énorme baisse avec aucun processus de lissage.

Le graphe risque/return selon le capm est une courbe logarithmique... Un spline pour tes evenements extremes devrait gazer.

Rechercher des sujets similaires à "moyenne mobile"