9 votos

R: Box-plot en escala logarítmica frente a la transformación logarítmica *luego* de crear el box-plot: No se obtiene el mismo resultado

En el boxplot() en R, existe la función log = para especificar si un eje debe estar o no en la escala logarítmica.

Para mí, si elijo esta opción (especificar log = "y" como argumento), el forma del box-plot debería tener el mismo aspecto que si transformara manualmente los datos primero con el logaritmo, y luego trazara esos datos transformados por el logaritmo (reconozco que las etiquetas en el eje serán diferentes, pero me refiero al forma de la parcela). Sin embargo, este no es el caso.

He aquí un sencillo ejemplo de trabajo:

set.seed(923489)
data <- rlnorm(300, meanlog = 0, sdlog = 1)
boxplot(data) # Highly skewed right raw data
boxplot(data, log="y") # Data on log scale; less right-skewed
boxplot(log10(data)) # Log base 10-transform data; shape not the same as when specify log="y"
boxplot(log(data)) # Natural log and base 10 give same shape plot (just different axis labels)

¿Por qué?

2 votos

Uno calcula el boxplot en unidades originales y luego lo dibuja en la escala logarítmica, el otro calcula el boxplot en la escala logarítmica y luego lo dibuja. Las dos cosas son diferentes cada vez que se obtiene algo que no se basa puramente en los cuantiles individuales (los cercos, y por lo tanto los bigotes se basan en funciones lineales de los cuantiles)

7voto

Horst Grünbusch Puntos 2742

Obviamente, la caja con el "cinturón" de la mediana tiene el mismo aspecto. La diferencia son los bigotes. En la configuración por defecto, ?boxplot nos dice que

Si 'rango' es positivo, los bigotes se extienden hasta el punto de datos más extremo que no es más que 'rango' veces el rango intercuartil de la caja.

range es positivo, es decir, 1,5 en el defecto. Entonces, ¿los bigotes se extienden 1,5 veces la caja, pero en qué escala? Si llama a boxplot(data, log="y") es 1,5 en los datos sin escalar; por tanto, el bigote inferior se alarga. Si se llama boxplot(log(data)) los bigotes son necesariamente simétricos.

0 votos

Gracias. No me queda claro, entonces, cuál es la forma "más correcta" de representar los datos. Este post (que es para Stata, no para R, pero discute el mismo tema) parece implicar que la mejor práctica sería primero transformar logarítmicamente los datos, y luego reetiquetar manualmente el box-plot en términos de las unidades originales: stata.com/support/faqs/graphics/ ¿Qué opina de este enfoque?

2 votos

@Meg Creo que dependería de si crees que los bigotes (que representan el rango) deben tener la misma longitud en el espacio logarítmico o sin escalar. Dado que estás transformando los datos en logaritmos, lo primero probablemente tenga más sentido.

4voto

RossC Puntos 3725

Desde ?boxplot , se puede leer:

gama

determina la distancia que los bigotes del gráfico se extienden desde el caja. Si el rango es positivo, los bigotes se extienden hasta el punto de datos más extremo punto de datos más extremo que no es más que el rango intercuartílico de la caja. Un valor de cero hace que los bigotes se extiendan a los extremos de los datos.

El valor por defecto al trazar un boxplot, range=1.5 significa que los bigotes se extenderán 1,5 veces el rango intercuartil por encima del tercer cuartil y por debajo del primer cuartil; todos los demás puntos se etiquetarán como valores atípicos.

Las diferencias que se observan se basan en el hecho de que la transformación logarítmica de los datos no mantiene la distancia normalizada de un punto respecto al tercer o primer cuartil; como era de esperar con sus datos, después de la transformación logarítmica tiene menos valores atípicos con valores muy altos y más valores atípicos con valores bajos.

0 votos

Gracias por su comentario, que es esencialmente equivalente al anterior. He elegido como respuesta "correcta" la que tiene más votos positivos, pero también agradezco tu aportación.

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