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
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.
¿Hay alguna variable cualitativa ordinal?
No, ninguna.
¿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.
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")
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.
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
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.