1. Introducció

Aquest conjunt de dades s’ha extret del moodle i conté informació detallada sobre diverses opcions d’àpats classificats com a “menjar saludable”. Inclou característiques nutricionals i logístiques (temps de preparació, mètode de cocció) associades a diferents tipus de cuina i dietes.

L’objectiu principal d’aquest projecte és realitzar una anàlisi descriptiva completa del conjunt de dades de menjar saludable. Busquem entendre la composició de les dades, identificar la distribució de les variables clau i visualitzar les relacions bàsiques entre els factors nutricionals i categòrics.

Conté Variables Categòriques Clau: Les columnes cuisine (Tipus de Cuina) i diet_type (Tipus de Dieta) ens permeten separar els aliments en grups.

Conté Variables Numèriques Rellevants: Les columnes calories, protein_g, fat_g i rating són dades quantitatives que ens permeten mesurar i comparar estadísticament les diferències entre els grups.

2. Importació de les dades

Mostreu com heu importat el fitxer i quin nom té l’objecte carregat.

{r import} menjar_sa <- read.csv(“healthy_food.csv”) save(list = “menjar_sa”, file = “dades_menjar_sa.RData”)

El conjunt de dades que s’ha utilitzat, amb el nom de fitxer healthy_food.csv, estava originalment en format CSV i no s’ha fet cap tipus de modificació. # 3. Dimensions del dataset

nrow(menjar_sa)
## [1] 2000
ncol(menjar_sa)
## [1] 19
glimpse(menjar_sa)
## Rows: 2,000
## Columns: 19
## $ meal_id        <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, …
## $ meal_name      <chr> "Kid Pasta", "Husband Rice", "Activity Rice", "Another …
## $ cuisine        <chr> "Indian", "Mexican", "Indian", "Mexican", "Thai", "Ital…
## $ meal_type      <chr> "Lunch", "Lunch", "Snack", "Snack", "Lunch", "Dinner", …
## $ diet_type      <chr> "Keto", "Paleo", "Paleo", "Keto", "Vegan", "Balanced", …
## $ calories       <int> 737, 182, 881, 427, 210, 484, 114, 473, 863, 671, 746, …
## $ protein_g      <dbl> 52.4, 74.7, 52.9, 17.5, 51.6, 55.3, 60.9, 57.5, 16.8, 4…
## $ carbs_g        <dbl> 43.9, 144.4, 97.3, 73.1, 104.3, 130.3, 6.7, 119.0, 43.0…
## $ fat_g          <dbl> 34.3, 0.1, 18.8, 7.6, 26.3, 0.1, 6.7, 19.6, 39.4, 38.2,…
## $ fiber_g        <dbl> 16.8, 22.3, 20.0, 9.8, 24.8, 29.7, 23.4, 2.0, 24.5, 14.…
## $ sugar_g        <dbl> 42.9, 38.6, 37.5, 41.7, 18.2, 1.6, 8.3, 39.8, 33.0, 29.…
## $ sodium_mg      <int> 2079, 423, 2383, 846, 1460, 411, 1107, 257, 515, 1110, …
## $ cholesterol_mg <int> 91, 7, 209, 107, 42, 162, 60, 63, 50, 214, 270, 76, 175…
## $ serving_size_g <int> 206, 317, 395, 499, 486, 209, 291, 143, 471, 117, 384, …
## $ cooking_method <chr> "Grilled", "Roasted", "Boiled", "Grilled", "Raw", "Stea…
## $ prep_time_min  <int> 47, 51, 58, 14, 47, 56, 41, 18, 33, 35, 57, 8, 11, 45, …
## $ cook_time_min  <int> 56, 34, 29, 81, 105, 112, 90, 21, 56, 68, 43, 76, 117, …
## $ rating         <dbl> 4.4, 2.4, 4.3, 4.6, 4.3, 1.6, 2.8, 1.6, 4.0, 5.0, 3.1, …
## $ is_healthy     <int> 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…

Cada fila (o observació) representa un plat o una recepta de menjar saludable amb totes les seves característiques associades

4. Diccionari de variables

Descriviu cada variable del dataset.

Variable Tipus Descripció Valors possibles / rang
exemple_var numèrica Significat de la variable 0–100
tibble(
  Variable = names(menjar_sa),
  Tipus_R = sapply(menjar_sa, class)
)
## # A tibble: 19 × 2
##    Variable       Tipus_R  
##    <chr>          <chr>    
##  1 meal_id        integer  
##  2 meal_name      character
##  3 cuisine        character
##  4 meal_type      character
##  5 diet_type      character
##  6 calories       integer  
##  7 protein_g      numeric  
##  8 carbs_g        numeric  
##  9 fat_g          numeric  
## 10 fiber_g        numeric  
## 11 sugar_g        numeric  
## 12 sodium_mg      integer  
## 13 cholesterol_mg integer  
## 14 serving_size_g integer  
## 15 cooking_method character
## 16 prep_time_min  integer  
## 17 cook_time_min  integer  
## 18 rating         numeric  
## 19 is_healthy     integer

