La R boxplot de la función es una forma muy útil de ver los datos: rápidamente se proporciona un resumen visual de la ubicación aproximada y la varianza de los datos, y el número de valores atípicos. Además, me gustaría identificar los valores atípicos, con el fin de encontrar rápidamente los problemas en el conjunto de datos.

Los valores de estos valores atípicos pueden ser accedidos usando myplot$out. Por desgracia, la etiquetas de estos valores atípicos parecen no estar disponible. Hay algunos paquetes destinado a mostrar las etiquetas en la trama en sí: http://www.r-statistics.com/2011/01/how-to-label-all-the-outliers-in-a-boxplot/, pero no funcionan bien y sólo quiero la lista de estos valores atípicos, no necesito estar en la trama en sí.

Alguna idea?

OriginalEl autor static_rtti | 2012-06-21

3 Comentarios

  1. 15

    Que has hecho la mayoría del trabajo duro usted mismo. Todo lo que queda es una comparación:

    ##First create some data 
    ##You should include this in your question)
    set.seed(2)
    dd = data.frame(x = rlnorm(26), y=LETTERS)

    Agarrar los valores atípicos

    outliers = boxplot(dd$x, plot=FALSE)$out

    Extraer los valores atípicos de la estructura de datos original

    dd[dd$x %in% outliers,]

    Más explicación:

    La variable dd$x es el vector de 26 números. La variable outliers contiene los valores de los valores atípicos (sólo tipo dd$x y outliers en su R de la consola). El comando

    dd$x %in% outliers

    coincide con los valores de dd$x y los valores extremos, es decir: la

    [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE <snip>

    La notación de corchetes, dd[dd$x %in% outliers,] devuelve las filas de la trama de datos dd, donde dd$x %in% outliers volver TRUE.

    Podrías explicar un poco cómo tu solución funciona?

    OriginalEl autor csgillespie

  2. 2

    Sugiero which(x < myplot$stats[1] | x > myplot$stats[5]) donde x es la de datos.

    Gracias, que también funciona!

    OriginalEl autor danas.zuokas

  3. 1

    Si los datos introducidos es un vector con los elementos nombrados, boxplot mantiene los nombres.

    set.seed(2)
    x <- rlnorm(26)
    names(x) <- LETTERS
    outliers <- boxplot(x, plot=FALSE)$out
    outliers
           I        O        U        X 
    7.275219 5.943089 8.091541 7.061459 

    OriginalEl autor plannapus

Dejar respuesta

Please enter your comment!
Please enter your name here