239 votos

¿Cómo debo transformar los datos no negativos, incluidos los ceros?

Si tengo datos positivos muy sesgados, suelo tomar registros. Pero, ¿qué debo hacer con los datos no negativos muy sesgados que incluyen ceros? He visto que se utilizan dos transformaciones:

  • $\log(x+1)$ que tiene la característica de que el 0 se corresponde con el 0.
  • $\log(x+c)$ donde c se estima o se establece como un valor positivo muy pequeño.

¿Existen otros enfoques? ¿Existen buenas razones para preferir un enfoque a los demás?

29 votos

He resumido algunas de las respuestas y otro material en robjhyndman.com/researchtips/transformations

5 votos

¡excelente manera de transformar y promover stat.stackoverflow !

1 votos

Sí, estoy de acuerdo @robingirard (¡acabo de llegar aquí por la entrada del blog de Rob)!

106voto

Senseful Puntos 116

Nadie ha mencionado la transformación del seno hiperbólico inverso. Así que para completarla la añado aquí.

Es una alternativa a las transformaciones Box-Cox y se define por \begin {Edición} f(y, \theta ) = \text {sinh}^{-1}( \theta y)/ \theta = \log [ \theta y + ( \theta ^2y^2+1)^{1/2}]/ \theta , \end {ecuación} donde $\theta>0$ . Para cualquier valor de $\theta$ El cero se asigna a cero. También hay una versión de dos parámetros que permite un desplazamiento, al igual que con la transformación BC de dos parámetros. Burbidge, Magee y Robb (1988) discutir la transformación del IHS incluyendo la estimación de $\theta$ .

La transformación IHS funciona con datos definidos en toda la línea real, incluidos los valores negativos y los ceros. Para valores grandes de $y$ se comporta como una transformación logarítmica, independientemente del valor de $\theta$ (excepto 0). El caso límite como $\theta\rightarrow0$ da $f(y,\theta)\rightarrow y$ .

Me parece que la transformación del IHS debería ser mucho más conocida de lo que es.

1 votos

Parece una buena alternativa a $tanh$ /transformaciones logísticas

1 votos

Sobre el IHS algunos parecen no estar de acuerdo: onlinelibrary.wiley.com/doi/10.1890/10-0340.1/abstract

7 votos

Ese artículo trata de la transformación del seno inverso, no del seno hiperbólico inverso.

67voto

Me parece que la elección de la transformación más adecuada depende del modelo y del contexto.

El punto "0" puede surgir por varias razones diferentes, cada una de las cuales puede tener un tratamiento diferente:

  • Truncamiento (como en el ejemplo de Robin): Utilizar modelos adecuados (por ejemplo, mezclas, modelos de supervivencia, etc.)
  • Datos que faltan: Impute los datos / elimine las observaciones, si procede.
  • Punto cero natural (por ejemplo, los niveles de ingresos; un desempleado tiene cero ingresos): Transformar según sea necesario
  • Sensibilidad del instrumento de medición: ¿Quizás, añadir una pequeña cantidad a los datos?

No estoy ofreciendo una respuesta, ya que sospecho que no hay una transformación universal y "correcta" cuando hay ceros.

9 votos

Todas las respuestas a mi pregunta han proporcionado información útil y las he votado todas. Pero sólo puedo seleccionar una respuesta y la de Srikant es la que ofrece la mejor visión general, en mi opinión.

3 votos

También hay que tener en cuenta que hay modelos de cero-inflado (ceros extra y te importan algunos ceros: un modelo de mezcla), y modelos de obstáculo (ceros y te importan los no-cero: un modelo de dos etapas con un modelo inicial censurado).

50voto

jldugger Puntos 7490

