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 dans R (Log, racine carrée, racine cubique)



De nombreux tests statistiques supposent que les résidus d’une variable de réponse sont normalement distribués.

Cependant, les résidus ne sont souvent pas distribués normalement. Une façon de résoudre ce problème consiste à transformer la variable de réponse à 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, la variable de réponse se rapproche généralement de la distribution normale. Les exemples suivants montrent comment effectuer ces transformations dans R.

Transformation du journal dans R

Le code suivant montre comment effectuer une transformation de journal sur une variable de réponse :

#create data frame
df <- data.frame(y=c(1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 6, 7, 8),
                 x1=c(7, 7, 8, 3, 2, 4, 4, 6, 6, 7, 5, 3, 3, 5, 8),
                 x2=c(3, 3, 6, 6, 8, 9, 9, 8, 8, 7, 4, 3, 3, 2, 7))

#perform log transformation
log_y <- log10(df$y)

Le code suivant montre comment créer des histogrammes pour afficher la distribution de y avant et après avoir effectué une transformation de journal :

#create histogram for original distribution
hist(df$y, col='steelblue', main='Original')

#create histogram for log-transformed distribution 
hist(log_y, col='coral2', main='Log Transformed')

Log transformation des données dans R

Remarquez à quel point la distribution transformée en log est beaucoup plus normale 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.

En fait, si nous effectuons un test de Shapiro-Wilk sur chaque distribution, nous constaterons que la distribution d’origine échoue à l’hypothèse de normalité, contrairement à la distribution transformée en log (à α = 0,05) :

#perform Shapiro-Wilk Test on original data
shapiro.test(df$y)

	Shapiro-Wilk normality test

data:  df$y
W = 0.77225, p-value = 0.001655

#perform Shapiro-Wilk Test on log-transformed data 
shapiro.test(log_y)

	Shapiro-Wilk normality test

data:  log_y
W = 0.89089, p-value = 0.06917

Transformation racine carrée dans R

Le code suivant montre comment effectuer une transformation racine carrée sur une variable de réponse :

#create data frame
df <- data.frame(y=c(1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 6, 7, 8),
                 x1=c(7, 7, 8, 3, 2, 4, 4, 6, 6, 7, 5, 3, 3, 5, 8),
                 x2=c(3, 3, 6, 6, 8, 9, 9, 8, 8, 7, 4, 3, 3, 2, 7))

#perform square root transformation
sqrt_y <- sqrt(df$y)

Le code suivant montre comment créer des histogrammes pour afficher la distribution de y avant et après avoir effectué une transformation racine carrée :

#create histogram for original distribution
hist(df$y, col='steelblue', main='Original')

#create histogram for square root-transformed distribution 
hist(sqrt_y, col='coral2', main='Square Root Transformed')

Transformation racine carrée dans R

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

Transformation de racine cubique dans R

Le code suivant montre comment effectuer une transformation de racine cubique sur une variable de réponse :

#create data frame
df <- data.frame(y=c(1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 6, 7, 8),
                 x1=c(7, 7, 8, 3, 2, 4, 4, 6, 6, 7, 5, 3, 3, 5, 8),
                 x2=c(3, 3, 6, 6, 8, 9, 9, 8, 8, 7, 4, 3, 3, 2, 7))

#perform square root transformation
cube_y <- df$y^(1/3)

Le code suivant montre comment créer des histogrammes pour afficher la distribution de y avant et après avoir effectué une transformation racine carrée :

#create histogram for original distribution
hist(df$y, col='steelblue', main='Original')

#create histogram for square root-transformed distribution 
hist(cube_y, col='coral2', main='Cube Root Transformed')

Transformation de racine cubique dans R

En fonction de votre ensemble de données, l’une de ces transformations peut produire un nouvel ensemble de données plus normalement distribué que les autres.

Ajouter un commentaire

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