Enunciado

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:

Instrucciones:

mi_url = "http://www3.uah.es/marcos_marva/CursoAmbientales/practicas/datos/p1-robles2019.csv"
robles = read.table(file = mi_url, sep = ";", header = TRUE, dec ="," )

con esto has creado la tabla (data.frame, en la jerga de R) robles que contiene los datos arriba mencionados

Responde de forma concisa y razonadamente a las siguientes preguntas:

Ejercicio 1

Clasifica las variables del estudio en cualitativas, cuantitativas discretas y cuantitativas continuas.

Cualitativas nominales son variadad, zona y tratamiento. Cuantitativas discretas no hay, y continuas son todas las concentraciones de los 8 elementos químicos.

Ejercicio 2

¿Hay alguna variable cualitativa ordinal?

No, ninguna.

Ejercicio 3

¿Cuántos robles hay de cada variedad?

La tabla de frecuencias absolutas nos dice cuántos robles hay de cada variedad

table(robles$Variedad)
## 
##  A  B 
## 14 24

¿Qué porcentaje de los robles estudiados pertenecen a la variedad B?

El porcentaje se obtiene de la tabla de recuencias relativas

n = nrow(robles)
table(robles$Variedad)/n
## 
##         A         B 
## 0.3684211 0.6315789

que es la tabla en la que cada una de las frecuencias absolutas está dividida entre el total de datos. Esto da la proporción (tanto por uno) de robles de cada tipo. Al multiplicar por 100 se obtiene el tanto por ciento.

Ejercicio 4

Construye el diagrama de barras de la variable Zona

Para construir el diagrama de barras se usa

barplot(table(robles$Zona), 
        col = "green", 
        main = "Varierdades de robles", ylab = "Frecuencia")

Ejercicio 5

Construye e interpreta el histograma de la variable Hierro.

Para construir el histograma se usa

hist(robles$Hierro, 
        col = "gray", 
        main = "Concentración de hierro", ylab = "Frecuencia")

La concentración de hierro varía de 0 a 0.07, aunque ningún individuo tiene concentraciones de hierro entre 0.03 y 0.05. De hecho, los valores del hierro se agrupan en dos zonas: los que tienen concentraciones menores de 0.03 y los que las tienen entre 0.05 y 0.07. Este hecho sugiere la existencia de dos grupos de robles, aunque de momento no tenemos explicación. Es decir, desconocemos si este hecho se relciona con el comportamiento de alguna otra variable.

Ejercicio 6

Construye una tabla de frecuencias para la variable Hierro con 8 intervalos de clase entre 0 y 0.08.

Para calcular la tabla de frecuencias absolutas primero hay que definir los extremos de los subintervalos.

(cortes = seq(from = 0, to = 0.08, length.out = 9))
## [1] 0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08

A continuación, asignar a cada valor de la variable Hierro la clase a la que pertenece

(clases = cut(robles$Hierro, breaks = cortes, include.lowest = TRUE))
##  [1] (0.05,0.06] (0.05,0.06] (0.05,0.06] (0.05,0.06] (0.06,0.07]
##  [6] (0.02,0.03] (0.05,0.06] (0.06,0.07] (0.05,0.06] (0.05,0.06]
## [11] (0.01,0.02] (0.01,0.02] (0.01,0.02] (0.01,0.02] [0,0.01]   
## [16] (0.01,0.02] (0.01,0.02] (0.01,0.02] (0.01,0.02] (0.01,0.02]
## [21] [0,0.01]    [0,0.01]    (0.02,0.03] (0.06,0.07] (0.06,0.07]
## [26] (0.05,0.06] (0.06,0.07] (0.05,0.06] (0.01,0.02] [0,0.01]   
## [31] (0.01,0.02] (0.01,0.02] (0.01,0.02] [0,0.01]    [0,0.01]   
## [36] [0,0.01]    [0,0.01]    [0,0.01]   
## 8 Levels: [0,0.01] (0.01,0.02] (0.02,0.03] (0.03,0.04] ... (0.07,0.08]

Finalmente, recoger todo esto en una tabla

table(clases)
## clases
##    [0,0.01] (0.01,0.02] (0.02,0.03] (0.03,0.04] (0.04,0.05] (0.05,0.06] 
##           9          13           2           0           0           9 
## (0.06,0.07] (0.07,0.08] 
##           5           0

¿Cuántos robles tienen una concentración de Hierro entre 0.05 y 0.06? Se observa en la tabla que hay 9

¿Qué porcentaje de robles tiene una concentración menor o igual que 0.06? Hay que sumar la el total de robles con una concentración menor o igual que 0.06 y luego dividir entre el total de robles (y multiplicar por 100, claro)

((9+13+2+9)/n)*100
## [1] 86.84211

Otra opción más directa es usar la función cumsum().

(tablaAcumulada = cumsum(table(clases)))
##    [0,0.01] (0.01,0.02] (0.02,0.03] (0.03,0.04] (0.04,0.05] (0.05,0.06] 
##           9          22          24          24          24          33 
## (0.06,0.07] (0.07,0.08] 
##          38          38

para obtener la tabla de frecuencias acumuladas y, a continuación calcular la tabla de frecuencias relativas acumuladas

tablaAcumulada/nrow(robles)
##    [0,0.01] (0.01,0.02] (0.02,0.03] (0.03,0.04] (0.04,0.05] (0.05,0.06] 
##   0.2368421   0.5789474   0.6315789   0.6315789   0.6315789   0.8684211 
## (0.06,0.07] (0.07,0.08] 
##   1.0000000   1.0000000

Ejercicio 7

Representa un histograma para la variable Hierro agrupando los valores en 6 clases de la misma longitud (entre 0 y 0.08). Explica el resultado y compáralo con el otro histograma calculado

Adapta el comando que has usado antes para agrupar la variable Hierro en 8 clases al caso de 6 clases

cortes = seq(from = 0, to = 0.08, length.out = 7)
hist(robles$Hierro, 
        col = "gray", 
        breaks = cortes, 
        main = "Concentración de hierro", ylab = "Frecuencia")

Aparentemente hay menos barras (4) que clases (hemos definido 6), lo que sucede es con esta nueva forma de agrupar los robles en clases hay 2 clases vacías (ningún roble presenta una concentración de Hierro dentro de dichas clases).

Observa que los histogramas son diferentes; resumir datos hace que perdamos información, y no siempre nos daremos cuenta.