Un enfoque útil cuando la variable se utiliza como factor independiente en la regresión es sustituirla por dos variables: una es un indicador binario de si es cero y la otra es el valor de la variable original o una reexpresión de la misma, como su logaritmo. Esta técnica se discute en El libro de Hosmer y Lemeshow sobre la regresión logística (y en otros lugares, Estoy seguro). Los gráficos de probabilidad truncada de la parte positiva de la variable original son útiles para identificar una reexpresión adecuada. (Véase el análisis en https://stats.stackexchange.com/a/30749/919 para ver ejemplos).

Cuando la variable es la dependiente en un modelo lineal, la regresión censurada (como Tobit ) puede ser útil, obviando de nuevo la necesidad de producir un logaritmo iniciado. Esta técnica es común entre los econometristas.

2 votos

¿Es la modelización de los datos como una Poisson inflacionada por cero un caso especial de este enfoque?

5 votos

@David, aunque parezca similar, no lo es, porque el ZIP es un modelo de dependiente variable, no la variable independiente.

1 votos

@whuber Esta técnica se analiza en el libro de Hosmer y Lemeshow sobre la regresión logística ¿Por casualidad sabes en qué capítulo se habla de esta técnica? Estoy mirando su libro, pero no consigo encontrar la página correcta...

43voto

Omar Kooheji Puntos 384

Las transformaciones logarítmicas con desplazamientos son casos especiales de la Transformaciones Box-Cox :

$y(\lambda_{1}, \lambda_{2}) = \begin{cases} \frac {(y+\lambda_{2})^{\lambda_1} - 1} {\lambda_{1}} & \mbox{when } \lambda_{1} \neq 0 \\ \log (y + \lambda_{2}) & \mbox{when } \lambda_{1} = 0 \end{cases}$

Se trata de la forma ampliada para los valores negativos, pero también es aplicable a los datos que contienen ceros. Box y Cox (1964) presentan un algoritmo para encontrar valores adecuados para el $\lambda$ utilizando la máxima probabilidad. Esto le da la última transformación.

Una razón para preferir las transformaciones Box-Cox es que están desarrolladas para asegurar los supuestos del modelo lineal. Hay algunos trabajos que demuestran que incluso si sus datos no pueden ser transformados a la normalidad, entonces el estimado $\lambda$ todavía conducen a una distribución simétrica.

No estoy seguro de que esto responda a sus datos, ya que podría ser que $\lambda = (0, 1)$ que no es más que la transformación logarítmica que mencionas, pero puede valer la pena estimar la $\lambda$ 's para ver si otra transformación es apropiada.

En R, el boxcox.fit función en el paquete geoR calculará los parámetros por ti.

0 votos

@ars. Creo que el boxcox en la función MASS sólo estima $\lambda_1$ y asume $\lambda_2=0$ .

1 votos

@Rob: Oh, lo siento. El geoR de Diggle es el camino a seguir -- pero especifica lambda2=TRUE en los argumentos de boxcox.fit . (También se ha actualizado la respuesta).

10 votos

Para quien lea esto preguntándose qué ha pasado con esta función, ahora se llama boxcoxfit .

22voto

Eggs McLaren Puntos 945

Supongo que cero = datos que faltan, ya que esa es una cuestión totalmente diferente.

Cuando pienso en cómo manejar los ceros en la regresión lineal múltiple, tiendo a considerar cuántos ceros tenemos realmente.

Sólo un par de ceros

Si tengo un solo cero en un conjunto de datos razonablemente grande, tiendo a hacerlo:

  1. Quitar el punto, tomar los registros y ajustar el modelo
  2. Añade un pequeño $c$ al punto, tomar registros y ajustar el modelo

¿Cambia el ajuste del modelo? ¿Y los valores de los parámetros? Si el modelo es bastante robusto a la eliminación del punto, optaré por el enfoque rápido y sucio de añadir $c$ .

Podrías hacer este procedimiento un poco menos burdo y utilizar el método boxcox con desplazamientos descrito en la respuesta de ars.

Gran número de ceros

Si mi conjunto de datos contiene un gran número de ceros, esto sugiere que la regresión lineal simple no es la mejor herramienta para el trabajo. En su lugar, utilizaría algo como la modelización de mezclas (como sugieren Srikant y Robin).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X