Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment calculer une moyenne mobile en R (avec exemple)



Dans l’analyse des séries chronologiques, une moyenne mobile représente la valeur moyenne d’un certain nombre de périodes précédentes.

Le moyen le plus simple de calculer une moyenne mobile dans R est d’utiliser la fonction rollmean() du package zoo :

library(dplyr)
library(zoo)

#calculate 3-day rolling average
df %>%
  mutate(rolling_avg = rollmean(values, k=3, fill=NA, align='right'))

Cet exemple particulier calcule une moyenne mobile sur 3 jours pour la colonne intitulée valeurs .

L’exemple suivant montre comment utiliser cette fonction dans la pratique.

Exemple : calculer la moyenne mobile en R

Supposons que nous ayons le bloc de données suivant dans R qui montre les ventes d’un produit pendant 10 jours consécutifs :

#create data frame
df <- data.frame(day=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 sales=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19))

#view data frame
df

   day sales
1    1    25
2    2    20
3    3    14
4    4    16
5    5    27
6    6    20
7    7    12
8    8    15
9    9    14
10  10    19

Nous pouvons utiliser la syntaxe suivante pour créer une nouvelle colonne appelée avg_sales3 qui affiche la valeur moyenne mobile des ventes des 3 jours précédents dans chaque ligne du bloc de données :

library(dplyr)
library(zoo)

#calculate 3-day rolling average of sales
df %>%
  mutate(avg_sales3 = rollmean(sales, k=3, fill=NA, align='right'))

   day sales avg_sales3
1    1    25         NA
2    2    20         NA
3    3    14   19.66667
4    4    16   16.66667
5    5    27   19.00000
6    6    20   21.00000
7    7    12   19.66667
8    8    15   15.66667
9    9    14   13.66667
10  10    19   16.00000

Remarque : La valeur de k dans la fonction rollmean() contrôle le nombre de périodes précédentes utilisées pour calculer la moyenne mobile.

La colonne avg_sales3 affiche la valeur moyenne mobile des ventes pour les 3 périodes précédentes.

Par exemple, la première valeur de 19,66667 est calculée comme suit :

Moyenne mobile sur 3 jours = (25 + 20 + 14) / 3 = 19,66667

Vous pouvez également calculer plusieurs moyennes mobiles à la fois en utilisant plusieurs fonctions rollmean() dans la fonction mutate() .

Par exemple, le code suivant montre comment calculer la moyenne mobile des ventes sur 3 et 4 jours :

library(dplyr)
library(zoo)

#calculate 3-day and 4-day rolling average of sales
df %>%
  mutate(avg_sales3 = rollmean(sales, k=3, fill=NA, align='right'),
         avg_sales4 = rollmean(sales, k=4, fill=NA, align='right'))

   day sales avg_sales3 avg_sales4
1    1    25         NA         NA
2    2    20         NA         NA
3    3    14   19.66667         NA
4    4    16   16.66667      18.75
5    5    27   19.00000      19.25
6    6    20   21.00000      19.25
7    7    12   19.66667      18.75
8    8    15   15.66667      18.50
9    9    14   13.66667      15.25
10  10    19   16.00000      15.00

Les colonnes avg_sales3 et avg_sales4 affichent respectivement la moyenne mobile des ventes sur 3 et 4 jours.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment tracer plusieurs colonnes dans R
Comment faire la moyenne sur les colonnes dans R
Comment calculer la moyenne par groupe dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *