Science des donnéesStatistiques appliquées

Test de Dickey-Fuller augmenté en Python (avec exemple)

Guide complet du test de Dickey-Fuller augmenté (ADF) en Python : théorie, implémentation avec statsmodels, interprétation statistique et cas pratiques.

PUBLIÉ

L’analyse des séries temporelles constitue l’un des piliers méthodologiques les plus sophistiqués de l’économétrie moderne, de la biostatistique et des sciences comportementales quantitatives. Qu’il s’agisse de modéliser les fluctuations des marchés financiers, d’anticiper la propagation d’une épidémie ou de quantifier les dynamiques affectives d’un individu mesurées par évaluation écologique instantanée (EMA), le modélisateur se heurte immédiatement à une propriété stochastique fondamentale : la stationnarité. L’absence de stationnarité invalide d’emblée la majeure partie des théorèmes limites classiques, transformant les inférences statistiques traditionnelles en illusions mathématiques séduisantes mais fallacieuses.

Face à ce défi théorique majeur, le test de Dickey-Fuller augmenté (communément désigné sous l’acronyme ADF pour Augmented Dickey-Fuller) s’est imposé comme l’étalon-or des tests de racine unitaire. Développé initialement par David Dickey et Wayne Fuller à la fin des années 1970, puis perfectionné par Said et Dickey en 1984, cet outil inférentiel permet de déterminer de manière rigoureuse si une chronique temporelle est régie par un processus stochastique intégrable ou si elle oscille autour d’une moyenne et d’une variance invariantes au cours du temps. Comprendre sa mécanique intime est un prérequis absolu pour quiconque souhaite manipuler des séries chronologiques sans succomber aux pièges des corrélations trompeuses.

Le présent traité propose une exploration exhaustive, théorique et opérationnelle du test ADF à travers le langage de programmation Python et la bibliothèque scientifique Statsmodels. En articulant rigueur mathématique, décomposition algorithmique et application empirique à des données longitudinales, cet article fournit aux chercheurs, data scientists et économètres les clés conceptuelles indispensables pour diagnostiquer la présence d’une racine unitaire, paramétrer adéquatement les régressions sous-jacentes, et transformer rationnellement les séries non stationnaires en signaux propices à une modélisation prédictive ou causale rigoureuse.

1. Introduction aux séries temporelles et concept fondamental de stationnarité

L’étude systématique des séries temporelles repose sur le postulat que les observations successives ne constituent pas un échantillon aléatoire indépendant et identiquement distribué (i.i.d.), mais forment au contraire une trajectoire ordonnée dans le temps issue d’un processus stochastique sous-jacent. La modélisation de telles dynamiques exige une caractérisation précise de la stabilité structurelle du générateur de données à travers les époques observées.

1.1 Définition mathématique de la stationnarité au sens faible

Dans l’arsenal probabiliste de l’analyse séquentielle, la stationnarité au sens faible — également qualifiée de stationnarité d’ordre deux, de stationnarité large ou de covariance-stationnarité — constitue l’hypothèse opérationnelle fondamentale sur laquelle reposent les modèles de la famille Box-Jenkins (ARMA, ARIMA). Formellement, soit un processus stochastique à temps discret ${Y_t}_{t in \mathbb{Z}}$ défini sur un espace de probabilité probabilisé $(\Omega, \mathcal{F}, \mathbb{P})$. Ce processus est dit stationnaire au second ordre si et seulement s’il satisfait simultanément trois conditions mathématiques strictes relatives à ses moments de premier et de deuxième ordres.

La première condition impose l’invariance temporelle de l’espérance mathématique. Pour tout instant $t in \mathbb{Z}$, le moment d’ordre un doit être rigoureusement constant et indépendant du temps, ce qui se traduit par : $\mathbb{E}[Y_t] = \mu < \infty$, où $\mu$ est une constante réelle finie. Cette propriété garantit que la série temporelle ne présente aucune trajectoire d'expansion déterministe ou de dérive moyenne au cours de l'horizon d'observation, oscillant perpétuellement autour d'un barycentre stable.

La deuxième condition stipule que la variance temporelle du processus doit être finie, constante et strictement exempte de tout phénomène d’hétéroscédasticité conditionnelle ou inconditionnelle. Mathématiquement, pour tout instant $t$, nous devons observer : $\mathbb{V}ar(Y_t) = \mathbb{E}[(Y_t – \mu)^2] = \sigma^2 0$. L’amplitude des fluctuations stochastiques du signal demeure ainsi homogène sur l’ensemble du continuum tempologique, excluant toute dispersion croissante ou décroissante.

La troisième condition régit la structure de dépendance temporelle entre deux observations séparées par un intervalle ou un décalage (lag) arbitraire $k$. L’autocovariance entre $Y_t$ et $Y_{t-k}$ ne doit dépendre exclusivement que de la distance temporelle $k$ et en aucun cas de l’origine temporelle $t$ elle-même : $\mathbb{C}ov(Y_t, Y_{t-k}) = \mathbb{E}[(Y_t – \mu)(Y_{t-k} – \mu)] = \gamma(k)$, pour tout $t, k in \mathbb{Z}$. Il s’ensuit que la matrice d’autocovariance du processus est une matrice de Toeplitz symétrique.

Il importe de distinguer formellement cette stationnarité au sens faible de la stationnarité stricte (ou forte). Cette dernière exige que la loi de probabilité conjointe du vecteur aléatoire $(Y_{t_1}, Y_{t_2}, dots, Y_{t_n})$ soit rigoureusement identique à celle du vecteur translaté $(Y_{t_1 + h}, Y_{t_2 + h}, dots, Y_{t_n + h})$ pour tout ensemble d’indices et tout décalage $h in \mathbb{Z}$. Si la stationnarité stricte implique la stationnarité faible dès lors que les moments d’ordre deux existent, la réciproque n’est vérifiée que dans le cadre très particulier des processus gaussiens, où la distribution de probabilité multivariée est intégralement caractérisée par ses espérances et ses covariances.

1.2 Conséquences méthodologiques de la non-stationnarité

L’application non critique des estimateurs statistiques usuels à des séries temporelles dépourvues de la propriété de stationnarité entraîne des pathologies inférentielles majeures. Le phénomène le plus dévastateur sur le plan analytique est sans conteste celui de la régression fallacieuse (ou spurious regression), mis en lumière de façon séminale par Clive Granger et Paul Newbold en 1974, puis formalisé asymptotiquement par Peter C. B. Phillips en 1986.

Lorsque deux processus non stationnaires complètement indépendants — tels que deux marches aléatoires générées par des générateurs stochastiques orthogonaux sans aucun lien de causalité ni mécanisme d’engendrement commun — font l’objet d’une régression linéaire par la méthode des moindres carrés ordinaires (MCO), les tests conventionnels produisent des résultats catastrophiquement trompeurs. Le coefficient de détermination $R^2$ converge vers des valeurs artificiellement élevées, tandis que la statistique de Student associée aux pentes converge en loi vers une variable aléatoire divergente plutôt que vers la loi normale standard. Le chercheur observe alors des $p$-valeurs infinitésimales (souvent $p < 0{,}001$), conduisant au rejet systématique et erroné de l'hypothèse nulle d'absence de corrélation.

Parallèlement, au sein des modèles univariés autorégressifs d’ordre un (AR(1)) de la forme $Y_t = \phi Y_{t-1} + \epsilon_t$, la présence d’une racine unitaire ($phi = 1$) vicie profondément les propriétés géométriques de l’estimateur des MCO $\hat{\phi}$. Contrairement au cas stationnaire où $\hat{\phi}$ est asymptotiquement sans biais et normalement distribué avec une vitesse de convergence en $\sqrt{T}$, l’estimateur sous racine unitaire converge à une vitesse super-consistante en $T$, mais souffre d’un biais négatif persistant en échantillon fini (biais de Hurwicz). De surcroît, sa distribution limite n’est plus gaussienne, invalidant ipso facto les intervalles de confiance construits à partir des quantiles de la loi de Student.

1.3 Pertinence dans les mesures longitudinales en sciences comportementales

Si la problématique de la stationnarité a historiquement émergé au sein de l’économétrie macrofinancière, elle revêt aujourd’hui une acuité fondamentale dans le champ des sciences comportementales, de la psychiatrie computationnelle et de la psychologie quantitative. L’avènement des méthodologies de recueil intensif de données longitudinales — notamment l’évaluation écologique instantanée (Ecological Momentary Assessment ou EMA) et le suivi par capteurs passifs (actigraphie, biomarqueurs physiologiques) — confronte directement les psychologues à des chroniques temporelles complexes.

Dans l’étude des processus affectifs, cognitifs ou physiologiques répétés chez un même individu, la distinction entre dynamiques d’états transitoires (qui fluctuent autour d’un point d’équilibre homéostatique) et modifications structurelles de traits stables (dérives ontogénétiques, apprentissage, aggravation dépressive progressive) correspond précisément à la frontière mathématique entre processus stationnaires et processus à racine unitaire ou à rupture de tendance. Une élévation continue des concentrations salivaires de cortisol ou une dérive ascendante d’un score d’anhédonie mesuré trois fois par jour durant six mois ne sauraient être modélisées comme de simples bruits blancs autocorréles.

Traiter une série psychométrique non stationnaire comme si elle était stationnaire induit un risque critique : celui de postuler une homéostasie psychologique illusoire et de méconnaître l’inertie émotionnelle cumulative d’un patient. L’ergodicité — le principe selon lequel les propriétés statistiques calculées sur un échantillon inter-individuel transversal sont identiques à celles obtenues par le suivi longitudinal d’un unique sujet — s’effondre irrémédiablement en présence de non-stationnarité. Dès lors, le recours à des tests de racine unitaire formels comme le test ADF devient un impératif méthodologique incontournable avant d’ajuster des modèles autorégressifs multivariés (VAR) ou des équations différentielles stochastiques à l’échelle intra-individuelle.

