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 effectuer un test Ljung-Box en Python



Le test de Ljung-Box est un test statistique qui vérifie s’il existe une autocorrélation dans une série temporelle.

Il utilise les hypothèses suivantes :

H 0 : Les résidus sont distribués indépendamment.

H A : Les résidus ne sont pas distribués indépendamment ; ils présentent une corrélation en série.

Idéalement, nous aimerions ne pas rejeter l’hypothèse nulle. Autrement dit, nous aimerions que la valeur p du test soit supérieure à 0,05, car cela signifie que les résidus de notre modèle de série chronologique sont indépendants, ce qui est souvent une hypothèse que nous faisons lors de la création d’un modèle.

Ce tutoriel explique comment effectuer un test Ljung-Box en Python.

Exemple : test Ljung-Box en Python

Pour réaliser le test Ljung-Box sur une série de données en Python, on peut utiliser la fonction acorr_ljungbox() de la bibliothèque statsmodels qui utilise la syntaxe suivante :

acorr_ljungbox(x, décalages=Aucun)

où:

  • x : la série de données
  • lags : Nombre de décalages à tester

Cette fonction renvoie une statistique de test et une valeur p correspondante. Si la valeur p est inférieure à un certain seuil (par exemple α = 0,05), vous pouvez rejeter l’hypothèse nulle et conclure que les résidus ne sont pas distribués indépendamment.

Le code suivant montre comment utiliser cette fonction pour effectuer le test Ljung-Box sur l’ensemble de données statsmodels intégré appelé « SUNACTIVITY » :

import statsmodels.api as sm

#load data series
data = sm.datasets.sunspots.load_pandas().data

#view first ten rows of data series 
data[:5]

YEAR	SUNACTIVITY
0	1700.0	5.0
1	1701.0	11.0
2	1702.0	16.0
3	1703.0	23.0
4	1704.0	36.0

#fit ARMA model to dataset
res = sm.tsa.ARMA(data["SUNACTIVITY"], (1,1)).fit(disp=-1)

#perform Ljung-Box test on residuals with lag=5
sm.stats.acorr_ljungbox(res.resid, lags=[5], return_df=True)

          lb_stat	lb_pvalue
5	107.86488	1.157710e-21

La statistique du test est de 107,86488 et la valeur p du test est de 1,157710e-21 , ce qui est bien inférieur à 0,05. Ainsi, nous rejetons l’hypothèse nulle du test et concluons que les résidus ne sont pas indépendants.

Notez que nous avons choisi d’utiliser une valeur de décalage de 5 dans cet exemple, mais vous pouvez choisir n’importe quelle valeur que vous souhaitez utiliser pour le décalage. Par exemple, nous pourrions plutôt utiliser une valeur de 20 :

#perform Ljung-Box test on residuals with lag=20
sm.stats.acorr_ljungbox(res.resid, lags=[20], return_df=True)

           lb_stat	lb_pvalue
20	343.634016	9.117477e-61

La statistique de test du test est 343,634016 et la valeur p du test est 9,117477e-61 , ce qui est bien inférieur à 0,05. Ainsi, nous rejetons une nouvelle fois l’hypothèse nulle du test et concluons que les résidus ne sont pas indépendants.

En fonction de votre situation particulière, vous pouvez choisir une valeur inférieure ou supérieure à utiliser pour le décalage.

Ajouter un commentaire

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