2015-02-23

Diagrama de caja con intervalos de confianza para la mediana

Title Anteriormente vimos cómo crear diagramas de caja en R. En esta ocasión vamos a crear una variante, incluyendo cuñas o muescas(notches) que muestran el intervalo de confianza alrededor de la mediana.

boxplot(iris$Sepal.Width,
        notch = TRUE,
        col = 'palegreen',
        xlab = "Sepal Width",
        horizontal = TRUE)
Las cuñas alrededor de la mediana R las calcula como +/-1,58 RIC/raíz cuadrada(n), donde RIC es el rango intercuartílico y n el número de datos.

Valores

Para obtener los valores del intervalo de confianza de las cuñas:

boxplot.stats(iris$Sepal.Width)$conf
[1] 2.935497 3.064503

Etiquetas de datos

# Horizontal
data <- iris$Sepal.Width
boxplot(data,
        notch = TRUE,
        col = 'palegreen', 
        horizontal = TRUE, 
        axes = FALSE, 
        staplewex =1)
values <- c(round(boxplot.stats(data)$conf, 1), boxplot.stats(data)$stats)
text(x = values, labels = values, y = 1.25)
Si no queremos etiquetar el intervalo de confianza de las cuñas.

values <- c(round(boxplot.stats(data)$stats, 1), boxplot.stats(data)$stats)
# Vertical
data <- iris$Sepal.Width
boxplot(data,
        notch = TRUE,
        col = 'palegreen', 
        axes = FALSE, 
        staplewex =1)
values <- c(round(boxplot.stats(data)$conf, 1), boxplot.stats(data)$stats)
text(y = values, labels = values, x = 1.25)

Entradas relacionadas

Referencias

2015-02-20

Clasificar los valores de una tabla dinámica en Excel 2003/2007

Title En una entrada anterior vimos cómo clasificar los valores de una tabla dinámica desde 2010 en adelante. Desafortunadamente esta característica no está disponible ni en Excel 2003 ni 2007.

Ejemplo

Creamos una tabla dinámica cuyo origen de datos es la tabla Pedidos del fichero Tablas Neptuno. En Filas añadimos Empleado y en Valores el campo Cargo.

Alternativas

  1. Escalas de color en Excel 2007.Seleccionamos el rango de valores. En el grupo Estilos de la ficha Inicio, clic en Formato condicional y, a continuación, en Escalas de color.
  2. .
  3. % del total principal. Añadimos de nuevo el campo Cargo. Clic en el botón secundario del ratón en el campo Cargo añadido y, a continuación, Mostrar valores como. Seleccionamos la opción % del total principal.
  4. Ordenar el campo Cargo de mayor a menor. A continuación creamos el campo calculado Clasificación que añade un 1 a cada fila.
  5. Clic en el botón secundario del ratón en el campo Clasificación de la tabla dinámica y, a continuación, Configuración de campo de valor. En la pestaña Mostrar valores como, seleccionamos la opción Total en.

Entradas relacionadas

2015-02-18

Distribución de frecuencias relativas en R

Title Volvemos a tratar el tema de la distribución de frecuencias en R. Anteriormente construimos una tabla con la frecuencia absoluta. En esta ocasión construimos una tabla con la frecuencia relativa.

Ejemplo hflights

Emplearemos los datos incluidos en el paquete hflights. Es un data frame de 227.496 filas y 21 columnas que contiene información sobre los vuelos que parten de los aeropuertos de Houston: IAH (George Bush Intercontinental) y HOU (Houston Hobby).

Emplearemos la columna Dest. Contiene 227.496 filas con el código del aeropuerto destino del vuelo. Queremos crear una tabla de frecuencias de esta variable categórica.

Frecuencias absolutas

  1. Con la función table, creamos una tabla con el nº de ocurrencias de cada destino.
  2. require(hflights)
    grupos.t1 <- table(hflights$Dest)
    head(grupos.t1, 10)
    
    Automáticamente nos ordena alfabéticamente los resultados.
     ABQ  AEX  AGS  AMA  ANC  ASE  ATL  AUS  AVL  BFL 
    2812  724    1 1297  125  125 7886 5022  350  504
    
  3. Ordenamos los resultados de forma descendente por nº de ocurrencias.
  4. grupos.t2 <- sort(grupos.t1, decreasing = TRUE) 
    head(grupos.t2, 10)
    
     DAL  ATL  MSY  DFW  LAX  DEN  ORD  PHX  AUS  SAT 
    9820 7886 6823 6653 6064 5920 5748 5096 5022 4893 
    
    Los tres destinos más frecuentes son: Dallas Love Field Airport (DAL), Atlanta Hartsfield International Airport (ATL) y New Orleans International Airport (MSY).

Frecuencias relativas

  1. Con la función prop.table, creamos una tabla la frecuencia relativa. Esta función requiere como argumento el objeto table, que hemos creado anteriormente.
  2. # Sin ordenar
    prop.table(grupos.t1) # Equivalente a:
     table(hflights$Dest)/length(hflights$Dest)
    # Ordenados
    prop.table(grupos.t2)
    
    Ordena alfabéticamente los resultados y el formato
    # Sin ordenar
             ABQ          AEX          AGS          AMA 
    1.236066e-02 3.182474e-03 4.395682e-06 5.701199e-03 
    
    # Ordenado
           DAL        ATL        MSY        DFW 
    0.04316559 0.03466435 0.02999174 0.02924447
    
  3. Formateamos el resultado, .
  4. rdo <- data.frame(Porcentaje = round(prop.table(grupos.t2), 4)*100)
    head(rdo)
    
        Porcentaje
    DAL       4.32
    ATL       3.47
    MSY       3.00
    DFW       2.92
    LAX       2.67
    DEN       2.60
    