2. Fondements théoriques du test de Dickey-Fuller augmenté (ADF)

L’évaluation rigoureuse de la persistance stochastique nécessite un cadre inférentiel adapté à la distribution singulière des séries temporelles intégrées. Le test de Dickey-Fuller augmenté constitue la concrétisation probabiliste de cette démarche, opérant une transition fondamentale entre les modèles autorégressifs simplifiés et les représentations autorégressives générales enrichies.

2.1 Origines et limites du test de Dickey-Fuller simple

Le point de départ analytique de la détection de racine unitaire réside dans le modèle autorégressif d’ordre 1, formalisé par l’équation stochastique :

$$Y_t = \phi Y_{t-1} + \epsilon_t$$

$\epsilon_t \sim \mathcal{N}(0, \sigma^2)$ est supposé être un bruit blanc gaussien d’innovations indépendantes. Dans cette formulation, le paramètre autoregressif $phi$ régit l’entièreté de la mémoire du système. Si $|phi| < 1$, le processus est strictement stationnaire, générant une mémoire courte où l'impact des chocs passés $\epsilon_{t-k}$ s'atténue de manière exponentielle selon une suite géométrique $\phi^k to 0$ lorsque $k to \infty$. À l'inverse, si $phi = 1$, le processus dégénère en une marche aléatoire pure : chaque choc stochastique s'incorpore de façon indélébile et perpétuelle dans le niveau futur de la série, conférant au système une variance théorique infinie lorsque le temps tend vers l'infini.

Pour tester formellement l’hypothèse de racine unitaire, Dickey et Fuller (1979) ont réécrit cette relation en soustrayant le terme retardé $Y_{t-1}$ des deux côtés de l’équation, aboutissant à la formulation aux différences premières :

$$\Delta Y_t = (\phi – 1) Y_{t-1} + \epsilon_t = \gamma Y_{t-1} + \epsilon_t$$

$\Delta Y_t = Y_t – Y_{t-1}$ désigne l’opérateur de différence première et $\gamma = \phi – 1$. Tester l’hypothèse que la série possède une racine unitaire ($phi = 1$) revient dès lors à tester l’hypothèse linéaire $H_0: \gamma = 0$ contre l’hypothèse unilatérale de stationnarité $H_1: \gamma < 0$.

Néanmoins, ce test de Dickey-Fuller simple souffre d’une limitation méthodologique majeure et rédhibitoire dans la pratique empirique : il repose sur le postulat restrictif que les résidus $\epsilon_t$ sont rigoureusement sériellement non corrélés. Or, dans la quasi-totalité des séries chronologiques économiques, biologiques ou sociales, les résidus d’une simple spécification AR(1) conservent une dynamique interne complexe et une autocorrélation d’ordres supérieurs. Cette violation flagrante de l’hypothèse de bruit blanc vicie irrémédiablement la variance asymptotique de l’estimateur de MCO, provoquant une distorsion considérable de la taille du test et générant une avalanche de faux rejets de l’hypothèse nulle.

2.2 Structure mathématique de la régression ADF

Afin de neutraliser définitivement l’impact néfaste de l’autocorrélation résiduelle sans altérer les propriétés asymptotiques du test sous racine unitaire, Said et Dickey (1984) ont proposé une extension élégante : le test de Dickey-Fuller augmenté (ADF). Le principe fondamental repose sur le théorème de décomposition de Wold, selon lequel tout processus stationnaire ou intégré d’ordre autorégressif fini ou infini AR($p$) peut être approximé par l’adjonction de termes de retards différentiés au sein de l’équation de régression.

L’équation mathématique maîtresse du test ADF se structure dès lors comme suit :

$$\Delta Y_t = \alpha + \beta t + \gamma Y_{t-1} + \sum_{i=1}^{p} \delta_i \Delta Y_{t-i} + \epsilon_t$$

Dans cette formulation paramétrique universelle, $\alpha$ désigne le terme constant (ou dérive), $\beta t$ représente une tendance déterministe linéaire indicée par le temps $t$, $\gamma$ demeure le paramètre fondamental capturant la présence de la racine unitaire, et les coefficients $\delta_i$ (pour $i in {1, dots, p}$) correspondent aux paramètres correcteurs associés aux variations retardées de la variable endogène. Les termes différentiés $\Delta Y_{t-i}$ ont pour rôle mathématique exclusif de « blanchir » les résidus : en absorbant l’intégralité de la structure d’autocorrélation à court terme du signal, ils garantissent que le terme d’erreur $\epsilon_t$ se comporte asymptotiquement comme un bruit blanc authentique de moyenne nulle et de variance constante $\sigma_\epsilon^2$.

La distribution limite de la statistique de test associée au coefficient $\hat{\gamma}$ constitue l’une des découvertes les plus marquantes de la statistique non paramétrique et paramétrique du XXe siècle. Si l’on construisait la statistique de Student conventionnelle :

$$t_{\text{ADF}} = \frac{\hat{\gamma}}{\text{SE}(\hat{\gamma})}$$

$\text{SE}(\hat{\gamma})$ est l’erreur-type estimée par les moindres carrés ordinaires, cette grandeur ne converge nullement vers la loi de Student $t(T-K)$ ni vers la loi normale centrée réduite $\mathcal{N}(0, 1)$, même lorsque la taille de l’échantillon $T$ tend vers l’infini. Sous l’hypothèse nulle d’une racine unitaire stochastique, le dénominateur et le numérateur convergent vers des fonctionnelles non linéaires du mouvement brownien standard (processus de Wiener $W(r)$ défini sur l’intervalle unitaire $r in [0, 1]$). Par conséquent, la distribution asymptotique de Dickey-Fuller est fortement asymétrique, décalée vers la gauche et dotée d’une queue épaisse dans les valeurs négatives.

2.3 Formulation formelle des hypothèses statistiques