5. Estadístiques descriptives

summary(menjar_sa)
##     meal_id        meal_name           cuisine           meal_type        
##  Min.   :   1.0   Length:2000        Length:2000        Length:2000       
##  1st Qu.: 500.8   Class :character   Class :character   Class :character  
##  Median :1000.5   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :1000.5                                                           
##  3rd Qu.:1500.2                                                           
##  Max.   :2000.0                                                           
##   diet_type            calories        protein_g        carbs_g      
##  Length:2000        Min.   : 100.0   Min.   : 5.00   Min.   :  0.00  
##  Class :character   1st Qu.: 372.0   1st Qu.:23.60   1st Qu.: 39.20  
##  Mode  :character   Median : 648.0   Median :43.60   Median : 75.95  
##                     Mean   : 650.1   Mean   :42.86   Mean   : 75.92  
##                     3rd Qu.: 914.5   3rd Qu.:61.90   3rd Qu.:113.03  
##                     Max.   :1200.0   Max.   :79.90   Max.   :150.00  
##      fat_g          fiber_g         sugar_g        sodium_mg     
##  Min.   : 0.00   Min.   : 0.00   Min.   : 0.00   Min.   :  50.0  
##  1st Qu.:14.80   1st Qu.: 7.60   1st Qu.:12.00   1st Qu.: 647.5  
##  Median :30.30   Median :15.15   Median :24.75   Median :1273.0  
##  Mean   :30.07   Mean   :15.25   Mean   :24.60   Mean   :1257.3  
##  3rd Qu.:45.20   3rd Qu.:23.20   3rd Qu.:37.20   3rd Qu.:1854.5  
##  Max.   :60.00   Max.   :30.00   Max.   :50.00   Max.   :2499.0  
##  cholesterol_mg  serving_size_g  cooking_method     prep_time_min  
##  Min.   :  0.0   Min.   :100.0   Length:2000        Min.   : 5.00  
##  1st Qu.: 72.0   1st Qu.:207.0   Class :character   1st Qu.:19.00  
##  Median :150.0   Median :302.0   Mode  :character   Median :34.00  
##  Mean   :150.5   Mean   :302.6                      Mean   :33.35  
##  3rd Qu.:228.0   3rd Qu.:402.0                      3rd Qu.:48.00  
##  Max.   :300.0   Max.   :500.0                      Max.   :60.00  
##  cook_time_min        rating        is_healthy    
##  Min.   :  5.00   Min.   :1.000   Min.   :0.0000  
##  1st Qu.: 33.00   1st Qu.:2.000   1st Qu.:0.0000  
##  Median : 61.00   Median :3.000   Median :0.0000  
##  Mean   : 61.51   Mean   :2.984   Mean   :0.0935  
##  3rd Qu.: 90.00   3rd Qu.:4.000   3rd Qu.:0.0000  
##  Max.   :120.00   Max.   :5.000   Max.   :1.0000

no es mostra cap valor perdut. la variable es healthy es SI/NO pero la tractem amb 1 o 0 i la enten com a numerica, s’hauria de transformar No s’observen valors estranys que requereixin eliminació immediata.

6. Visualització inicial

Incloeu una o dues gràfiques exploratòries.

library(ggplot2) 
grafic_calories <- ggplot(menjar_sa, aes(x = calories)) +
  geom_histogram(binwidth = 50, fill = "#99D8C9", color = "black") 
  labs(title = "Distribució de Calories", x = "Calories (Kcal)", y = "Freqüència") +
  theme_minimal()
## NULL
print(grafic_calories)

grafic_rating <- ggplot(menjar_sa, aes(x = rating)) +
  geom_histogram(binwidth = 0.5, fill = "#FFD8C9", color = "black") 
  labs(title = "Distribució de la Valoració (Rating)", x = "Valoració", y = "Freqüència") +
  theme_minimal()
## NULL
print(grafic_rating)

7. Variables externes i dades addicionals

No, no necessitem dades externes per completar l’actual anàlisi descriptiva. Si es necessitessin dades externes, es podrien trobar a Plataformes digitals o a Portals d’estadístiques nacionals o autonòmiques.