Cómo transformar datos en R (registro, raíz cuadrada, raíz cúbica)

Muchas pruebas estadísticas suponen que los residuos de una variable de respuesta se distribuyen normalmente.

Sin embargo, a menudo los residuos no se distribuyen normalmente. Una forma de abordar este problema es transformar la variable de respuesta utilizando una de las tres transformaciones:

1. Transformación logarítmica : transforme la variable de respuesta de y a log (y) .

2. Transformación de raíz cuadrada: transforme la variable de respuesta de y en y .

3. Transformación de raíz cúbica: transforma la variable de respuesta de yay 1/3 .

Al realizar estas transformaciones, la variable de respuesta generalmente se acerca más a la distribución normal. Los siguientes ejemplos muestran cómo realizar estas transformaciones en R.

Transformación de registro en R

El siguiente código muestra cómo realizar una transformación de registro en una variable de respuesta:

#create marco de datos
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))

# realizar transformación de registro
 log_y <- log10 (df $ y)

El siguiente código muestra cómo crear histogramas para ver la distribución de y antes y después de realizar una transformación de registro:

#crear histograma para distribución original
hist (df $ y, col = 'azul acero', main = 'Original')

#crear histograma para distribución transformada logarítmicamente 
hist (log_y, col = 'coral2', main = 'Log transformado')

Transformación de registro de datos en R

Observe cómo la distribución transformada logarítmicamente es mucho más normal en comparación con la distribución original. Todavía no tiene una “forma de campana” perfecta, pero está más cerca de una distribución normal que la distribución original.

De hecho, si realizamos una prueba de Shapiro-Wilk en cada distribución, encontraremos que la distribución original no cumple con el supuesto de normalidad, mientras que la distribución transformada logarítmicamente no lo hace (en α = .05):

# realizar la prueba de Shapiro-Wilk en datos originales
shapiro.test (df $ y)

	Prueba de normalidad de Shapiro-Wilk

datos: df $ y
W = 0,77225, valor p = 0,001655

# realizar la prueba de Shapiro-Wilk en datos transformados en registros 
shapiro.test (log_y)

	Prueba de normalidad de Shapiro-Wilk

datos: log_y
W = 0,89089, valor de p = 0,06917

Transformación de raíz cuadrada en R

El siguiente código muestra cómo realizar una transformación de raíz cuadrada en una variable de respuesta:

#create marco de datos
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))

# realizar la transformación de raíz cuadrada
 sqrt_y <- sqrt (df $ y)

El siguiente código muestra cómo crear histogramas para ver la distribución de y antes y después de realizar una transformación de raíz cuadrada:

#crear histograma para distribución original
hist (df $ y, col = 'azul acero', main = 'Original')

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

Transformación de raíz cuadrada en R

Observe cómo la distribución transformada por raíz cuadrada tiene una distribución mucho más normal en comparación con la distribución original.

Transformación de raíz cúbica en R

El siguiente código muestra cómo realizar una transformación de raíz cúbica en una variable de respuesta:

#create marco de datos
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))

#realizar transformación de raíz cuadrada
 cube_y <- df $ y ^ (1/3)

El siguiente código muestra cómo crear histogramas para ver la distribución de y antes y después de realizar una transformación de raíz cuadrada:

#crear histograma para distribución original
hist (df $ y, col = 'azul acero', main = 'Original')

#crear histograma para la distribución de raíz cuadrada transformada  
hist (cube_y, col = 'coral2', main = 'Cube Root Transformed')

Transformación de raíz cúbica en R

Dependiendo de su conjunto de datos, una de estas transformaciones puede producir un nuevo conjunto de datos con una distribución más normal que los demás.

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

Una forma de cuantificar la relación entre dos variables es utilizar el coeficiente de correlación de Pearson , que es…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!