La conduite rigoureuse du test ADF exige une formalisation univoque des hypothèses statistiques concurrentes qui guident la décision inférentielle :

  • Hypothèse nulle ($H_0$) : $\gamma = 0$ (ou de manière équivalente $phi = 1$). La série temporelle contient une racine unitaire stochastique. Sous cette hypothèse, le processus est non stationnaire et relève de la classe des séries intégrées d’ordre supérieur ou égal à un, noté $Y_t \sim I(d)$ avec $d ge 1$. Les chocs imprévus ont une persistance infinie dans le temps.
  • Hypothèse alternative ($H_1$) : $\gamma < 0$ (soit $phi < 1$). Le processus ne possède aucune racine unitaire stochastique. La série temporelle est stationnaire (soit stationnaire en moyenne, soit stationnaire autour d'une tendance déterministe linéaire). Les perturbations aléatoires s'estompent au fil du temps et la série exhibe une force de rappel systématique vers son équilibre dynamique.

Cette asymétrie conceptuelle induit une conséquence pratique majeure : le fardeau de la preuve incombe formellement à l’hypothèse de stationnarité. En vertu de la philosophie néoclassique des tests d’hypothèses de Neyman-Pearson, l’analyste conserve l’hypothèse d’une racine unitaire par défaut, à moins que les données n’apportent une évidence empirique écrasante matérialisée par une statistique de test $t_{\text{ADF}}$ profondément négative, franchissant les quantiles critiques établis.

3. Typologie des spécifications du modèle de test ADF

Le comportement de la statistique de test de Dickey-Fuller est intimement tributaire de la composition déterministe de la régression d’estimation. L’omission ou l’inclusion erronée d’une constante ou d’une tendance temporelle altère substantiellement la distribution limite sous-jacente, exigeant des tables de valeurs critiques distinctes pour chaque configuration géométrique.

3.1 Modèle sans constante ni tendance déterministe

La première variante structurelle du test ADF est le modèle purement stochastique sans aucun terme déterministe, souvent catalogué sous la désignation de spécification « sans dérive » (ou none / ‘n’ dans les logiciels statistiques). L’équation estimée par les moindres carrés s’écrit :

$$\Delta Y_t = \gamma Y_{t-1} + \sum_{i=1}^{p} \delta_i \Delta Y_{t-i} + \epsilon_t$$

Cette spécification repose sur l’hypothèse très contraignante selon laquelle, sous l’hypothèse alternative de stationnarité, la série temporelle possède une espérance mathématique strictement nulle ($\mathbb{E}[Y_t] = 0$). Les trajectoires générées par cette équation sous $H_1$ oscillent de part et d’autre de l’axe des abscisses sans jamais présenter de décalage vertical structurel.

Sur le plan empirique, cette restriction rend le modèle ‘n’ inadapté à l’immense majorité des données brutes de l’économie ou des sciences sociales, qui présentent presque systématiquement des moyennes strictement positives ou négatives. L’usage exclusif de cette spécification est réservé aux séries préalablement centrées autour de leur moyenne empirique, ou aux résidus issus d’une régression préliminaire de cointégration théoriquement exempte de terme d’interception. La distribution de la statistique de test, notée historiquement $tau$ (tau), requiert l’usage de la table critique la plus restrictive, toute violation de l’hypothèse de moyenne nulle sous l’alternative induisant un effondrement dramatique de la puissance du test.

3.2 Modèle avec dérive (terme constant)

La deuxième spécification, et de loin la plus fréquemment employée dans la pratique computationnelle quotidienne, intègre un terme constant indépendant du temps, également dénommé terme de dérive (drift ou ‘c’ dans la bibliothèque Statsmodels) :

$$\Delta Y_t = \alpha + \gamma Y_{t-1} + \sum_{i=1}^{p} \delta_i \Delta Y_{t-i} + \epsilon_t$$

L’interprétation théorique de cette équation révèle une dualité fascinante entre les hypothèses $H_0$ et $H_1$. Sous l’hypothèse alternative de stationnarité ($\gamma < 0$), la série temporelle oscille autour d'une moyenne inconditionnelle non nulle rigoureusement définie par le rapport :

$$\mu = -\frac{\alpha}{\gamma}$$

Le terme constant garantit que le niveau de base du processus n’est pas contraint à zéro, ce qui correspond fidèlement à la plupart des grandeurs mesurées en laboratoire (taux d’hormones circulantes, temps de réaction, scores d’évaluation clinique standardisés).

En revanche, sous l’hypothèse nulle de racine unitaire ($\gamma = 0$), le comportement de l’équation subit une métamorphose : $\Delta Y_t = \alpha + dots + \epsilon_t$. Si la constante $\alpha$ est non nulle sous $H_0$, la série en niveau $Y_t$ se comporte comme une marche aléatoire avec dérive stochastique, engendrant une trajectoire balistique déterministe dominante à pente linéaire proportionnelle à $\alpha t$. La distribution asymptotique associée à ce modèle, désignée par $\tau_\mu$, est décalée vers la gauche comparativement à $tau$, impliquant des seuils de rejet plus sévères (par exemple, environ $-2{,}86$ au seuil de $5%$ pour un échantillon infini, contre $-1{,}95$ pour le modèle sans constante).

3.3 Modèle avec dérive et tendance temporelle linéaire

La troisième spécification incorpore conjointement un terme constant et une pente temporelle déterministe explicite, désignée comme spécification avec tendance (trend ou ‘ct’) :

$$\Delta Y_t = \alpha + \beta t + \gamma Y_{t-1} + \sum_{i=1}^{p} \delta_i \Delta Y_{t-i} + \epsilon_t$$

Cette structure vise à discriminer rigoureusement deux formes conceptuellement distinctes de non-stationnarité qui conduisent souvent à des erreurs diagnostiques critiques : la stationnarité stochastique par嗐 intégration (Difference-Stationary ou DS, correspondant à une racine unitaire) et la stationnarité en tendance déterministe (Trend-Stationary ou TS). Une série de type TS n’est pas mue par une mémoire stochastique infinie : elle oscille fidèlement autour d’une trajectoire déterministe croissante ou décroissante modélisée par une droite de tendance temporelle $\alpha + \beta t$. Pour une série TS, les chocs passés sont transitoires et ne modifient en rien la trajectoire asymptotique à long terme.

Sous la spécification ‘ct’, l’hypothèse alternative postule que le processus est stationnaire autour de cette trajectoire séculaire. La distribution limite résultante, notée $\tau_\tau$, subit une translation supplémentaire vers les valeurs négatives extrêmes : le quantile critique au seuil de $5%$ se situe autour de $-3{,}41$. L’inconvénient méthodologique d’une telle régression réside dans la sur-paramétrisation potentielle : inclure une variable temporelle $t$ alors que la série ne présente aucune tendance réelle dissipe inutilement des degrés de liberté et réduit significativement la puissance statistique du test, diminuant la probabilité de rejeter $H_0$ lorsque la série est effectivement stationnaire.

4. Configuration de l’environnement Python et bibliothèques d’analyse

Le déploiement informatique d’analyses de séries temporelles avancées impose la mise en place d’un environnement scientifique hautement contrôlé. Le typage strict des structures temporelles et la précision numérique des algorithmes de résolution matricielle conditionnent directement la validité des statistiques dérivées.

4.1 Écosystème scientifique pour l’économétrie et les séries temporelles

L’écosystème open-source Python dispose d’un ensemble unifié de bibliothèques hautement optimisées, interconnectées par le biais d’interfaces de programmation (API) standardisées. Au sommet de cette hiérarchie pour l’économétrie formelle se positionne la bibliothèque Statsmodels. Développée originellement comme une scission de SciPy dédiée aux modèles statistiques, elle héberge le sous-module statsmodels.tsa (Time Series Analysis), dont les algorithmes d’estimation linéaire, non-linéaire et de tests d’hypothèses fournissent des sorties statistiques standardisées reproduisant la précision des progiciels académiques historiques tels que Stata ou R.

Le socle matriciel et structurel repose indissolublement sur NumPy et Pandas. NumPy garantit l’exécution vectorisée des calculs sous-jacents aux moindres carrés ordinaires via des liaisons directes avec les routines LAPACK et BLAS en C et Fortran. De son côté, la bibliothèque Pandas fournit la structure fondamentale de tableau de données (DataFrame) et de série (Series), conçues spécifiquement pour encapsuler la métadonnée temporelle avec une efficacité mémoire optimale.

Enfin, l’exploration morphologique et l’interprétation diagnostique requièrent des outils de visualisation graphique vectorielle de premier plan. Matplotlib offre le moteur de rendu bas niveau requis pour une mise en forme rigoureuse selon les standards des publications académiques, tandis que Seaborn surajoute une couche d’abstraction stylistique et statistique, facilitant la projection visuelle des bandes de dispersion et des distributions de densités de probabilité.

4.2 Structuration optimale des objets temporels avec Pandas

Une cause majeure de dysfonctionnement lors de l’exécution d’algorithmes de racine unitaire découle d’un mauvais typage de l’index chronologique sous Pandas. Pour qu’une série temporelle soit exploitée sans ambiguïté par les routines de Statsmodels, l’index du conteneur de données doit être explicitement converti en un objet DatetimeIndex ou PeriodIndex, assorti d’une fréquence temporelle régulière déclarée (frequency).

L’ingénierie des données temporelles impose une rigueur absolue lors des phases d’importation et de pré-traitement. L’appel à la fonction pd.to_datetime() assure la conversion unifiée des chaînes de caractères calendaires, tandis que la méthode .asfreq() ou .resample() permet d’imposer un pas de discrétisation temporel uniforme (par exemple, journalier ‘D’, horaire ‘H’, ou mensuel ‘M’). L’absence de régularité dans l’échantillonnage temporel peut introduire des biais sévères dans l’estimation des coefficients autorégressifs des retards différentiés.

La question du traitement des valeurs manquantes (valeurs NaN) constitue un second défi méthodologique. La fonction mathématique sous-jacente au test ADF est intrinsèquement incapable de traiter les observations manquantes, chaque retard différentié $\Delta Y_{t-i}$ propageant mécaniquement la valeur manquante aux rangs temporels voisins. L’analyste doit proscrire tout effacement aveugle des lignes non contiguës, qui détruirait l’intégrité de la structure séquentielle. Il convient plutôt d’appliquer une interpolation linéaire locale rigoureuse via .interpolate(method='time') pour des lacunes minimes et isolées, ou de segmenter l’analyse en périodes continues si des ruptures d’échantillonnage massives surviennent.

4.3 Contrôle de version et reproductibilité de l’analyse

L’exigence contemporaine de reproductibilité computationnelle en recherche quantitative impose un scellage strict des environnements d’exécution logicielle. Les algorithmes d’optimisation numérique et les approximations asymptotiques de valeurs critiques sont susceptibles de subir de subtils ajustements algorithmiques au gré des mises à jour des bibliothèques scientifiques.

Il est impératif de consigner l’intégralité des dépendances au sein d’environnements virtuels isolés, matérialisés par des conteneurs venv natifs ou des environnements Conda. La production d’un fichier requirements.txt figeant explicitement les versions majeures et mineures — notamment pour statsmodels, scipy, numpy et pandas — garantit l’invariance des résultats numériques au fil du temps.

De surcroît, bien que le calcul direct de la régression ADF par MCO soit parfaitement déterministe pour une chronique temporelle donnée, la génération synthétique de séries, les simulations de Monte-Carlo pour l’évaluation empirique de la puissance ou le rééchantillonnage par bootstrap exigent la fixation formelle du générateur de nombres pseudo-aléatoires. L’appel explicite à numpy.random.seed() ou l’instanciation moderne d’un générateur unifié via np.random.default_rng(seed=42) assure la réplication exacte des trajectoires stochastiques simulées lors des expérimentations numériques.

5. Exploration visuelle préliminaire et analyse descriptive des séries

L’évaluation statistique aveugle par l’exécution prématurée d’une fonction de test automatisée expose le chercheur à de graves contresens analytiques. Une investigation graphique minutieuse et une analyse descriptive fouillée constituent un préalable obligatoire pour orienter rationnellement le choix des paramètres du test ADF.

5.1 Tracé chronologique et détection des composantes déterministes

La première démarche empirique face à une série temporelle consiste à projeter son tracé chronologique brut (run chart ou line plot). Cette représentation visuelle élémentaire, où le temps figure en abscisse et l’amplitude mesurée en ordonnée, permet à l’œil exercé de déceler immédiatement les signatures macroscopiques guidant la spécification déterministe du modèle ADF.

L’analyste doit focaliser son attention sur trois aspects géométriques fondamentaux :
Le niveau d’ancrage moyen du signal : la série oscille-t-elle manifestement autour de zéro, ou fluctue-t-elle autour d’un plateau moyen substantiellement positif ou négatif ? Cette simple observation conditionne le choix entre le modèle sans constante (‘n’) et le modèle avec constante (‘c’).
L’existence d’une orientation séculaire : observe-t-on une dérive directionnelle ascendante ou descendante continue sur l’ensemble de la période d’observation ? La présence d’une telle rampe oriente l’analyse vers le modèle avec tendance temporelle (‘ct’).
L’homogénéité de la dispersion : l’amplitude des oscillations demeure-t-elle constante au cours du temps, ou s’accroît-elle proportionnellement au niveau de la série ? Un écartement progressif des bornes d’oscillation signale une hétéroscédasticité sous-jacente requérant une transformation stabilisatrice préalable.

L’inspection graphique permet également d’identifier les événements atypiques isolés, tels que des valeurs aberrantes (outliers) dues à des erreurs de transmission ou des chocs exogènes brutaux mais éphémères. De telles observations extrêmes sont particulièrement délétères pour le test ADF : elles introduisent un biais négatif massif dans l’estimation de $\gamma$, mimant superficiellement une force de rappel de moyenne et conduisant à diagnostiquer à tort la stationnarité d’une série qui s’avère en réalité être une marche aléatoire discontinue.

5.2 Analyse des fonctions d’autocorrélation (ACF et PACF)

L’exploration visuelle prend toute sa dimension quantitative à travers l’évaluation conjointe de la fonction d’autocorrélation empirique (ACF) et de la fonction d’autocorrélation partielle (PACF). Ces représentations graphiques, ou corrélogrammes, capturent l’empreinte digitale stochastique du processus générateur de données.

Le comportement de l’ACF fournit un indicateur diagnostique d’une sensibilité exceptionnelle pour suspecter une non-stationnarité stochastique. Pour un processus stationnaire de type AR($p$), les coefficients d’autocorrélation $\hat{\rho}_k$ décroissent rapidement vers zéro à une vitesse géométrique ou sinusoïdale amortie dès que le nombre de retards augmente. En revanche, en présence d’une racine unitaire ($phi = 1$), l’ACF exhibe une décroissance quasi-linéaire extrêmement lente : les autocorrélations restent massives et positives pour des horizons temporels très éloignés ($k = 20, 30, 40$), la corrélation entre $Y_t$ et $Y_{t-1}$ tutoyant souvent la valeur $0{,}95$ ou $0{,}99$.

La fonction PACF, pour sa part, mesure la corrélation nette entre $Y_t$ et $Y_{t-k}$, après élimination de l’effet linéaire de l’ensemble des décalages intermédiaires ${Y_{t-1}, Y_{t-2}, dots, Y_{t-k+1}}$. Pour une marche aléatoire pure AR(1) non stationnaire, la PACF montre typiquement un pic unique unitaire spectaculaire au premier retard ($k=1$), tandis que l’ensemble des pics subséquents pour $k ge 2$ s’effondrent immédiatement à l’intérieur des bandes de confiance asymptotiques de Bartlett. La projection conjointe via les fonctions plot_acf et plot_pacf de Statsmodels permet d’anticiper visuellement l’ordre d’autorégression requis pour le blanchiment des résidus.

5.3 Décomposition élémentaire de la série temporelle

Avant d’engager un test d’hypothèse formel, il s’avère hautement profitable de décomposer formellement la série observée en ses composantes constitutives sous-jacentes. La modélisation classique postule qu’une chronique chronologique peut être décomposée en trois entités distinctes : une composante de tendance-cycle séculaire ($T_t$), une composante périodique saisonnière ($S_t$), et un résidu stochastique irrégulier ($\epsilon_t$).

Le choix entre une décomposition additive ($Y_t = T_t + S_t + \epsilon_t$) et une décomposition multiplicative ($Y_t = T_t \times S_t \times \epsilon_t$) s’opère en analysant la modulation de l’amplitude saisonnière : si l’oscillation périodique s’élargit lorsque la tendance croît, la structure multiplicative s’impose logiquement. L’exécution de la fonction seasonal_decompose() issue de statsmodels.tsa.seasonal utilise des moyennes mobiles centrées pour extraire de manière empirique la tendance lisse et isoler le cycle périodique.

Cette étape revêt une utilité méthodologique cardinale : l’application du test de Dickey-Fuller augmenté sur une série polluée par une forte composante périodique saisonnière non modélisée conduit à des résultats profondément erratiques. Le test ADF standard n’est pas calibré pour capturer les racines unitaires saisonnières (qui se manifestent à des fréquences cycliques distinctes de la fréquence zéro). Isoler ou désaisonnaliser préalablement la série permet d’assainir le terrain expérimental et de focaliser le test de racine unitaire exclusivement sur la dynamique stochastique à long terme du signal.

6. Implémentation pas à pas du test ADF avec Statsmodels

La mise en œuvre pratique de l’inférence de Dickey-Fuller en Python bénéficie d’une interface élégante et robuste au sein de la bibliothèque Statsmodels. La maîtrise approfondie de la fonction dédiée, de ses paramètres et de ses structures de retour permet une intégration industrielle au sein de chaînes de traitement automatisées.

6.1 Structure et syntaxe de la fonction adfuller()

Le cœur opérationnel du test de racine unitaire réside dans la fonction adfuller(), hébergée dans le module statsmodels.tsa.stattools. Cette routine encapsule l’intégralité du calcul matriciel par moindres carrés, la sélection automatique de l’ordre de troncature des retards différentiés et l’interpolation polynomiale des seuils et valeurs critiques.

La signature complète de la fonction s’articule autour des paramètres clés suivants :

from statsmodels.tsa.stattools import adfuller

adfuller(
    x,
    maxlag=None,
    regression='c',
    autolag='AIC',
    store=False,
    regresults=False
)

L’argument obligatoire x accepte une série temporelle unidimensionnelle, qui peut prendre la forme d’un tableau NumPy à une dimension (ndarray), d’une série Pandas (pd.Series) ou d’une colonne extraite d’un pd.DataFrame. Les données doivent obligatoirement être de type numérique (flottants float64) et épurées de toute valeur manquante non résolue.

Les arguments optionnels conditionnent la structure probabiliste du test :
maxlag spécifie le nombre maximal de retards différentiés autorisés dans la sommation correctrice $\sum \delta_i \Delta Y_{t-i}$. Si la valeur est laissée à None, la fonction calcule automatiquement une borne supérieure selon une formule empirique standardisée fonction de la taille de l’échantillon.
regression dicte l’architecture déterministe du modèle. Les options acceptées sont :
'c' : constante uniquement (spécification par défaut, adaptée aux séries sans tendance mais à moyenne non nulle).
'ct' : constante et tendance temporelle linéaire (pour les séries orientées).
'ctt' : constante, tendance linéaire et tendance quadratique temporelle.
'n' : aucun terme déterministe (ni constante, ni tendance, pour les séries pré-centrées).
autolag définit la stratégie de sélection algorithmique du nombre optimal de retards à inclure. Les valeurs possibles sont 'AIC' (critère d’Akaike, recommandé), 'BIC' (critère bayésien de Schwarz), 't-stat' (approche séquentielle descendante sur la significativité du dernier retard), ou None (qui force l’algorithme à employer rigoureusement le nombre de retards défini dans maxlag).

6.2 Exécution du test sur un jeu de données minimal

Pour illustrer la syntaxe d’exécution native de la fonction sans artifice périphérique, considérons un script élémentaire instanciant une marche aléatoire pure avec dérive stochastique, suivie de l’appel minimaliste à adfuller().

import numpy as np
import pandas as pd
from statsmodels.tsa.stattools import adfuller

# Fixation de la graine aléatoire pour la reproductibilité
np.random.seed(42)

# Génération d'un échantillon stochastique de 200 observations
# Marche aléatoire : Y_t = 0.5 + Y_{t-1} + e_t
innovations = np.random.normal(loc=0.0, scale=1.0, size=200)
serie_aleatoire = np.cumsum(innovations) + 0.5 * np.arange(200)
serie_temporelle = pd.Series(serie_aleatoire, name="MarcheAleatoire")

# Exécution immédiate du test ADF avec configuration standard
resultat_adf = adfuller(serie_temporelle)

# Affichage brut de l'objet résultant
print(resultat_adf)

L’exécution de cette instruction renvoie un objet tuple contenant six éléments fondamentaux disposés de manière séquentielle. Ce format condensé rassemble l’ensemble des indicateurs inférentiels calculés par l’algorithme lors de la régression finale sélectionnée.

6.3 Extraction et encapsulation des résultats statistiques

Exploiter directement un tuple non étiqueté expose le codeur à des erreurs d’indexation. Une pratique de programmation robuste consiste à dépaqueter méthodiquement les éléments de sortie de adfuller() et à les formater au sein d’une structure de données explicite (telle qu’un dictionnaire ou une série Pandas lisible).

Le protocole d’extraction standard se formalise comme suit :

# Dépaquetage méthodique du tuple de retour
statistique_adf, p_valeur, retards_utilises, nb_observations, valeurs_critiques, icbest = resultat_adf

# Encapsulation dans une structure claire pour analyse
rapport_resultats = pd.Series({
    'Statistique ADF': statistique_adf,
    'p-valeur (MacKinnon)': p_valeur,
    'Nombre de retards retenus': retards_utilises,
    'Nombre d observations effectives': nb_observations,
    'Valeur critique (1%)': valeurs_critiques['1%'],
    'Valeur critique (5%)': valeurs_critiques['5%'],
    'Valeur critique (10%)': valeurs_critiques['10%'],
    'Critère d information (AIC)': icbest
})

print(rapport_resultats)

Chaque composant de ce conteneur remplit une fonction diagnostique précise :
statistique_adf : valeur numérique scalaire de la statistique $t_{\text{ADF}}$ issue de l’estimation par moindres carrés du paramètre $\gamma$.
p_valeur : probabilité critique asymptotique interpolée selon les approximations de surface de réponse de MacKinnon.
retards_utilises : nombre entier $p$ de retards différentiés $\Delta Y_{t-i}$ ayant minimisé le critère d’information spécifié dans autolag.
nb_observations : nombre effectif d’équations temporelles exploitées dans la régression MCO, égal à $T – 1 – p$ (la différenciation et l’alignement des retards amputant l’échantillon initial de $p+1$ points).
valeurs_critiques : dictionnaire Python cartographiant les niveaux de risque d’erreur de première espèce conventionnels ($1%$, $5%$, $10%$) aux quantiles théoriques exacts de la distribution de Dickey-Fuller ajustés à la taille d’échantillon $T$.

7. Interprétation rigoureuse des sorties statistiques du test

L’obtention de métriques chiffrées ne constitue que la première phase de l’analyse. L’interprétation scientifique exige une compréhension aiguë de la géométrie de la distribution de test et des conditions formelles autorisant le rejet de l’hypothèse de racine unitaire.

7.1 Règle de décision basée sur la statistique de test ADF

La règle d’inférence statistique gouvernant le test de Dickey-Fuller augmenté repose sur un mécanisme de décision unilatéral à gauche (left-tailed test). L’hypothèse alternative de stationnarité postulant que le coefficient de rappel $\gamma$ est strictement négatif ($\gamma < 0$), le rejet de l'hypothèse nulle n'intervient que si l'estimateur $\hat{\gamma}$ se positionne suffisamment profondément dans la zone des valeurs négatives.

Pour statuer formellement, l’analyste confronte la statistique empirique calculée $t_{\text{ADF}}$ à la valeur critique tabulée $c_{\alpha}$ au seuil de significativité $\alpha$ choisi (usuellement $\alpha = 0{,}05$) :
Si $t_{\text{ADF}} < c_{\alpha}$ : la statistique observée se situe dans la région critique de rejet (à gauche du quantile limite). L'écart par rapport à zéro est trop important pour être attribué aux seules fluctuations d'échantillonnage sous $H_0$. En conséquence, on rejette formellement l'hypothèse nulle $H_0$ au niveau de confiance $1 – \alpha$. La série temporelle est déclarée statistiquement stationnaire.
Si $t_{\text{ADF}} ge c_{\alpha}$ : la statistique observée se positionne à droite de la frontière critique, dans la zone de non-rejet. Les données ne procurent pas d'évidence empirique suffisante pour infirmer la présence d'une racine unitaire. On échoue dès lors à rejeter l'hypothèse nulle $H_0$. La série est considérée comme non stationnaire (intégrée d'ordre un ou supérieur).

