Accueil Science des données How to R - Guide du débutant Analyse des séries temporelles

How to R - Guide du débutant Analyse des séries temporelles

Le guide "How to R - Beginner Guide Time Series Analysis" présente une analyse de séries temporelles avec R, en esquissant les principales étapes de la préparation des données, de la modélisation et de la visualisation. L'utilisation des packs R tidyverse, tsibble et fable est mise en avant.

Table des matières

Analyse de séries temporelles avec R

Nous nous limiterons dans ce petit tutoriel à esquisser brièvement les étapes essentielles de l'analyse des séries temporelles dans le langage de programmation R.

Il s'agit de

  • Préparation des données,
  • Modélisation et
  • Visualisation.  

Nous utilisons pour cela les paquets R tidyverse, tsibble et fable.

Préparation des données 

En règle générale, toutes les fonctions nécessaires à la préparation générale des données sont contenues dans le paquet "tidyverse". Pour la préparation des données dans le style "tidy", le paquet "tsibble" est toutefois également nécessaire. Tout d'abord, nous chargeons les paquets et les données :

				
					library(fable) 

library(tsibble) 
library(tidyverse, quietly = TRUE, warn.conflicts = FALSE) 

raw_data  = read_delim("~/Documents/Progonosewerkstatt/Peer_Labs/R/2_DataPreparation/01_Data/Company.csv", delim=";") 

glimpse(raw_data) 

## Rows: 101 
## Columns: 9 
## $ Month       <dttm> 2011-01-01, 2011-02-01, 2011-03-01, 2011-04-01, 2011-05-… 
## $ Germany     <dbl> 19722000, 25062000, 47066000, 52625000, 66489000, 5660100… 
## $ Canada      <dbl> 1809000, 2206000, 3035000, 3793000, 4813000, 4370000, 454… 
## $ Switzerland <dbl> 3624000, 4972000, 7010000, 7084000, 9452000, 7971000, 733… 
## $ Austria     <dbl> 1436000, 2390000, 6556000, 7544000, 9069000, 8154000, 817… 
## $ US          <dbl> 3598000, 3349000, 6101000, 6098000, 6935000, 8644000, 757… 
## $ France      <dbl> 4861000, 5465000, 8440000, 8223000, 9706000, 8809000, 806… 
## $ Sweden      <dbl> 10723000, 12333000, 23562000, 30595000, 46253000, 3886900… 
## $ China       <dbl> 8103000, 4040000, 25974000, 34776000, 31125000, 31576000,… 

 

Im “tidy”-Style werden die Daten im Long-Format benötigt. Wir nutzen die “pivot_longer” Funktion. Anschliessend konvertieren wir das tibble-Objekt (= tidy dataframe) in ein tsibble Objekt, welches ein dataframe für Zeitreihen ist. 

prep_data = raw_data %>%  
  pivot_longer(., cols = 2:9, names_to = "Subsidiary", values_to = "Revenues") %>%  
  mutate(Month = yearmonth(Month)) %>%  
  tsibble(., key = Subsidiary, index = Month) 
glimpse(prep_data) 

## Rows: 808 
## Columns: 3 
## Key: Subsidiary [8] 
## $ Month      <mth> 2011 Jan, 2011 Feb, 2011 Mar, 2011 Apr, 2011 May, 2011 Jun… 
## $ Subsidiary <chr> "Austria", "Austria", "Austria", "Austria", "Austria", "Au… 
## $ Revenues   <dbl> 1436000, 2390000, 6556000, 7544000, 9069000, 8154000, 8173… 
				
			

Pour avoir une idée des données, commençons par les regarder.

				
					prep_data %>% autoplot(Revenues) 
				
			
Plot dans R : graphique à partir de Revenues par mois et par pays

Nous constatons qu'il y a une rupture dans les données entre 2016 et début 2020. Après avoir consulté l'expert technique, nous savons qu'il s'agit d'un changement de système et que toutes les valeurs doivent être non négatives. Nous corrigeons cela.

				
					prep_data = prep_data %>% 
  mutate(Revenues = abs(Revenues))
prep_data %>% autoplot(Revenues)

				
			
Plot in R Revenues par mois et par pays