Referencias

2015-02-16

Clasificar los valores de una tabla dinámica en Excel 2010/2013

Title Desde Excel 2010 en adelante es posible en Mostrar valores como, clasificar los valores de una tabla dinámica. De esta manera podemos jerarquizar los valores de la tabla dinámica sin ordenarlos.

Ejemplo

Creamos una tabla dinámica cuyo origen de datos es la tabla Pedidos del fichero Tablas Neptuno.

  1. En Filas añadimos Empleado y en Valores dos veces el valor por el que queremos clasificar, en este caso Cargo.
  2. Clic en el botón secundario del ratón en el campo Cargo de la tabla dinámica y, a continuación, Mostrar valores como. Seleccionamos la opción Clasificar de mayor a menor. En el cuadro de diálogo elegimos el campo base Empleado.
  3. Resultado final con la clasificación de cada empleado por la suma de cargos.

Alternativa al paso 2

Clic en el botón secundario del ratón en el campo Cargo de la tabla dinámica y, a continuación,Configuración de campo de valor. En la pestaña Mostrar valores como, seleccionamos la opción Clasificar de mayor a menor. En el Campo base elegimos Empleado.

Entradas relacionadas

2015-02-13

Sistemas de ecuaciones lineales en R

Title En R se pueden resolver fácilmente sistemas de ecuaciones lineales con la función solve.

Ejemplo

2x + 3y + 3z = 20
  x + 4y + 3z = 15
5x + 3y + 4z = 30

Solución

a <- rbind(c(2, 3, 3), 
           c(1, 4, 3), 
           c(5, 3, 4))
b <- c(20, 15, 30)
solve(a, b)
[1] -1.25 -6.25 13.75
Si queremos el resultado en fracciones, utilizamos la función fractions del paquete MASS.

library(MASS)
fractions(solve(a, b))
[1]  -5/4 -25/4  55/4

2015-02-11

Invertir lista en Excel

Title Para invertir una lista en Excel tenemos varias alternativas.

Mediante una columna auxiliar

  • Columna o verticalmente
    1. Creamos una columna auxiliar con el orden de la lista.
    2. Clic en una celda de la segunda serie.
    3. Ordenamos en orden descendente (Ordenar de Z a A).
  • Fila, u horizontalmente
    1. Creamos una fila auxiliar con el orden de la lista.
    2. Seleccionamos el rango correspondiente (región actual)..
    3. Seleccionamos orden personalizado.
    4. En Opciones de ordenación marcamos Ordenar de izquierda a derecha y clic en Aceptar.
    5. En el primer cuadro desplegable seleccionamos la fila por la que deseamos ordenar
    6. En Ordenar según elegimos Valores, en Opciones de ordenación De mayor a menor y clic en Aceptar

    Mediante fórmulas

  • Columna o verticalmente
  • Fila, u horizontalmente
  • Notas

    Empleamos la función INDICE. El primer argumento es la serie a ordenar. El segundo utiliza la función COLUMNAS o FILAS y fijamos la última celda para que al arrastrar el nº de columnas o filas decrezca.

    • Columna, o verticalmente

    =INDICE($B$1:$G$1;COLUMNAS(B1:$G1)) ' Referencia mixta (columna absoluta)
    =INDICE($B$1:$G$1;COLUMNAS(B1:$G$1))' Referencia absoluta
    
    • Fila, u horizontalmente

    =INDICE($I$2:$I$18;FILAS(I2:I$18)) ' Referencia mixta (fila absoluta)
    =INDICE($I$2:$I$18;FILAS(I2:$I$18))' Referencia absoluta
    

    2015-02-09

    Múltiples modas en R

    Title En una entrada anterior calculamos la moda usando la función mlv del paquete modeest. En esta entrada veremos cómo obtener varias modas cuando el valor más frecuente no es único.

    # Si modeest no está instalado y cargado
    install.packages("modeest") 
    library(modeest)
    

    Problema

    Cuando existen múltiples valores con la misma frecuencia, mlv devuelve la media de dichos valores. Por ejemplo en la columna Girth del data frame trees.

    mlv(trees$Girth, method = "mfv")[1]
    
    $M
    [1] 13.325
    
    El valor anterior no existe en nuestros datos. Es el promedio de las múltiples modas: 11, 11,4, 12,9 y 18.

    Solución

    Para obtener los valores correspondientes a las múltiples modas, emplearemos dos opciones: funciones del paquete base o del paquete dplyr.

    • Paquete base

    # base-package
    trees_nuevo <- subset(data.frame(table(trees$Girth)), Freq == max(Freq))
    
       Var1 Freq
    7    11    2
    11 11.4    2
    14 12.9    2
    26   18    2
    
    mean(as.numeric(as.character(trees_nuevo$Var1))) # factor a numérico
    
    [1] 13.325
    
    • Paquete dplyr

    # dplyr
    trees_nuevo <- trees %>% 
                    count(Girth) %>%
                    filter(n == max(n)) 
    
    Source: local data frame [4 x 2]
    
      Girth n
    1  11.0 2
    2  11.4 2
    3  12.9 2
    4  18.0 2
    
    mean(trees_nuevo$Girth)
    
    [1] 13.325
    

    Entradas relacionadas

    Nube de datos