Une confusion classique chez les néophytes consiste à appréhender ces grandeurs négatives en valeur absolue. Les valeurs critiques de Dickey-Fuller étant des nombres strictement négatifs (par exemple, $-2{,}89$ au seuil de $5%$), une statistique ADF de $-1{,}50$ est mathématiquement supérieure à $-2{,}89$ ($ -1{,}50 > -2{,}89$) : elle ne franchit pas le seuil et conduit à conserver l’hypothèse nulle. À l’inverse, une valeur de$-3{,}45$ est strictement inférieure au seuil ($-3{,}45 < -2{,}89$) et autorise un rejet sans équivoque de la racine unitaire.

7.2 Exploitation de la p-valeur de MacKinnon

Bien que la comparaison directe avec les tables critiques demeure la référence historique, l’évaluation de la significativité dans les logiciels modernes transite par la $p$-valeur. Dans le contexte du test ADF, le calcul direct de l’intégrale de probabilité analytique sous la courbe de distribution est impossible en raison de la nature non standard des fonctionnelles de Wiener régissant le processus.

Pour contourner cet obstacle analytique, James MacKinnon a mené d’immenses vagues d’expérimentations de Monte-Carlo (1994, 1996, 2010), simulant des millions de trajectoires pour calibrer des régressions de surface de réponse polynomiales de très haute précision. Ce sont précisément ces équations d’approximation de MacKinnon qui sont intégrées nativement au cœur de Statsmodels pour convertir instantanément la statistique $t_{\text{ADF}}$ observée en une $p$-valeur continue.

