Introducción.

Los datos que aparecen en el fichero p1-robles.csv se refieren a un estudio realizado sobre un robledal cercano a una planta industrial, parte de los cuales se visualizan en la tabla. Se han seleccionado robles

Sobre cada árbol se han medido las concentraciones (mg/kg) de ocho elementos químicos en sus hojas:

Para empezar:

  • Descarga el fichero de datos (el enlace está arriba).
  • Abre un script nuevo en RStudio.
  • Usa la utilidad de RStudio para leer su contenido y guardalo en la variable robles. Si no sabes de qué hablo, vuelve al material propuesto para trabajar antes de la práctica.

Si necesitas leer los datos y no sabes cómo, ve a las soluciones de la Práctica 1 (pero en las PECs necesitarás saber leer datos).

Ejercicio 1

  • Calcula la media y la desviación típica muestral (también llamada cuasidesviación) de la variable Nitrogeno.

    Usaremos las funcioens mean y sd

    mean(robles$Nitrogeno)
    ## [1] 3.293737
    sd(robles$Nitrogeno)
    ## [1] 0.6415097
  • Repite el cálculo para los primeros 14 individuos de la tabla.

    Recuerda que 1:10 genera la sucesión 1, 2, 3,…, 10, y que los corchetes [] sirven para referirse a los elementos de un vector/tabla

    mean(robles$Nitrogeno[1:14])
    ## [1] 3.506857
    sd(robles$Nitrogeno[1:14])
    ## [1] 0.6564765
  • Repite el cálculo para los individuos que recibieron tratamiento. Ahora seleccionamos los individuos tales que Tratamiento == TRUE

    mean(robles$Nitrogeno[robles$Tratamiento == TRUE])
    ## [1] 3.256263
    sd(robles$Nitrogeno[robles$Tratamiento == TRUE])
    ## [1] 0.5394019
  • Repite el cálculo anterior en función de la variable Zona. Comenta los resultados. Indicación: usa la función aggregate() Para no tener que repetir el cálculo 4 veces, usamos la función `aggregate()``:

    aggregate(robles$Nitrogeno ~ robles$Zona, FUN = mean)
    ##   robles$Zona robles$Nitrogeno
    ## 1           1         3.675000
    ## 2           2         3.300833
    ## 3           3         2.549857
    ## 4           4         3.482091

    Se aprecia que en las zonas 1, 2 y 4 las concentraciones medias son similares, y en la zona 3 es inferior.

    En el caso de la desviación típica muestral

    aggregate(robles$Nitrogeno ~ robles$Zona, FUN = sd)
    ##   robles$Zona robles$Nitrogeno
    ## 1           1        0.8000555
    ## 2           2        0.2664613
    ## 3           3        0.4316231
    ## 4           4        0.5848168

    La dispersión es dispar; de menor a mayor, zona 2, 3, 4 y 1.

  • A todo esto, ¿crees que la media es una buena medida de centralización para describir los datos?.

    Indicación: usa una herramienta visual (boxplot, curva densidad,…) para analizar la distribución de los datos y determinar si la media es apropiada

    Queremos asegurarnos de que las submuestras son unimodales y simétricas. Podemos usar sendos boxplots para visualizar este hecho

    boxplot(robles$Nitrogeno ~ robles$Zona)
    stripchart(robles$Nitrogeno ~ robles$Zona, add = T, vertical = T, method="jitter")

Su forma corrobora grosso modo que los datos sigen una campana de Gauss (simétrica y unimodal). Recuerda que para muestras elegidas al azar no podemos esperar observas simetrías perfecta

Ejercicio 2

¿Cuál es el valor mínimo que alcanza la variable Magnesio? ¿En qué individuo se observa? Indicación: usa la función which()

min(robles$Magnesio)
## [1] 0.267
which(robles$Magnesio == min(robles$Magnesio))
## [1] 34 35

Ejercicio 3

  • ¿Cuántas observaciones corresponden a robles con una concentración de Potasio mayor o igual que 2? Puedes recuperar los valores del Potasio de los robles que tienen más de 2 de Potasio

    robles$Potasio[robles$Potasio >= 2]
    ##  [1] 2.632 2.495 2.396 2.197 2.233 2.533 2.667 2.416 2.333 2.267 2.611 2.982
    ## [13] 2.833 2.050 2.566

    y, a continuación, calcular la longitud de dicho vector

    length(robles$Potasio[robles$Potasio >= 2])
    ## [1] 15

    Otra alternativa es comparar cada elemento del vector robles$Potasio con 2

    robles$Potasio >= 2
    ##  [1]  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE
    ## [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
    ## [25] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE
    ## [37] FALSE  TRUE

    para obtener TRUEs y FALSEs según se cumpla o no esa condición. Recuerda que TRUE vale 1 y FALSE cero, con lo que sumas todos esos unos y ceros obtienes la cantidad deseada

    sum(robles$Potasio >= 2)
    ## [1] 15
  • ¿Qué porcentaje de robles tiene una concentración de Potasio mayor o igual que 2

    Basta con dividir el número anterior entre el número total de robles y multiplicar por 100

    (sum(robles$Potasio >= 2)/nrow(robles)) * 100
    ## [1] 39.47368

Ejercicio 4

Ahora calcula la media de la variable Nitrogeno para aquellas observaciones en las que Potasio es mayor o igual que 2. Compárala con la media que has calculado en el anterior apartado. Haz lo mismo con la cuasidesviación típica. Basta con calcular ambas medias

mean(robles$Nitrogeno)
## [1] 3.293737
mean(robles$Nitrogeno[robles$Potasio >= 2])
## [1] 3.570467

en el segundo caso la media es ligeramente superior, y las cuasidesviaciones típicas

sd(robles$Nitrogeno)
## [1] 0.6415097
sd(robles$Nitrogeno[robles$Potasio >= 2])
## [1] 0.5133733

Ejercicio 5

A partir del boxplot de la variable Magnesio, ¿observas algún dato atípico? ¿Qué posición ocupa en la tabla? En caso afirmativo, crea otra tabla robles1 en la que hayas eliminado esa fila y calcula de nuevo el boxplot

boxplot(robles$Magnesio)

pb = boxplot(robles$Magnesio)

which(robles$Magnesio %in% pb$out)
## [1] 17
robles1 = robles[-which(robles$Magnesio %in% pb$out), ]
boxplot(robles1$Magnesio)

Ejercicio 6

Representa los boxplots de la variable Magnesio para cada una de las zonas, ¿observas algún patrón?

boxplot(robles$Magnesio ~ robles$Zona)
stripchart(robles$Magnesio ~ robles$Zona, method = "jitter", col="blue", add=TRUE, pch = 21, vertical = T)

No olvides representar los puntos sobre los boxplots. Y sí, se observan ciertas tendencias:

  • En la zona 4 parece haber menos Magnesio.
  • En la zona 1 parece estar menos variabilidad.
  • Los valores más altos se encuentran en las zonas 2 y 3