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 Chow en Python



Un test de Chow est utilisé pour tester si les coefficients de deux modèles de régression différents sur différents ensembles de données sont égaux.

Ce test est généralement utilisé dans le domaine de l’économétrie avec des données de séries chronologiques pour déterminer s’il existe une rupture structurelle dans les données à un moment donné.

L’exemple suivant, étape par étape, montre comment effectuer un test Chow en Python.

Étape 1 : Créer les données

Tout d’abord, nous allons créer de fausses données :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'x': [1, 1, 2, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 10, 10,
                         11, 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 20],
                   'y': [3, 5, 6, 10, 13, 15, 17, 14, 20, 23, 25, 27, 30, 30, 31,
                         33, 32, 32, 30, 32, 34, 34, 37, 35, 34, 36, 34, 37, 38, 36]})

#view first five rows of DataFrame
df.head()

        x	y
0	1	3
1	1	5
2	2	6
3	3	10
4	4	13

Étape 2 : Visualisez les données

Ensuite, nous allons créer un nuage de points simple pour visualiser les données :

import matplotlib.pyplot as plt

#create scatterplot
plt.plot(df.x, df.y, 'o')

À partir du nuage de points, nous pouvons voir que la tendance dans les données semble changer à x = 10.

Ainsi, nous pouvons effectuer le test de Chow pour déterminer s’il existe un point de rupture structurelle dans les données à x = 10.

Étape 3 : Effectuer le test Chow

Nous pouvons utiliser la fonction chowtest du package chowtest en Python pour effectuer un test Chow.

Tout d’abord, nous devons installer ce package en utilisant pip :

pip install chowtest

Ensuite, nous pouvons utiliser la syntaxe suivante pour effectuer le test Chow :

from chow_test import chowtest

chowtest(y=df[['y']], X=df[['x']],
         last_index_in_model_1=15,
         first_index_in_model_2=16,
         significance_level=.05)

***********************************************************************************
Reject the null hypothesis of equality of regression coefficients in the 2 periods.
***********************************************************************************
Chow Statistic: 118.14097335479373 p value: 0.0
***********************************************************************************
(118.14097335479373, 1.1102230246251565e-16)

Voici ce que signifient les arguments individuels dans la fonction chowtest() :

  • y : La variable de réponse dans le DataFrame
  • x : La variable prédictive dans le DataFrame
  • last_index_in_model_1 : La valeur de l’indice du dernier point avant la rupture structurelle
  • first_index_in_model_2 : La valeur de l’indice pour le premier point après la rupture structurelle
  • significativité_level : Le niveau de signification à utiliser pour le test d’hypothèse

À partir du résultat du test, nous pouvons voir :

  • Statistique du test F : 118,14
  • Valeur p : <.0000

Puisque la valeur p est inférieure à 0,05, nous pouvons rejeter l’hypothèse nulle du test. Cela signifie que nous disposons de suffisamment de preuves pour affirmer qu’un point de rupture structurelle est présent dans les données.

En d’autres termes, deux droites de régression peuvent adapter le modèle dans les données plus efficacement qu’une seule droite de régression.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tests courants en Python :

Comment effectuer un test de causalité Granger en Python
Comment effectuer un test Breusch-Pagan en Python
Comment effectuer le test de White en Python

Ajouter un commentaire

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