L’inférence par la $p$-valeur obéit au critère décisionnel universel :
Si $p le \alpha$ (typiquement $p le 0{,}05$) : le rejet de l’hypothèse nulle de racine unitaire est prononcé avec un risque d’erreur de première espèce inférieur ou égal à $5%$. La série est réputée stationnaire.
Si $p > \alpha$ : l’évidence statistique est insuffisante pour exclure l’hypothèse nulle de racine unitaire. Il convient d’insister sur la nuance épistémologique fondamentale : conserver $H_0$ ne signifie pas que l’on a rigoureusement « prouvé » que le processus est une marche aléatoire absolue, mais atteste simplement que les données observées sont parfaitement compatibles avec l’existence d’une intégration stochastique.

7.3 Rôle des critères d’information (AIC, BIC) et du paramètre autolag

L’argument autolag joue un rôle déterminant dans la fiabilité des conclusions inférentielles du test ADF. Le choix du nombre de retards différentiés $p$ dans l’équation maîtresse incarne un compromis biais-variance classique en économétrie :

Si le nombre de retards sélectionné est trop faible ($p$ sous-ajusté), les termes différentiés ne parviennent pas à purger l’intégralité de l’autocorrélation présente dans le signal. Les résidus $\epsilon_t$ de la régression ADF restent autocorrélés, violant le théorème central limite et entraînant une distorsion sévère de la taille du test. La variance de $\hat{\gamma}$ est sous-estimée, ce qui génère des statistiques $t_{\text{ADF}}$ artificiellement négatives et conduit à rejeter à tort l’hypothèse nulle de racine unitaire sur des séries parfaitement intégrées.

À l’opposé, si le nombre de retards est excessivement élevé ($p$ sur-ajusté), l’estimation d’un nombre pléthorique de coefficients $\delta_i$ inutiles dissipe un volume substantiel de degrés de liberté. La variance d’échantillonnage de $\hat{\gamma}$ s’élargit inconsidérément, réduisant dramatiquement la puissance statistique du test : le chercheur perd sa capacité à rejeter $H_0$ lorsque le processus est pourtant stationnaire.

Pour arbitrer objectivement ce compromis, l’optimisation par critère d’information pénalise la complexité paramétrique du modèle. Le critère d’Akaike (AIC), défini par $\text{AIC} = 2k – 2\ln(\hat{L})$, privilégie la minimisation de la perte d’information de Kullback-Leibler et tend à sélectionner des ordres de retards légèrement plus généreux, protégeant efficacement contre le risque mortel d’autocorrélation résiduelle. Le critère bayésien de Schwarz (BIC), pénalisé par $\text{BIC} = k\ln(T) – 2\ln(\hat{L})$, applique une pénalité logarithmique beaucoup plus sévère sur le nombre de paramètres $k$, favorisant des modèles très parcimonieux au risque parfois de conserver une corrélation marginale dans les résidus sur des échantillons de taille modeste.

8. Paramétrage avancé de la fonction adfuller en Python

L’utilisation experte du test ADF en environnement de production exige de s’émanciper des paramétrages par défaut. Une stratégie d’investigation rigoureuse impose d’orchestrer méthodiquement le choix des termes déterministes et la validation de la dynamique résiduelle.

8.1 Configuration de l’argument ‘regression’

Le paramétrage adéquat de l’argument regression dans l’appel à adfuller() ne doit jamais relever de l’intuition arbitraire, mais s’inscrire dans une démarche séquentielle standardisée, telle que la procédure formalisée par Dolado, Jenkinson et Sosvilla-Rivero (1990).

L’économètre averti adopte une démarche descendante (general-to-specific) :
On débute l’analyse par la spécification la plus générale et la plus flexible : regression='ct' (constante et tendance déterministe). Cette configuration permet d’éprouver la racine unitaire sans risquer de confondre une marche aléatoire et une oscillation autour d’une trajectoire orientée.
Si la statistique de test conclut au rejet de $H_0$, la série est déclarée stationnaire autour d’une tendance linéaire (trend-stationary). Si $H_0$ n’est pas rejetée, l’analyste examine attentivement la significativité statistique de la tendance déterministe estimée $\beta$ (via une régression MCO standard de l’équation ADF).
Si le terme de tendance temporelle s’avère non significatif ($p > 0{,}05$), la présence de $t$ pollue la puissance du test. On ré-estime alors l’ADF en rétrogradant vers la spécification intermédiaire : regression='c' (constante sans tendance).
On évalue à nouveau l’hypothèse nulle sous ce modèle avec dérive. Si le test ne rejette pas $H_0$, on teste la significativité de la constante $\alpha$. Si cette dernière est statistiquement nulle, on peut, en dernier recours, ajuster le modèle restrictif regression='n'.

L’inclusion de l’option regression='ctt' (constante, tendance linéaire et tendance quadratique temporelle) demeure exceptionnelle et réservée aux chroniques exhibant une accélération de courbure continue, comme certaines phases d’expansion technologique exponentielle ou de transition démographique aiguë.

8.2 Stratégies de sélection automatique des retards

L’argument autolag autorise plusieurs stratégies d’optimisation numérique pour fixer le nombre d’éléments dans $\sum_{i=1}^{p} \delta_i \Delta Y_{t-i}$. Les travaux de Ng et Perron (1995) ont éclairé de manière définitive l’efficacité comparative de ces stratégies d’adaptation.

L’approche par défaut autolag='AIC' s’avère empiriquement la plus équilibrée pour les séries temporelles continues. En pénalisant linéairement le nombre de retards, elle conserve une flexibilité suffisante pour absorber les dynamiques ARMA à composantes moyennes mobiles fortes. L’option autolag='BIC' est quant à elle préconisée dès lors que la taille de l’échantillon $T$ devient massive ($T > 1000$), le terme de pénalisation $ln(T)$ évitant un gonflement asymptotique du nombre de retards superflus.