On voit maintenant que les séries chronologiques disponibles ont un fort caractère saisonnier. Les données sont ainsi traitées et peuvent être modélisées.

Modélisation de l'analyse des séries temporelles

Deux modèles très répandus, disponibles dans le package Fable, sont ETS et ARIMA. Ces modèles sont indiqués avec une représentation de formulaire compacte. La variable de réponse (Revenues) et toutes les transformations sont contenues dans le côté gauche, tandis que la spécification du modèle se trouve dans le côté droit de la formule. Si un modèle n'est pas entièrement spécifié (ou si le côté droit de la formule est complètement absent), les composants non spécifiés sont automatiquement sélectionnés.

Nous utilisons les deux classes de modèles pour trouver le meilleur modèle pour chaque série chronologique.

				
					fit <- prep_data %>%
  model(
    ets = ETS(Revenues),
    arima = ARIMA(Revenues)
  )
## Warning in sqrt(diag(best$var.coef)): NaNs produced

				
			

Avec coef(), on peut accéder à tous les paramètres d'ajustement d'un modèle.

				
					fit %>% coef()
## # A tibble: 145 x 7
##    Subsidiary .model term  estimate std.error statistic p.value
##    <chr>      <chr>  <chr>    <dbl>     <dbl>     <dbl>   <dbl>
##  1 Austria    ets    alpha  2.21e-1        NA        NA      NA
##  2 Austria    ets    gamma  1.00e-4        NA        NA      NA
##  3 Austria    ets    l      6.43e+6        NA        NA      NA
##  4 Austria    ets    s0    -4.15e+6        NA        NA      NA
##  5 Austria    ets    s1    -3.35e+5        NA        NA      NA
##  6 Austria    ets    s2     2.47e+6        NA        NA      NA
##  7 Austria    ets    s3     2.42e+6        NA        NA      NA
##  8 Austria    ets    s4     1.35e+6        NA        NA      NA
##  9 Austria    ets    s5     1.78e+6        NA        NA      NA
## 10 Austria    ets    s6     1.82e+6        NA        NA      NA
## # … with 135 more rows

				
			

glance permet de visualiser différentes caractéristiques statistiques de l'adaptation du modèle à la série temporelle.

				
					fit %>% glance
## # A tibble: 16 x 12
##    Subsidiary .model   sigma2 log_lik   AIC  AICc   BIC      MSE     AMSE
##    <chr>      <chr>     <dbl>   <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 Austria    ets    3.51e+11  -1568. 3166. 3172. 3205.  3.02e11  3.14e11
##  2 Canada     ets    1.08e- 2  -1529. 3088. 3093. 3127.  1.47e11  1.53e11
##  3 China      ets    1.84e+13  -1768. 3566. 3572. 3605.  1.59e13  2.76e13
##  4 France     ets    5.57e+11  -1591. 3213. 3218. 3252.  4.80e11  4.79e11
##  5 Germany    ets    1.98e+13  -1772. 3573. 3579. 3613.  1.71e13  1.73e13
##  6 Sweden     ets    1.08e+13  -1741. 3512. 3517. 3551.  9.26e12  1.02e13
##  7 Switzerla… ets    3.61e+11  -1569. 3169. 3175. 3208.  3.11e11  3.20e11
##  8 US         ets    5.81e- 3  -1568. 3172. 3181. 3219.  3.20e11  3.23e11
##  9 Austria    arima  4.55e+11  -1308. 2624. 2625. 2634. NA       NA      
## 10 Canada     arima  1.82e+11  -1285. 2581. 2582. 2593. NA       NA      
## 11 China      arima  2.07e+13  -1492. 2992. 2992. 3002. NA       NA      
## 12 France     arima  5.13e+11  -1329. 2672. 2674. 2690. NA       NA      
## 13 Germany    arima  2.20e+13  -1498. 3003. 3003. 3010. NA       NA      
## 14 Sweden     arima  1.10e+13  -1468. 2944. 2944. 2954. NA       NA      
## 15 Switzerla… arima  4.56e+11  -1322. 2655. 2655. 2667. NA       NA      
## 16 US         arima  4.78e+11  -1311. 2633. 2634. 2648. NA       NA      
## # … with 3 more variables: MAE <dbl>, ar_roots <list>, ma_roots <list>


				
			

