Aquest document presenta una anàlisi descriptiva del conjunt de dades
meteorològiques incloses al fitxer dades_meteo.RData.
L’objectiu és explorar les seves característiques, dimensions i
distribucions, així com també generar gràfics exploratoris.
El conjunt de dades dades_meteo és un recull de dades
meteorològiques d’una setmana de desembre de l’any 2024. Aquestes dades
s’han extret d’un conjunt superior que conté les mostres que agafa
l’estació meteorològica d’un familiar d’un membre del grup cada mitja
hora.
L’objectiu del projecte és aprendre a interactuar amb un conjunt de dades per resoldre diferents situacions estadístiques.
Per començar a treballar amb el conjunt de dades, i així trencar una mica el gel, ens hem plantejat la següent qüestió:
Aquest conjunt és perfecte per respondre aquesta pregunta perquè conté els paràmetres meteorològics que necessitem, la temperatura, la humitat, el vent i la precipitació, i de les mesures que s’han anat registrant al llarg de la setmana.
Per importar el conjunt de dades col·loquem el fitxer dins el directori del projecte, i el carreguem executant la següent ordre:
load("dades_meteo.RData")
L’objecte del conjunt amb el que ens referirem d’ara en endavant serà
dades_meteo.
ls()
## [1] "dades_meteo"
head(dades_meteo)
## # A tibble: 6 × 15
## Dia Data Hora Temp Temp_max Temp_min Pressio Humitat Rosada Vent
## <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Dilluns 9/12/2024 00:30 4.4 4.6 4.3 1011. 92 3.2 3.2
## 2 Dilluns 9/12/2024 01:00 4.3 4.4 4 1010. 92 3.1 1.6
## 3 Dilluns 9/12/2024 01:30 3.9 4.2 3.6 1010. 93 2.9 0
## 4 Dilluns 9/12/2024 02:00 3.5 3.7 3.3 1010. 94 2.6 3.2
## 5 Dilluns 9/12/2024 02:30 3.2 3.4 2.9 1010. 95 2.5 1.6
## 6 Dilluns 9/12/2024 03:00 2.8 3.1 2.6 1010. 96 2.2 1.6
## # ℹ 5 more variables: Vent_max <dbl>, Vent_dir <dbl>, Vent_direccio <chr>,
## # Temp_sensacio <dbl>, Pluja <dbl>
El format original del fitxer era XLSX (Excel), però l’hem canviat a .RData per poder treballar amb R.
Inicialment dades_meteo no disposava d’una columna amb
el nom dels dies de la setmana, i l’hem afegit per complir els
requeriments del projecte. Per contra, hem eliminat la columna del
període de mostra perquè es tractava del mateix interval (30 minuts) i
era una dada redundant.
glimpse(dades_meteo)
## Rows: 336
## Columns: 15
## $ Dia <chr> "Dilluns", "Dilluns", "Dilluns", "Dilluns", "Dilluns", "…
## $ Data <chr> "9/12/2024", "9/12/2024", "9/12/2024", "9/12/2024", "9/1…
## $ Hora <chr> "00:30", "01:00", "01:30", "02:00", "02:30", "03:00", "0…
## $ Temp <dbl> 4.4, 4.3, 3.9, 3.5, 3.2, 2.8, 2.6, 2.3, 2.0, 1.9, 2.0, 2…
## $ Temp_max <dbl> 4.6, 4.4, 4.2, 3.7, 3.4, 3.1, 2.8, 2.4, 2.2, 2.1, 2.2, 2…
## $ Temp_min <dbl> 4.3, 4.0, 3.6, 3.3, 2.9, 2.6, 2.3, 2.2, 1.8, 1.7, 1.8, 2…
## $ Pressio <dbl> 1010.7, 1010.4, 1010.3, 1010.4, 1010.3, 1010.3, 1010.2, …
## $ Humitat <dbl> 92, 92, 93, 94, 95, 96, 96, 97, 97, 97, 97, 97, 96, 96, …
## $ Rosada <dbl> 3.2, 3.1, 2.9, 2.6, 2.5, 2.2, 2.0, 1.9, 1.6, 1.5, 1.6, 1…
## $ Vent <dbl> 3.2, 1.6, 0.0, 3.2, 1.6, 1.6, 0.0, 1.6, 0.0, 1.6, 3.2, 1…
## $ Vent_max <dbl> 9.7, 6.4, 4.8, 6.4, 8.0, 6.4, 3.2, 6.4, 4.8, 9.7, 8.0, 8…
## $ Vent_dir <dbl> 10, 6, 6, 9, 9, 9, 9, 9, 14, 10, 10, 7, 10, 10, 9, 8, 8,…
## $ Vent_direccio <chr> "SW", "SE", "SE", "SSW", "SSW", "SSW", "SSW", "SSW", "NW…
## $ Temp_sensacio <dbl> 4.3, 4.3, 3.9, 3.3, 3.2, 2.8, 2.6, 2.3, 2.0, 1.9, 1.6, 2…
## $ Pluja <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
La unitat d’anàlisi del dataset són les mesures meteorològiques.
| Variable | Tipus | Descripció | Valors possibles / rang |
|---|---|---|---|
| Dia | categòrica | Nom del dia de la setmana | Dilluns-Diumenge |
| Data | categòrica | Data en format dd/mm/aaaa | 09/12/2024-15/12/2024 |
| Hora | temporal | Hora en format hh:mm | 00:30-24:00 |
| Temp | numèrica | Temperatura mitjana en ºC | 1.9-14.4 |
| Temp_max | numèrica | Temperatura màxima en ºC | 2.1–14.5 |
| Temp_min | numèrica | Temperatura mínima en ºC | 1.6-14.2 |
| Pressio | numèrica | Pressió atmosfèrica en hPa (o mbar) | 1010.0-1037.1 |
| Humitat | numèrica | Humitat relativa en % | 50-100 |
| Rosada | numèrica | Punt de rosada en ºC | 1.2-11.2 |
| Vent | numèrica | Velocitat mitjana del vent en km/h | 0-27,4 |
| Vent_max | numèrica | Velocitat màxima del vent en km/h | 1,6-59,5 |
| Vent_dir | categòrica | Direcció del vent codificada | 0-15 |
| Vent_direcció | categòrica | Direcció del vent cardinal | N–NNW |
| Temp_sensació | numèrica | Sensació de temperatura en ºC | 1,6-14,4 |
| Pluja | numèrica | Precipitació en mm (o l/m²) | 0-6,20 |
tibble (
variable = names(dades_meteo),
tipus = sapply(dades_meteo, class)
)
## # A tibble: 15 × 2
## variable tipus
## <chr> <chr>
## 1 Dia character
## 2 Data character
## 3 Hora character
## 4 Temp numeric
## 5 Temp_max numeric
## 6 Temp_min numeric
## 7 Pressio numeric
## 8 Humitat numeric
## 9 Rosada numeric
## 10 Vent numeric
## 11 Vent_max numeric
## 12 Vent_dir numeric
## 13 Vent_direccio character
## 14 Temp_sensacio numeric
## 15 Pluja numeric
summary(dades_meteo)
## Dia Data Hora Temp
## Length:336 Length:336 Length:336 Min. : 1.900
## Class :character Class :character Class :character 1st Qu.: 6.100
## Mode :character Mode :character Mode :character Median : 8.100
## Mean : 7.776
## 3rd Qu.: 9.100
## Max. :14.400
## Temp_max Temp_min Pressio Humitat
## Min. : 2.100 Min. : 1.600 Min. :1010 Min. : 50.00
## 1st Qu.: 6.300 1st Qu.: 5.900 1st Qu.:1019 1st Qu.: 75.00
## Median : 8.300 Median : 7.900 Median :1022 Median : 96.00
## Mean : 8.011 Mean : 7.547 Mean :1022 Mean : 87.66
## 3rd Qu.: 9.300 3rd Qu.: 8.900 3rd Qu.:1025 3rd Qu.: 99.00
## Max. :14.500 Max. :14.200 Max. :1037 Max. :100.00
## Rosada Vent Vent_max Vent_dir
## Min. : 1.200 Min. : 0.000 Min. : 1.60 Min. : 0.000
## 1st Qu.: 3.100 1st Qu.: 1.600 1st Qu.: 6.40 1st Qu.: 0.000
## Median : 5.650 Median : 3.200 Median : 8.85 Median : 8.000
## Mean : 5.626 Mean : 5.099 Mean :12.87 Mean : 5.595
## 3rd Qu.: 8.100 3rd Qu.: 6.400 3rd Qu.:14.90 3rd Qu.: 9.000
## Max. :11.200 Max. :27.400 Max. :59.50 Max. :15.000
## Vent_direccio Temp_sensacio Pluja
## Length:336 Min. : 1.600 Min. :0.000
## Class :character 1st Qu.: 5.575 1st Qu.:0.000
## Mode :character Median : 7.050 Median :0.000
## Mean : 7.170 Mean :0.128
## 3rd Qu.: 8.700 3rd Qu.:0.000
## Max. :14.400 Max. :6.200
Els valors són tots complets, no hi ha cap valor NULL o perdut i tampoc hi ha valors estranys.
Per alguns càlculs amb la variable Hora, com per exemple, trobar la durada entre dues hores, l’haurem de transformar a una variable numèrica.
hist(dades_meteo$Temp, main = "Histograma de temperatura", xlab = "Temperatura", ylab = 'Freqüència')
boxplot(dades_meteo$Pressio, main = "Diagrama de caixa de la pressió")
ggplot(dades_meteo, aes(x = Temp)) + geom_histogram(aes(y = ..density..), bins = 30, alpha = 0.6) +
geom_density(color = "red", size = 1) + labs(title = "Distribució de la temperatura", x = "Temperatura (°C)")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: The dot-dot notation (`..density..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(density)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
ggplot(dades_meteo, aes(x = Humitat)) + geom_histogram(aes(y = ..density..), bins = 25, alpha = 0.6) +
geom_density(color = "blue", size = 1) + labs(title = "Distribució de la humitat", x = "Humitat (%)", y = "Densitat")
ggplot(dades_meteo, aes(x = Temp, y = Rosada)) + geom_point(alpha = 0.6) +
labs(title = "Relació entre la temperatura i el punt de rosada", x = "Temperatura (°C)", y = "Punt de rosada (°C)")
barplot(dades_meteo$Vent_max, xlab = 'Vent_max (km/h)', main = "Diagrama de barres de les ràfegues de vent")
ggplot(dades_meteo, aes(x = Vent_max)) + geom_histogram(bins = 25, alpha = 0.7) +
labs(title = "Distribució de les ràfegues de vent", x = "Vent_max (km/h)", y = "Recompte")
ggplot(dades_meteo, aes(x = Data, y = Pluja)) + geom_col() +
labs(title = "Evolució temporal de la precipitació", y = "Pluja (mm)")
Amb totes aquestes dades i variables en fem més que suficient per poder analitzar el conjunt de dades i respondre la pregunta inicial. Sempre que l’interval de temps sobre el qual volem obtenir una resposta no superi la totalitat del nostre conjunt, és a dir, una setmana (09/12/2024-15/12/2024).
En el cas que hàgim de fer un estudi per una duració superior a una setmana, podríem obtenir més mesures a partir de la base de dades superior d’on s’ha extret aquest fragment
Aquest conjunt de dades és només un fragment minúscul del conjunt superior, que conté mesures durant molts anys. Hem escollit el període 09/12/2024-15/12/2024, ja que és una data pròxima als dies en què farem l’anàlisi del conjunt.