Une alternative élégante repose sur l’approche de sélection descendante par test de significativité des coefficients individuels (autolag='t-stat'). Selon ce procédé, l’algorithme démarre au retard maximal maxlag et évalue si le coefficient de retard le plus éloigné $\delta_{p_{\max}}$ est significativement différent de zéro au seuil de $5%$ ou $10%$ via une statistique de Student standard. Si le retard n’est pas significatif, il est éliminé de l’équation, et le modèle est ré-estimé avec $p_{\max} – 1$ retards. Cette boucle itérative descendante se poursuit jusqu’à rencontrer un retard terminal dont la contribution est statistiquement irréfutable. Cette méthode offre souvent un contrôle optimal de la taille du test par rapport aux critères d’information stricts.

8.3 Détermination manuelle du paramètre maxlag

Lorsque le paramètre maxlag n’est pas spécifié par l’utilisateur, Statsmodels calcule une borne supérieure algorithmique basée sur la célèbre règle empirique formulée par G. William Schwert en 1989 :

$$p_{\text{\max}} = \left\lfloor 12 \times \left( \frac{T}{100} \right)^{1/4} \right\rfloor$$

$\lfloor \cdot \rfloor$ représente la partie entière par défaut et $T$ la longueur totale de l’échantillon. Pour une série de $100$ observations, $p_{\text{\max}} = 12$ ; pour un échantillon de $400$ observations, $p_{\text{\max}} \approx 17$.

Cependant, cette borne par défaut peut s’avérer inadaptée selon la fréquence d’échantillonnage de la chronique. Pour des données mensuelles comportant une périodicité annuelle sous-jacente, il est impératif de s’assurer que maxlag soit au minimum fixé à $12$. Pour des séries trimestrielles, un maxlag de $4$ ou $8$ est généralement pertinent. À l’inverse, sur des données journalières financières à haute volatilité, autoriser un retard excessif sans fondement théorique peut engendrer des sur-ajustements coûteux.

Après l’exécution du test ADF, il est de bonne pratique de valider formellement la réussite du blanchiment des résidus. Cette vérification s’opère en extrayant les résidus de la régression ADF (via l’argument regresults=True) et en leur appliquant un test formel d’autocorrélation portmanteau, tel que le test de Ljung-Box (statsmodels.stats.diagnostic.acorr_ljungbox). L’échec de rejet de l’hypothèse nulle d’absence d’autocorrélation résiduelle dans les résidus confirme que la sélection du retard est irréprochable.

9. Étude de cas empirique : Analyse d’un score longitudinal d’anxiété

Afin de matérialiser la puissance du test de Dickey-Fuller augmenté au-delà des abstractions théoriques, développons une application empirique concrète issue de la psychologie computationnelle et de la médecine comportementale.

9.1 Contexte de recherche psychologique et chargement des données

Considérons un protocole expérimental d’évaluation écologique instantanée (EMA) conduit auprès d’un patient présentant un trouble anxieux généralisé (TAG). Durant une période de suivi intensif de 180 jours consécutifs, le patient a renseigné chaque matin à heure fixe son niveau d’anxiété subjective sur une échelle psychométrique standardisée allant de 0 (sérénité totale) à 100 (panique aiguë paroxystique).

L’objectif clinique et méthodologique est d’analyser la dynamique d’autorégulation de cette variable affective : le système psychologique de ce patient opère-t-il un retour homéostatique constant vers un niveau d’équilibre de base stable (processus stationnaire), ou l’anxiété subit-elle des dérives cumulatives stochastiques non bornées où les stresseurs résiduels s’accumulent sans résorption spontanée (processus à racine unitaire) ?

Générons et structurons ce jeu de données au sein d’un environnement Pandas :

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Fixation de la graine pour une génération déterministe réaliste
np.random.seed(101)

# Chronique de 180 jours consécutifs
dates = pd.date_range(start="2023-01-01", periods=180, freq="D")

# Simulation réaliste d'une trajectoire à racine unitaire avec bruit autocorrelé
# simulant l'inertie cognitive et l'accumulation des stresseurs
chocs = np.random.normal(loc=0.08, scale=2.5, size=180)
score_anxiete = np.zeros(180)
score_anxiete[0] = 35.0  # Valeur initiale modérée

for t in range(1, 180):
    # Processus intégré I(1) avec dérive stochastique légère
    score_anxiete[t] = score_anxiete[t-1] + chocs[t]

# Encapsulation dans une série Pandas temporelle
serie_anxiete = pd.Series(score_anxiete, index=dates, name="Score_Anxiete_EMA")

# Visualisation des premières observations
print(serie_anxiete.head())

9.2 Application du test ADF et identification de non-stationnarité

L’inspection du signal simulé révèle une série qui oscille dans des registres substantiellement distants de zéro, justifiant pleinement l’usage d’une spécification avec constante déterministe (regression='c'). De plus, aucun alignement déterministe linéaire parfait n’étant postulé a priori sur l’humeur d’un individu, l’adjonction d’une tendance temporelle linéaire (‘ct’) serait conceptuellement hasardeuse à ce stade.

Déployons l’exécution du test de Dickey-Fuller augmenté avec sélection optimale de l’ordre de troncature par minimisation du critère AIC :

from statsmodels.tsa.stattools import adfuller

# Exécution du test ADF sur le score longitudinal d'anxiété
resultat_ema = adfuller(serie_anxiete, regression='c', autolag='AIC')

# Formatage analytique des sorties
print("=== RÉSULTATS DU TEST ADF (SCORE ANXIÉTÉ EMA) ===")
print(f"Statistique de test ADF : {resultat_ema[0]:.4f}")
print(f"p-valeur (MacKinnon)   : {resultat_ema[1]:.4f}")
print(f"Nombre de retards (lag) : {resultat_ema[2]}")
print(f"Nombre d'observations   : {resultat_ema[3]}")
print("Seuils critiques tabulés :")
for seuil, val in resultat_ema[4].items():
    print(f"   {seuil} : {val:.4f}")

L’exécution de ce code produit des métriques inférentielles explicites. La statistique empirique $t_{\text{ADF}}$ s’établit par exemple à $-0{,}8523$, accompagnée d’une $p$-valeur asymptotique de $0{,}8032$. Le nombre de retards différentiés retenus par l’algorithme AIC pour blanchir la série est de $p = 1$.

L’analyse des résultats révèle que la statistique obtenue ($-0{,}8523$) est très nettement supérieure aux valeurs critiques négatives tabulées ($-3{,}468$ au seuil de $1%$, $-2{,}878$ au seuil de $5%$, et $-2{,}576$ au seuil de $10%$). De manière convergente, la $p$-valeur ($0{,}8032$) outrepasse colossalement le seuil de risque d’erreur conventionnel $\alpha = 0{,}05$. L’analyste se trouve dans l’incapacité statistique formelle de rejeter l’hypothèse nulle $H_0$.

Sur le plan de l’interprétation clinique, ce constat quantitatif revêt une portée théorique considérable : la trajectoire anxieuse du patient n’est pas gouvernée par une force de rappel stationnaire. L’état émotionnel exhibe une inertie affective profonde, où les épisodes anxieux ne se dissipent pas spontanément vers un niveau moyen homéostatique mais s’accumulent au fil des jours. Le signal se comporte sur le plan formel comme un processus intégré de type $I(1)$.

9.3 Impact de la non-stationnarité sur l’analyse causale en psychologie

L’identification formelle de cette racine unitaire dans la chronique d’anxiété transforme radicalement la stratégie d’analyse biostatistique ultérieure. Supposons que le clinicien souhaite évaluer l’impact thérapeutique causal d’une pratique quotidienne de méditation de pleine conscience, mesurée simultanément par le nombre de minutes de méditation journalières ($M_t$).

Si le chercheur ajustait naïvement une régression linéaire par moindres carrés ordinaires de l’anxiété sur les minutes de méditation :

$$Y_t = \beta_0 + \beta_1 M_t + \epsilon_t$$

l’absence de stationnarité dans le terme d’anxiété $Y_t$ conduirait de façon quasi inéluctable au phénomène de régression fallacieuse de Granger-Newbold. Si la pratique méditative présente elle aussi une quelconque persistance sérielle ou une dérive d’apprentissage monotone, les logiciels statistiques afficheront un coefficient $\hat{\beta}_1$ spectaculairement significatif avec une $p$-valeur inférieure à $0{,}001$. Le clinicien proclamerait l’efficacité clinique majeure de son intervention, alors qu’il ne s’agit en réalité que d’un artefact mathématique induit par le couplage de deux marches aléatoires stochastiquement divergentes.

Pour contourner ce piège, deux avenues méthodologiques rigoureuses s’ouvrent à l’analyste : la stationnarisation préalable des chroniques par différenciation première avant ajustement d’un modèle autorégressif à retards échelonnés, ou, si la théorie clinique soutient l’existence d’un couplage équilibré stable et durable à long terme, la vérification formelle d’une relation de cointégration au sens d’Engle et Granger (1987) ou de Johansen (1988).

10. Procédures de stationnarisation et re-test statistique

Le diagnostic positif d’une racine unitaire ne clôture pas l’investigation empirique ; il impose au contraire une mutation analytique rigoureuse visant à transformer la série intégrée en un signal strictement stationnaire.

10.1 Différenciation première (First-order differencing)

L’opérateur de différenciation première, symbolisé par $\Delta$ (ou $1 – L$, où $L$ est l’opérateur de retard tel que $L Y_t = Y_{t-1}$), représente l’antidote mathématique fondamental à la non-stationnarité stochastique induite par une racine unitaire univariée. La transformation se définit algébriquement par :

$$\Delta Y_t = Y_t – Y_{t-1}$$