Avec la fonction Forecast, nous générons les prévisions pour chaque série temporelle à partir des modèles.

				
					fc = fit %>% 
  forecast(h = "2 years")

				
			

Enfin, nous visualisons les prévisions. On peut voir que les deux méthodes captent les modèles des différentes séries temporelles et les intègrent dans les prévisions de leur méthodologie respective, comme c'est le cas par exemple pour le "creux de l'été" dans la filiale française ou la tendance à la hausse dans la société américaine.

				
					fc %>% autoplot(prep_data) +
  ggtitle("Reveunes of Company's Subsidiaries")

				
			
Prévision dans R sous forme de tracé

Télécharger l'article wiki au format PDF

En savoir plus ?

Vous souhaitez approfondir ce sujet ? Dans ce cas, nous serions ravis de discuter personnellement avec vous des domaines d'application de R - volontiers aussi en relation avec les produits Analytics de SAP. N'hésitez pas à prendre contact avec nous !

Votre contact Analytics
Nadine Matt_2
Nadine Matt
Customer Engagement & Communication Executive

Publié par :

Dr. Stefan Lieder

Ancien directeur de l'atelier Data Science

autor:IN

Cet article vous a-t-il plu ?

Cet article vous a-t-il été utile ?

Cliquez sur une étoile pour évaluer !

Note moyenne 0 / 5.
Nombre d'évaluations : 0

Aucun vote pour l'instant ! Soyez la première personne à noter ce post !

INFORMATIONS

Plus d'informations

Page de couverture Wiki Qu'est-ce que l'intelligence artificielle (AI) (1)

Qu'est-ce que l'intelligence artificielle (IA) ?

Artificial Intelligence signifie intelligence artificielle (IA). Et comme il n'existe pas de définition philosophique universellement reconnue de l'intelligence, on peut trouver différentes conceptions de ce qu'est l'intelligence artificielle...

Page de couverture Wiki Qu'est-ce que l'apprentissage automatique (ML) ?

Qu'est-ce que le Machine Learning (ML) ?

Le Machine Learning est la réponse à l'une des questions posées à une intelligence artificielle faible. Il s'agit d'un concept fondamental pour étudier des algorithmes qui s'améliorent automatiquement sur la base de l'expérience (en utilisant des données)...

Taxonomie de l'UE Wiki

Taxonomie de l'UE - Implémentation dans un système SAP Analytics

De la définition des KPI au reporting : évaluez les activités de votre entreprise - chiffre d'affaires, CapEx et OpEx - selon les critères de la taxonomie européenne. Nous vous accompagnons pas à pas dans la mise en œuvre réussie des directives de la taxonomie européenne...

Wiki SCT

Tour de contrôle du développement durable (SCT)

À une époque où la gestion durable est indispensable, le suivi et l'enregistrement de ses propres performances en matière de durabilité grâce à des données précises sont de plus en plus importants. La SAP Sustainability Control Tower est une solution de durabilité complète qui permet un reporting global...

Wiki Qu'est-ce que R

Qu'est-ce que R ?

R est un langage de programmation développé pour des applications statistiques, qui jouit d'une grande diffusion, notamment dans le domaine de la science des données...

Wiki 5 indicateurs clés de performance (KPI) en matière de développement durable

Les 5 KPI de durabilité les plus importants

Pourquoi a-t-on besoin d'indicateurs dans le domaine du développement durable ? Quels sont les 5 indicateurs clés de performance (KPI) de durabilité les plus importants ? Et pourquoi les Sustainability KPI sont-ils importants pour votre entreprise ? Vous trouverez les réponses à ces questions dans l'article suivant...

Wiki Datasphere contre BW4HANA

Comparaison : SAP Datasphere vs. SAP BW/4HANA

SAP propose différentes options de data warehousing avec des solutions telles que SAP BW/4HANA et SAP Datasphere. Alors que BW/4HANA est spécialisé dans les données d'entreprise structurées et l'analytique, Datasphere se concentre sur l'intégration complète des données à travers les plates-formes...

Consentement au cookie GDPR avec bannière Real Cookie