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.

1. Introducció

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.

2. Importació de les dades

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.

3. Dimensions del dataset

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.

4. Diccionari de variables

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

5. Estadístiques descriptives

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.

6. Visualització inicial

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)")

7. Variables externes i dades addicionals

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

8. Altres comentaris

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.