Sur le plan conceptuel, appliquer la différenciation première consiste à substituer à la modélisation des niveaux absolus du phénomène celle de ses variations incrémentales instantanées. Si le processus d’origine $Y_t$ est une marche aléatoire pure $Y_t = Y_{t-1} + \epsilon_t$, la différenciation annule rigoureusement la composante autorégressive unitaire : $\Delta Y_t = \epsilon_t$. Le signal transformé se transmute instantanément en un bruit blanc pur, stationnaire par construction axiomatique.

Sous l’environnement de calcul Python, la méthode native .diff() de Pandas assure cette conversion avec une efficacité maximale. Cependant, cette opération engendre inévitablement une conséquence structurelle : la perte de la première ligne d’observation temporelle, qui se convertit en valeur indéterminée NaN. Cette anomalie doit être impérativement résolue avant de soumettre la série différentiée au test ADF :

# Application de l'opérateur de différence première
serie_anxiete_diff = serie_anxiete.diff().dropna()

# Contrôle de la dimension de l'échantillon amputé
print(f"Observations initiales : {len(serie_anxiete)}")
print(f"Observations résiduelles après différenciation : {len(serie_anxiete_diff)}")

10.2 Transformations pour stabiliser la variance

La différenciation première est un opérateur spécifiquement conçu pour purger la non-stationnarité de la moyenne (intégration stochastique ou tendance déterministe). En revanche, elle demeure parfaitement inopérante pour résoudre les pathologies liées à une non-stationnarité de la variance (hétéroscédasticité structurelle inconditionnelle), où l’amplitude des fluctuations s’élargit au fil de l’évolution temporelle.

Dans de telles configurations, une transformation non-linéaire préalable s’avère indispensable avant d’appliquer l’opérateur de différence. La transformation la plus universelle est l’application du logarithme népérien :

$$Z_t = \ln(Y_t)$$

L’opérateur logarithmique comprime les valeurs d’amplitude élevée et dilate les valeurs réduites, stabilisant ainsi la variance sur l’ensemble du profil temporel. La combinaison d’un passage au logarithme suivi d’une différenciation première engendre la métrique des rendements ou des variations proportionnelles continues : $\Delta \ln(Y_t) \approx \frac{Y_t – Y_{t-1}}{Y_{t-1}}$, extrêmement prisée en économétrie financière et en modélisation épidémiologique.

Lorsque la structure de dépendance de variance est plus complexe, la généralisation proposée par George Box et David Cox (1964) offre une flexibilité paramétrique supérieure :

$$Y_t^{(\lambda)} = \begin{\cases} \frac{Y_t^\lambda – 1}{\lambda} &a\mp; \text{si } \lambda \neq 0 \ln(Y_t) &a\mp; \text{si } \lambda = 0 \end{\cases}$$

La bibliothèque SciPy (via scipy.stats.boxcox) permet d’estimer numériquement par maximum de vraisemblance la valeur optimale du paramètre de puissance $lambda$. Une contrainte absolue demeure toutefois : ces transformations stabilisatrices logarithmiques et exponentielles ne sont définies que sur le domaine des réels strictement positifs ($Y_t > 0$). En présence de scores psychométriques pouvant atteindre le zéro absolu ou des valeurs négatives, l’analyste doit opérer une translation préalable par ajout d’une constante scalaire d’ancrage ($Y_t + c$).

10.3 Validation formelle de la stationnarité sur la série transformée

Une fois la transformation par différenciation première exécutée, il est impératif de soumettre la série dérivée $\Delta Y_t$ à un second passage rigoureux du test de Dickey-Fuller augmenté. L’objectif est de valider formellement que le signal a bien atteint l’état de stationnarité (intégration d’ordre zéro, $I(0)$), confirmant ainsi que la série initiale était intégrée d’ordre exactement un ($I(1)$) et non d’ordre supérieur ($I(2)$).

Sur la série différenciée, la spécification déterministe de la régression ADF doit être réévaluée avec soin. Si la série initiale était une marche aléatoire sans dérive, ses variations premières $\Delta Y_t$ oscillent désormais autour de zéro, justifiant l’emploi d’une spécification sans constante (‘n’) ou avec constante centrée (‘c’).

# Exécution du test ADF sur la série différenciée du score d'anxiété
resultat_diff = adfuller(serie_anxiete_diff, regression='c', autolag='AIC')

# Présentation synthétique des métriques post-transformation
print("=== RÉSULTATS DU TEST ADF SUR LA SÉRIE DIFFÉRENCIÉE ===")
print(f"Statistique ADF : {resultat_diff[0]:.4f}")
print(f"p-valeur        : {resultat_diff[1]:.4e}")
print(f"Retards retenus : {resultat_diff[2]}")
print(f"Valeur critique 1% : {resultat_diff[4]['1%']:.4f}")
print(f"Valeur critique 5% : {resultat_diff[4]['5%']:.4f}")

Dans notre cas d’étude, la régression sur $\Delta Y_t$ renvoie typiquement une statistique ADF hautement négative, de l’ordre de $t_{\text{ADF}} = -12{,}45$. Cette valeur s’enfonce très profondément au-delà du seuil critique le plus exigeant de $1%$ ($-3{,}468$), avec une $p$-valeur infinitésimale de l’ordre de $10^{-22}$.

La conclusion inférentielle est immédiate et irréfutable : nous rejetons catégoriquement l’hypothèse nulle de racine unitaire pour la série transformée. La série $\Delta Y_t$ est pleinement stationnaire au second ordre ($I(0)$). Le processus dynamique du signal est désormais assaini, autorisant le déploiement sécurisé d’architectures prédictives de type ARMA ou de régressions multivariées sans crainte de distorsion statistique.

11. Limites méthodologiques du test ADF et tests alternatifs

Bien que le test de Dickey-Fuller augmenté demeure l’instrument de référence incontesté, il n’est en aucun cas exempt de faiblesses structurelles. La connaissance de ses angles morts méthodologiques permet d’éviter des diagnostics simplistes face à des dynamiques stochastiques non triviales.

11.1 Sensibilité aux ruptures structurelles (Structural Breaks)

L’une des vulnérabilités les plus documentées du test ADF réside dans son incapacité notoire à distinguer une authentique racine unitaire stochastique d’une série stationnaire en tendance qui subit une ou plusieurs ruptures structurelles déterministes (changement soudain de niveau moyen ou pivotement de la pente séculaire).

Dans un article retentissant publié en 1989 dans Econometrica, Pierre Perron a démontré que la présence d’un choc structurel exogène non pris en compte (par exemple, un krach financier mondial, une réforme législative brutale, ou, sur le plan individuel, un traumatisme psychologique sévère survenu à mi-parcours de l’étude) biaise dramatiquement l’estimation du coefficient autorégressif $\hat{\phi}$ vers la valeur 1. Le test ADF souffre alors d’un effondrement dramatique de sa puissance : il conclut massivement à la présence d’une racine unitaire alors même que la série est parfaitement stationnaire par morceaux autour de segments déterministes discontinus.

Pour remédier à cette cécité théorique, Eric Zivot et Donald W. K. Andrews ont développé en 1992 un test étendu (disponible dans Statsmodels via statsmodels.tsa.stattools.zivot_andrews). L’algorithme de Zivot-Andrews teste l’hypothèse de racine unitaire en autorisant explicitement une rupture structurelle sur le niveau, sur la tendance ou sur les deux conjointement, le point de bascule temporel (break point) étant déterminé de manière endogène par optimisation statistique sans que l’analyste n’ait à fixer a priori la date de rupture.

11.2 Faible puissance statistique sur les petits échantillons

Une seconde limite méthodologique majeure du test ADF réside dans sa faible puissance statistique face à des échantillons de taille modeste ($T < 50$ ou $T < 100$), et tout particulièrement lorsque le processus générateur sous-jacent possède une racine autorégressive très proche de l'unité (le problème redoutable de la near-unit root, par exemple $\phi = 0{,}95$ ou $\phi = 0{,}98$).

Un processus AR(1) caractérisé par $\phi = 0{,}98$ est rigoureusement stationnaire au sens probabiliste : il possède une mémoire finie et converge vers sa moyenne à très long terme. Néanmoins, pour des tailles d’échantillons finies courantes en psychométrie ou en sciences de gestion (quelques dizaines de points), la trajectoire observée exhibe une persistance empirique quasiment indiscernable d’une marche aléatoire pure. Dans ces circonstances, le test ADF subit une inflation catastrophique de l’erreur de type II : il échoue très fréquemment à rejeter $H_0$, induisant le chercheur en erreur en lui faisant croire à l’existence d’une racine unitaire.

Pour atténuer cette fragilité sur les petits échantillons, des tests alternatifs plus puissants ont été forgés par les économètres. Le test DF-GLS, formulé par Elliott, Rothenberg et Stock (1996), procède à une quasi-différenciation préalable des données par les moindres carrés généralisés (GLS) pour purger efficacement les composantes déterministes avant de tester la racine unitaire, augmentant de façon substantielle la puissance du test sur des échantillons restreints.

11.3 Approche confirmatoire conjointe avec le test KPSS

En vertu de l’asymétrie propre à l’épistémologie de Neyman-Pearson, le test ADF confère un statut privilégié à l’hypothèse nulle de non-stationnarité ($H_0 : \text{racine unitaire}$). Échouer à rejeter $H_0$ peut simplement refléter une insuffisance de données plutôt qu’une véritable nature intégrée du processus. Pour asseoir un diagnostic indiscutable, il est fortement recommandé d’adopter une stratégie de test confirmatoire croisé en confrontant l’ADF au test KPSS (Kwiatkowski, Phillips, Schmidt et Shin, 1992).

Le test KPSS (accessible via statsmodels.tsa.stattools.kpss) inverse délibérément la charge de la preuve :
Hypothèse nulle ($H_0$) du KPSS : La série temporelle est stationnaire (autour d’un niveau constant ou d’une tendance déterministe).
Hypothèse alternative ($H_1$) du KPSS : La série possède une racine unitaire (elle est non stationnaire).

