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 transformer des données en Python (journal, racine carrée, racine cubique)



De nombreux tests statistiques supposent que les ensembles de données sont normalement distribués. Or, ce n’est souvent pas le cas dans la pratique.

Une façon de résoudre ce problème consiste à transformer la distribution des valeurs dans un ensemble de données à l’aide de l’une des trois transformations suivantes :

1. Transformation du journal : transformez la variable de réponse de y en log(y) .

2. Transformation racine carrée : Transformez la variable de réponse de y en y .

3. Transformation de racine cubique : transformez la variable de réponse de y en y 1/3 .

En effectuant ces transformations, l’ensemble de données devient généralement distribué plus normalement.

Les exemples suivants montrent comment effectuer ces transformations en Python.

Transformation de journal en Python

Le code suivant montre comment effectuer une transformation logarithmique sur une variable et créer des tracés côte à côte pour afficher la distribution d’origine et la distribution transformée en log des données :

import numpy as np
import matplotlib.pyplot as plt

#make this example reproducible
np.random.seed(0)

#create beta distributed random variable with 200 values
data = np.random.beta(a=4, b=15, size=300)

#create log-transformed data
data_log = np.log(data)

#define grid of plots
fig, axs = plt.subplots(nrows=1, ncols=2)

#create histograms
axs[0].hist(data, edgecolor='black')
axs[1].hist(data_log, edgecolor='black')

#add title to each histogram
axs[0].set_title('Original Data')
axs[1].set_title('Log-Transformed Data')

Remarquez comment la distribution transformée en log est distribuée plus normalement que la distribution d’origine.

Ce n’est toujours pas une « forme de cloche » parfaite mais elle est plus proche d’une distribution normale que de la distribution originale.

Transformation racine carrée en Python

Le code suivant montre comment effectuer une transformation racine carrée sur une variable et créer des tracés côte à côte pour afficher la distribution d’origine et la distribution transformée en racine carrée des données :

import numpy as np
import matplotlib.pyplot as plt

#make this example reproducible
np.random.seed(0)

#create beta distributed random variable with 200 values
data = np.random.beta(a=1, b=5, size=300)

#create log-transformed data
data_log = np.sqrt(data)

#define grid of plots
fig, axs = plt.subplots(nrows=1, ncols=2)

#create histograms
axs[0].hist(data, edgecolor='black')
axs[1].hist(data_log, edgecolor='black')

#add title to each histogram
axs[0].set_title('Original Data')
axs[1].set_title('Square Root Transformed Data')

Remarquez comment les données transformées en racine carrée sont distribuées beaucoup plus normalement que les données d’origine.

Transformation de racine cubique en Python

Le code suivant montre comment effectuer une transformation de racine cubique sur une variable et créer des tracés côte à côte pour afficher la distribution d’origine et la distribution transformée de racine cubique des données :

import numpy as np
import matplotlib.pyplot as plt

#make this example reproducible
np.random.seed(0)

#create beta distributed random variable with 200 values
data = np.random.beta(a=1, b=5, size=300)

#create log-transformed data
data_log = np.cbrt(data)

#define grid of plots
fig, axs = plt.subplots(nrows=1, ncols=2)

#create histograms
axs[0].hist(data, edgecolor='black')
axs[1].hist(data_log, edgecolor='black')

#add title to each histogram
axs[0].set_title('Original Data')
axs[1].set_title('Cube Root Transformed Data')

Remarquez comment les données transformées en racine cubique sont beaucoup plus normalement distribuées que les données d’origine.

Ressources additionnelles

Comment calculer les scores Z en Python
Comment normaliser les données en Python
Qu’est-ce que l’hypothèse de normalité en statistique ?

Ajouter un commentaire

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