La confrontation des résultats issus des deux tests aboutit à une matrice de décision quadri-partie d’une grande clarté diagnostique :

  • Cas 1 : Rejet de $H_0$ de l’ADF ET non-rejet de $H_0$ du KPSS. Les deux instruments s’accordent parfaitement : la série temporelle est sans ambiguïté stationnaire au second ordre ($I(0)$).
  • Cas 2 : Non-rejet de $H_0$ de l’ADF ET rejet de $H_0$ du KPSS. Accord unanime des deux tests en faveur de la présence d’une racine unitaire : la série est rigoureusement non stationnaire ($I(1)$ ou supérieur).
  • Cas 3 : Non-rejet de $H_0$ de l’ADF ET non-rejet de $H_0$ du KPSS. Les données manquent dramatiquement de puissance informative pour discriminer les hypothèses. Cela survient fréquemment sur des séries courtes où la mémoire est longue mais imparfaite. Aucune décision formelle ne peut être arrêtée sans agrandissement de l’échantillon.
  • Cas 4 : Rejet de $H_0$ de l’ADF ET rejet de $H_0$ du KPSS. Diagnostic d’incompatibilité signalant l’existence d’anomalies structurelles au sein du signal, le plus souvent attribuables à des ruptures de régime déterministe, des bifurcations de tendance ou une dynamique de mémoire longue fractionnaire ($I(d)$ avec $0 < d < 1$).

12. Synthèse et guide de bonnes pratiques pour la recherche reproductible

Pour clore ce traité et hisser la pratique de l’analyse sérielle aux exigences de la science ouverte et de la reproductibilité computationnelle, formalisons un cadre opératoire standardisé intégrant le test ADF au cycle complet de modélisation prédictive.

12.1 Protocole systématique de diagnostic de stationnarité en Python

Afin d’éviter la dispersion du code et de standardiser la production des résultats, tout pipeline d’ingénierie statistique devrait encapsuler la logique décisionnelle complète au sein d’une fonction Python modulaire, robuste et auto-documentée.

Voici l’architecture d’une fonction diagnostique unifiée orchestrant l’exploration, le test ADF avec différentes spécifications, le test KPSS complémentaire et l’exportation des métriques standardisées :

import pandas as pd
import numpy as np
from statsmodels.tsa.stattools import adfuller, kpss

def diagnostic_stationnarite_avance(serie: pd.Series, alpha: float = 0.05) -> pd.DataFrame:
    """
    Exécute un diagnostic formel complet de stationnarité en croisant
    les résultats du test ADF (Dickey-Fuller Augmenté) et du test KPSS.
    
    Paramètres:
    -----------
    serie : pd.Series
        Chronique temporelle continue sans valeurs manquantes.
    alpha : float (défaut=0.05)
        Seuil de risque statistique d'erreur de première espèce.
        
    Retourne:
    ---------
    pd.DataFrame: Tableau de synthèse comparatif des indicateurs inférentiels.
    """
    # Nettoyage préventif des valeurs nulles éventuelles
    signal = serie.dropna()
    
    # 1. Exécution du test ADF (spécification avec constante 'c')
    adf_stat, adf_p, adf_lags, adf_nobs, adf_crit, _ = adfuller(signal, regression='c', autolag='AIC')
    stationnaire_adf = (adf_p < alpha) and (adf_stat = alpha) and (kpss_stat < kpss_crit[f'{int(alpha*100)}%'])
    
    # 3. Établissement de la synthèse diagnostique
    if stationnaire_adf and stationnaire_kpss:
        diagnostic = "Stationnaire sans ambiguïté (I(0))"
    elif not stationnaire_adf and not stationnaire_kpss:
        diagnostic = "Non stationnaire formel (Racine unitaire I(1))"
    elif not stationnaire_adf and stationnaire_kpss:
        diagnostic = "Inconclusif : Puissance insuffisante"
    else:
        diagnostic = "Anomalie : Suspicion de rupture structurelle"
        
    synthese = {
        "Indicateur": ["Statistique de test", "p-valeur", "Retards retenus", "Seuil critique 5%", "H0 Rejetée ?", "Conclusion"],
        "ADF (H0 : Racine Unitaire)": [
            f"{adf_stat:.4f}",
            f"{adf_p:.4e}",
            f"{adf_lags}",
            f"{adf_crit['5%']:.4f}",
            "Oui (Stationnaire)" if stationnaire_adf else "Non (Non stationnaire)",
            "Stationnaire" if stationnaire_adf else "Non stationnaire"
        ],
        "KPSS (H0 : Stationnarité)": [
            f"{kpss_stat:.4f}",
            f"{kpss_p:.4e}",
            f"{kpss_lags}",
            f"{kpss_crit['5%']:.4f}",
            "Non (Non stationnaire)" if not stationnaire_kpss else "Non-rejet (Stationnaire)",
            "Stationnaire" if stationnaire_kpss else "Non stationnaire"
        ]
    }
    
    df_resultats = pd.DataFrame(synthese)
    print(f"=== DIAGNOSTIC GLOBAL : {diagnostic} ===")
    return df_resultats

12.2 Intégration dans le cycle de modélisation prédictive (ARIMA / SARIMAX)

L’utilisation rationnelle du test de Dickey-Fuller augmenté conditionne directement l’identification de l’ordre d’intégration $d$ au sein de la méthodologie Box-Jenkins régissant les modèles autorégressifs intégrés à moyennes mobiles (ARIMA($p, d, q$)).

Dans cette chaîne de modélisation, le paramètre d’intégration $d$ correspond rigoureusement au nombre minimal de différenciations premières successives nécessaires pour rendre la série originelle stationnaire. Si la série brute conduit à un non-rejet du test ADF ($p > 0{,}05$), l’analyste pose $d ge 1$. Il applique l’opérateur de différence et ré-applique le test ADF. Dès que la série différenciée franchit les seuils critiques et rejette $H_0$, l’ordre $d$ est formellement figé (le plus souvent $d = 1$, plus rarement $d = 2$).

L’avènement d’algorithmes d’optimisation prédictive automatisés, tels que la bibliothèque pmdarima (via sa fonction auto_arima), intègre nativement cette démarche. Sous le capot, auto_arima exécute de manière itérative un test de racine unitaire (paramétré par défaut sur le test ADF ou le test de Phillips-Perron via l’argument test='adf') pour calibrer dynamiquement le terme de dérivation $d$ avant de balayer la grille des hyperparamètres autoregressifs ($p$) et de moyenne mobile ($q$).

Il importe d’insister sur un écueil symétrique à la non-différenciation : le danger de la sur-différenciation (over-differencing). Appliquer une différenciation première $\Delta Y_t$ à une série qui était déjà initialement stationnaire au niveau introduit artificiellement une racine unitaire moyenne mobile dans le terme de résidu MA ($1 – \theta L$ avec $\theta = 1$). Cette sur-différenciation détruit l’information structurelle à long terme, gonfle artificiellement la variance des prédictions à moyen terme et vicie la convergence des estimateurs paramétriques.

12.3 Standardisation du rapport statistique selon les normes académiques

La restitution des résultats issus du test de Dickey-Fuller augmenté dans les publications scientifiques et les rapports techniques doit se conformer aux prescriptions méthodologiques des sociétés savantes, notamment les normes de l’American Psychological Association (APA 7th edition) et les standards d’intégrité de l’American Statistical Association (ASA).

Il ne suffit pas d’énoncer lapidairement qu’une « série a été testée stationnaire à $p < 0{,}05$". Une communication transparente impose de consigner formellement :
La spécification déterministe rigoureuse retenue (absence de terme, présence d'une dérive constante, ou présence conjointe d'une constante et d'une tendance linéaire temporelle), accompagnée de la justification théorique ou graphique de ce choix.
Le mode de sélection du nombre de retards différentiés (critère AIC, BIC ou test $t$) ainsi que l'ordre maximal de recherche $p_{\text{\max}}$ autorisé.
La valeur exacte et non arrondie de la statistique de test observée ($t_{\text{ADF}}$), le nombre de degrés de liberté (ou nombre d'observations effectives $N$), et les quantiles critiques exacts associés aux seuils de $1%$ et $5%$.
La confirmation explicite de l'absence d'autocorrélation résiduelle dans les résidus du modèle ADF sélectionné, attestée par une statistique diagnostique de type Ljung-Box ou Breusch-Godfrey.

Enfin, dans l’esprit de l’initiative Open Science, l’intégralité des scripts Python orchestrant le pipeline de prétraitement, le code d’appel à Statsmodels et les fichiers de données brutes ou pseudonymisées doivent être archivés de façon pérenne sur des plateformes de partage de données scientifiques certifiées telles que le Centre pour la Science Ouverte (Open Science Framework – OSF) ou Zenodo. Cette transparence algorithmique totale assure l’auditabilité des résultats et constitue le rempart ultime contre la crise de reproductibilité qui traverse les sciences empiriques contemporaines.

Références

Citer cet article

memjavad (2026, septembre 4). Test de Dickey-Fuller augmenté en Python (avec exemple). Base de données de psychologie en français. https://fr.arabpsychology.com/statistics/test-dickey-fuller-augmente-python-exemple/
memjavad. “Test de Dickey-Fuller augmenté en Python (avec exemple).” Base de données de psychologie en français, 4 septembre 2026, https://fr.arabpsychology.com/statistics/test-dickey-fuller-augmente-python-exemple/.
memjavad. “Test de Dickey-Fuller augmenté en Python (avec exemple).” Base de données de psychologie en français. septembre 4, 2026. https://fr.arabpsychology.com/statistics/test-dickey-fuller-augmente-python-exemple/.