PAC 3

Solución PAC3

Rodrigo Abadías Alacid

Última modificación

28 de novembre de 2024

Actividad 1

Mostrar codigo
#Recuerda que todos los chunks están en eval = FALSE; para activarlos debes cambiar a eval = TRUE.
library(readxl)
cron <- read_xlsx("CRON_fin.xlsx")
  1. Exploración
Mostrar codigo
dim(cron)
str(cron)
head(cron)
tail(cron)

Actividad 2

Mostrar codigo
table_w4q13 <- table(CRON_fin$w4q13)
print(table_w4q13)
table_w4q13_pct <- prop.table(table_w4q13) * 100
print(round(table_w4q13_pct, 2))

Después de crear la tabla con las funciones, se observa que La mayoría de los encuestados considera la protección de los derechos humanos como una prioridad alta: 55.87% indicó que es una top priority (valor 5). 34.71% considera que es una important priority (valor 4), el 90% de los encuestados. Un 7 % consideran que es una prioridad media, mientars que menos de un 2% lo considero una pequeña o nada prioridad. Es decir,la protección de los derechos humanos es considerada una prioridad importante o máxima para la gran mayoría de los encuestados.

Mostrar codigo
freq_cntry <- table(cron$cntry)
print(freq_cntry)

 AT  BE  CZ  FI  FR  GB  IS  IT  PT  SE  SI 
647 573 284 739 724 487 525 243 396 845 569 

El país con mas observaciones es Suecia con 845. Italia el que menos con solo 243. La mayoría de los países tienen una representación moderada, con valores entre 500 y 750 observaciones. Aunque algunos países tienen más datos que otros, la variación no parece extremadamente desigual, con la excepción de Italia y Chequia, que tienen menos datos. Sería importante investigar si esta diferencia se debe al diseño de la encuesta o a problemas en la recolección de datos.

Mostrar codigo
data_filtered <- cron %>% filter(cntry %in% c("PT", "FR", "SE"))
frequencies <- data_filtered %>% count(cntry, w4q3)
print(frequencies)
# A tibble: 18 × 3
   cntry  w4q3     n
   <chr> <dbl> <int>
 1 FR        1   355
 2 FR        2   140
 3 FR        3   147
 4 FR        4    51
 5 FR        5    16
 6 FR        9    15
 7 PT        1    96
 8 PT        2    89
 9 PT        3   139
10 PT        4    49
11 PT        5    17
12 PT        9     6
13 SE        1   312
14 SE        2   309
15 SE        3   159
16 SE        4    48
17 SE        5     9
18 SE        9     8

En Francia predominan las categorías 1 y 2, refleja que enfatizar los valores religiosos tiene una baja relevancia en Francia. Solo un pequeño porcentaje (16 respuestas) considera la religión una prioridad máxima, indicando una sociedad orientada hacia valores no religiosos. Los valores religiosos tienen algo más de relevancia en Portugal que en Francia, aunque la mayoría sigue considerando que no son prioritarios. La frecuencia con más respuestas es la 3, con una prioridad media de la misma. En Suecia, confirma su reputación como una de las sociedades más secularizadas. La ausencia de categorías 4 y 5 (57 respuestas combinadas, menos del 10%) indica que la religión tiene una importancia mínima en su ideal de sociedad.

Mostrar codigo
w4q15_data <- cron %>% filter(!is.na(w4q15) & w4q15 != 9)
total_responses <- nrow(w4q15_data)
responses_5 <- w4q15_data %>% filter(w4q15 == 5) %>% nrow()
percentage_5 <- (responses_5 / total_responses) * 100
percentage_5
[1] 22.02281

El porcentaje de población es del 22.02 %

Mostrar codigo
w4q1_frequencies <- cron %>% 
  filter(!is.na(w4q1) & w4q1 != 9) %>%
  count(w4q1, sort = TRUE)
most_frequent <- w4q1_frequencies %>% slice(1)
most_frequent
# A tibble: 1 × 2
   w4q1     n
  <dbl> <int>
1     4  3067

El valor más frecuente es 4, con 3067 observaciones

Mostrar codigo
eduyrs_summary <- cron %>%
  filter(!is.na(eduyrs)) %>%
  group_by(cntry) %>%
  summarise(
    mean_eduyrs = mean(eduyrs, na.rm = TRUE),
    median_eduyrs = median(eduyrs, na.rm = TRUE)
  )
eduyrs_summary
# A tibble: 11 × 3
   cntry mean_eduyrs median_eduyrs
   <chr>       <dbl>         <dbl>
 1 AT           15.8            14
 2 BE           15.3            15
 3 CZ           17.1            13
 4 FI           15.8            16
 5 FR           15.1            14
 6 GB           15.7            16
 7 IS           16.9            17
 8 IT           15.5            14
 9 PT           13.7            12
10 SE           16.4            14
11 SI           14.5            14

En la República Checa, aunque la media de educación es la más alta, la mediana es más baja (13 años), lo que sugiere que hay valores extremos elevados que elevan la media.Islandia presenta una mediana alta de 17 años, indicando que la mayoría de la población tiene un nivel educativo similar y elevado, con menos variabilidad en los datos. Portugal tiene tanto la media como la mediana más bajas, lo que refleja niveles educativos más bajos en promedio en comparación con otros países europeos.

Mostrar codigo
cron_2 <- cron %>%
  filter(!(eduyrs %in% c(77, 88, 99)))
head(cron_2)
# A tibble: 6 × 24
  cntry  gndr  agea eduyrs eisced hincfel hinctnta netusoft region  w4q1  w4q2
  <chr> <dbl> <dbl>  <dbl>  <dbl>   <dbl>    <dbl>    <dbl> <chr>  <dbl> <dbl>
1 AT        1    73     11      3       1       10        5 AT32       4     4
2 AT        2    41     13      6       2       77        5 AT22       4     4
3 AT        1    35     14      5       1        3        5 AT22       4     5
4 AT        1    55     12      3       1       77        4 AT34       3     3
5 AT        2    65     12      2       1        7        5 AT12       4     5
6 AT        2    27     21      6       2       77        5 AT31       4     4
# ℹ 13 more variables: w4q3 <dbl>, w4q4 <dbl>, w4q5 <dbl>, w4q6 <dbl>,
#   w4q7 <dbl>, w4q8 <dbl>, w4q9 <dbl>, w4q10 <dbl>, w4q11 <dbl>, w4q12 <dbl>,
#   w4q13 <dbl>, w4q14 <dbl>, w4q15 <dbl>
Mostrar codigo
ggplot(cron_2, aes(x = cntry, y = eduyrs)) +
     geom_boxplot() 

Mostrar codigo
  labs(
    title = "Distribución de años de educación por país",
    x = "País",
    y = "Años de educación"
  ) 
$x
[1] "País"

$y
[1] "Años de educación"

$title
[1] "Distribución de años de educación por país"

attr(,"class")
[1] "labels"
Mostrar codigo
   theme_minimal()
List of 136
 $ line                            :List of 6
  ..$ colour       : chr "black"
  ..$ linewidth    : num 0.5
  ..$ linetype     : num 1
  ..$ lineend      : chr "butt"
  ..$ arrow        : logi FALSE
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_line" "element"
 $ rect                            :List of 5
  ..$ fill         : chr "white"
  ..$ colour       : chr "black"
  ..$ linewidth    : num 0.5
  ..$ linetype     : num 1
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_rect" "element"
 $ text                            :List of 11
  ..$ family       : chr ""
  ..$ face         : chr "plain"
  ..$ colour       : chr "black"
  ..$ size         : num 11
  ..$ hjust        : num 0.5
  ..$ vjust        : num 0.5
  ..$ angle        : num 0
  ..$ lineheight   : num 0.9
  ..$ margin       : 'margin' num [1:4] 0points 0points 0points 0points
  .. ..- attr(*, "unit")= int 8
  ..$ debug        : logi FALSE
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_text" "element"
 $ title                           : NULL
 $ aspect.ratio                    : NULL
 $ axis.title                      : NULL
 $ axis.title.x                    :List of 11
  ..$ family       : NULL
  ..$ face         : NULL
  ..$ colour       : NULL
  ..$ size         : NULL
  ..$ hjust        : NULL
  ..$ vjust        : num 1
  ..$ angle        : NULL
  ..$ lineheight   : NULL
  ..$ margin       : 'margin' num [1:4] 2.75points 0points 0points 0points
  .. ..- attr(*, "unit")= int 8
  ..$ debug        : NULL
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_text" "element"
 $ axis.title.x.top                :List of 11
  ..$ family       : NULL
  ..$ face         : NULL
  ..$ colour       : NULL
  ..$ size         : NULL
  ..$ hjust        : NULL
  ..$ vjust        : num 0
  ..$ angle        : NULL
  ..$ lineheight   : NULL
  ..$ margin       : 'margin' num [1:4] 0points 0points 2.75points 0points
  .. ..- attr(*, "unit")= int 8
  ..$ debug        : NULL
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_text" "element"
 $ axis.title.x.bottom             : NULL
 $ axis.title.y                    :List of 11
  ..$ family       : NULL
  ..$ face         : NULL
  ..$ colour       : NULL
  ..$ size         : NULL
  ..$ hjust        : NULL
  ..$ vjust        : num 1
  ..$ angle        : num 90
  ..$ lineheight   : NULL
  ..$ margin       : 'margin' num [1:4] 0points 2.75points 0points 0points
  .. ..- attr(*, "unit")= int 8
  ..$ debug        : NULL
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_text" "element"
 $ axis.title.y.left               : NULL
 $ axis.title.y.right              :List of 11
  ..$ family       : NULL
  ..$ face         : NULL
  ..$ colour       : NULL
  ..$ size         : NULL
  ..$ hjust        : NULL
  ..$ vjust        : num 1
  ..$ angle        : num -90
  ..$ lineheight   : NULL
  ..$ margin       : 'margin' num [1:4] 0points 0points 0points 2.75points
  .. ..- attr(*, "unit")= int 8
  ..$ debug        : NULL
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_text" "element"
 $ axis.text                       :List of 11
  ..$ family       : NULL
  ..$ face         : NULL
  ..$ colour       : chr "grey30"
  ..$ size         : 'rel' num 0.8
  ..$ hjust        : NULL
  ..$ vjust        : NULL
  ..$ angle        : NULL
  ..$ lineheight   : NULL
  ..$ margin       : NULL
  ..$ debug        : NULL
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_text" "element"
 $ axis.text.x                     :List of 11
  ..$ family       : NULL
  ..$ face         : NULL
  ..$ colour       : NULL
  ..$ size         : NULL
  ..$ hjust        : NULL
  ..$ vjust        : num 1
  ..$ angle        : NULL
  ..$ lineheight   : NULL
  ..$ margin       : 'margin' num [1:4] 2.2points 0points 0points 0points
  .. ..- attr(*, "unit")= int 8
  ..$ debug        : NULL
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_text" "element"
 $ axis.text.x.top                 :List of 11
  ..$ family       : NULL
  ..$ face         : NULL
  ..$ colour       : NULL
  ..$ size         : NULL
  ..$ hjust        : NULL
  ..$ vjust        : num 0
  ..$ angle        : NULL
  ..$ lineheight   : NULL
  ..$ margin       : 'margin' num [1:4] 0points 0points 2.2points 0points
  .. ..- attr(*, "unit")= int 8
  ..$ debug        : NULL
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_text" "element"
 $ axis.text.x.bottom              : NULL
 $ axis.text.y                     :List of 11
  ..$ family       : NULL
  ..$ face         : NULL
  ..$ colour       : NULL
  ..$ size         : NULL
  ..$ hjust        : num 1
  ..$ vjust        : NULL
  ..$ angle        : NULL
  ..$ lineheight   : NULL
  ..$ margin       : 'margin' num [1:4] 0points 2.2points 0points 0points
  .. ..- attr(*, "unit")= int 8
  ..$ debug        : NULL
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_text" "element"
 $ axis.text.y.left                : NULL
 $ axis.text.y.right               :List of 11
  ..$ family       : NULL
  ..$ face         : NULL
  ..$ colour       : NULL
  ..$ size         : NULL
  ..$ hjust        : num 0
  ..$ vjust        : NULL
  ..$ angle        : NULL
  ..$ lineheight   : NULL
  ..$ margin       : 'margin' num [1:4] 0points 0points 0points 2.2points
  .. ..- attr(*, "unit")= int 8
  ..$ debug        : NULL
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_text" "element"
 $ axis.text.theta                 : NULL
 $ axis.text.r                     :List of 11
  ..$ family       : NULL
  ..$ face         : NULL
  ..$ colour       : NULL
  ..$ size         : NULL
  ..$ hjust        : num 0.5
  ..$ vjust        : NULL
  ..$ angle        : NULL
  ..$ lineheight   : NULL
  ..$ margin       : 'margin' num [1:4] 0points 2.2points 0points 2.2points
  .. ..- attr(*, "unit")= int 8
  ..$ debug        : NULL
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_text" "element"
 $ axis.ticks                      : list()
  ..- attr(*, "class")= chr [1:2] "element_blank" "element"
 $ axis.ticks.x                    : NULL
 $ axis.ticks.x.top                : NULL
 $ axis.ticks.x.bottom             : NULL
 $ axis.ticks.y                    : NULL
 $ axis.ticks.y.left               : NULL
 $ axis.ticks.y.right              : NULL
 $ axis.ticks.theta                : NULL
 $ axis.ticks.r                    : NULL
 $ axis.minor.ticks.x.top          : NULL
 $ axis.minor.ticks.x.bottom       : NULL
 $ axis.minor.ticks.y.left         : NULL
 $ axis.minor.ticks.y.right        : NULL
 $ axis.minor.ticks.theta          : NULL
 $ axis.minor.ticks.r              : NULL
 $ axis.ticks.length               : 'simpleUnit' num 2.75points
  ..- attr(*, "unit")= int 8
 $ axis.ticks.length.x             : NULL
 $ axis.ticks.length.x.top         : NULL
 $ axis.ticks.length.x.bottom      : NULL
 $ axis.ticks.length.y             : NULL
 $ axis.ticks.length.y.left        : NULL
 $ axis.ticks.length.y.right       : NULL
 $ axis.ticks.length.theta         : NULL
 $ axis.ticks.length.r             : NULL
 $ axis.minor.ticks.length         : 'rel' num 0.75
 $ axis.minor.ticks.length.x       : NULL
 $ axis.minor.ticks.length.x.top   : NULL
 $ axis.minor.ticks.length.x.bottom: NULL
 $ axis.minor.ticks.length.y       : NULL
 $ axis.minor.ticks.length.y.left  : NULL
 $ axis.minor.ticks.length.y.right : NULL
 $ axis.minor.ticks.length.theta   : NULL
 $ axis.minor.ticks.length.r       : NULL
 $ axis.line                       : list()
  ..- attr(*, "class")= chr [1:2] "element_blank" "element"
 $ axis.line.x                     : NULL
 $ axis.line.x.top                 : NULL
 $ axis.line.x.bottom              : NULL
 $ axis.line.y                     : NULL
 $ axis.line.y.left                : NULL
 $ axis.line.y.right               : NULL
 $ axis.line.theta                 : NULL
 $ axis.line.r                     : NULL
 $ legend.background               : list()
  ..- attr(*, "class")= chr [1:2] "element_blank" "element"
 $ legend.margin                   : 'margin' num [1:4] 5.5points 5.5points 5.5points 5.5points
  ..- attr(*, "unit")= int 8
 $ legend.spacing                  : 'simpleUnit' num 11points
  ..- attr(*, "unit")= int 8
 $ legend.spacing.x                : NULL
 $ legend.spacing.y                : NULL
 $ legend.key                      : list()
  ..- attr(*, "class")= chr [1:2] "element_blank" "element"
 $ legend.key.size                 : 'simpleUnit' num 1.2lines
  ..- attr(*, "unit")= int 3
 $ legend.key.height               : NULL
 $ legend.key.width                : NULL
 $ legend.key.spacing              : 'simpleUnit' num 5.5points
  ..- attr(*, "unit")= int 8
 $ legend.key.spacing.x            : NULL
 $ legend.key.spacing.y            : NULL
 $ legend.frame                    : NULL
 $ legend.ticks                    : NULL
 $ legend.ticks.length             : 'rel' num 0.2
 $ legend.axis.line                : NULL
 $ legend.text                     :List of 11
  ..$ family       : NULL
  ..$ face         : NULL
  ..$ colour       : NULL
  ..$ size         : 'rel' num 0.8
  ..$ hjust        : NULL
  ..$ vjust        : NULL
  ..$ angle        : NULL
  ..$ lineheight   : NULL
  ..$ margin       : NULL
  ..$ debug        : NULL
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_text" "element"
 $ legend.text.position            : NULL
 $ legend.title                    :List of 11
  ..$ family       : NULL
  ..$ face         : NULL
  ..$ colour       : NULL
  ..$ size         : NULL
  ..$ hjust        : num 0
  ..$ vjust        : NULL
  ..$ angle        : NULL
  ..$ lineheight   : NULL
  ..$ margin       : NULL
  ..$ debug        : NULL
  ..$ inherit.blank: logi TRUE
  ..- attr(*, "class")= chr [1:2] "element_text" "element"
 $ legend.title.position           : NULL
 $ legend.position                 : chr "right"
 $ legend.position.inside          : NULL
 $ legend.direction                : NULL
 $ legend.byrow                    : NULL
 $ legend.justification            : chr "center"
 $ legend.justification.top        : NULL
 $ legend.justification.bottom     : NULL
 $ legend.justification.left       : NULL
 $ legend.justification.right      : NULL
 $ legend.justification.inside     : NULL
 $ legend.location                 : NULL
 $ legend.box                      : NULL
 $ legend.box.just                 : NULL
 $ legend.box.margin               : 'margin' num [1:4] 0cm 0cm 0cm 0cm
  ..- attr(*, "unit")= int 1
 $ legend.box.background           : list()
  ..- attr(*, "class")= chr [1:2] "element_blank" "element"
 $ legend.box.spacing              : 'simpleUnit' num 11points
  ..- attr(*, "unit")= int 8
  [list output truncated]
 - attr(*, "class")= chr [1:2] "theme" "gg"
 - attr(*, "complete")= logi TRUE
 - attr(*, "validate")= logi TRUE

La mediana (línea central dentro de las cajas) es similar en la mayoría de los países, oscilando entre 12 y 17 años de educación. Sin embargo, hay diferencias notables: Islandia (IS): Tiene una de las medianas más altas (alrededor de 17 años), lo que indica que su población tiende a tener más años de educación formal. Portugal (PT): Presenta la mediana más baja (alrededor de 12 años), lo que sugiere un menor nivel de escolaridad promedio. Hay numerosos valores atípicos en la parte superior en casi todos los países. Esto puede representar a individuos con niveles de educación mucho más altos que el promedio, como personas con múltiples títulos universitarios o educación especializada.

Actividad 3

{r eval = T}

Mostrar codigo
library(dslabs)
gap <- dslabs::gapminder
head(gap)
              country year infant_mortality life_expectancy fertility
1             Albania 1960           115.40           62.87      6.19
2             Algeria 1960           148.20           47.50      7.65
3              Angola 1960           208.00           35.98      7.32
4 Antigua and Barbuda 1960               NA           62.97      4.43
5           Argentina 1960            59.87           65.39      3.11
6             Armenia 1960               NA           66.86      4.55
  population          gdp continent          region
1    1636054           NA    Europe Southern Europe
2   11124892  13828152297    Africa Northern Africa
3    5270844           NA    Africa   Middle Africa
4      54681           NA  Americas       Caribbean
5   20619075 108322326649  Americas   South America
6    1867396           NA      Asia    Western Asia
Mostrar codigo
str(gap)
'data.frame':   10545 obs. of  9 variables:
 $ country         : Factor w/ 185 levels "Albania","Algeria",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ year            : int  1960 1960 1960 1960 1960 1960 1960 1960 1960 1960 ...
 $ infant_mortality: num  115.4 148.2 208 NA 59.9 ...
 $ life_expectancy : num  62.9 47.5 36 63 65.4 ...
 $ fertility       : num  6.19 7.65 7.32 4.43 3.11 4.55 4.82 3.45 2.7 5.57 ...
 $ population      : num  1636054 11124892 5270844 54681 20619075 ...
 $ gdp             : num  NA 1.38e+10 NA NA 1.08e+11 ...
 $ continent       : Factor w/ 5 levels "Africa","Americas",..: 4 1 1 2 2 3 2 5 4 3 ...
 $ region          : Factor w/ 22 levels "Australia and New Zealand",..: 19 11 10 2 15 21 2 1 22 21 ...
Mostrar codigo
summary(gap)
                country           year      infant_mortality life_expectancy
 Albania            :   57   Min.   :1960   Min.   :  1.50   Min.   :13.20  
 Algeria            :   57   1st Qu.:1974   1st Qu.: 16.00   1st Qu.:57.50  
 Angola             :   57   Median :1988   Median : 41.50   Median :67.54  
 Antigua and Barbuda:   57   Mean   :1988   Mean   : 55.31   Mean   :64.81  
 Argentina          :   57   3rd Qu.:2002   3rd Qu.: 85.10   3rd Qu.:73.00  
 Armenia            :   57   Max.   :2016   Max.   :276.90   Max.   :83.90  
 (Other)            :10203                  NA's   :1453                    
   fertility       population             gdp               continent   
 Min.   :0.840   Min.   :3.124e+04   Min.   :4.040e+07   Africa  :2907  
 1st Qu.:2.200   1st Qu.:1.333e+06   1st Qu.:1.846e+09   Americas:2052  
 Median :3.750   Median :5.009e+06   Median :7.794e+09   Asia    :2679  
 Mean   :4.084   Mean   :2.701e+07   Mean   :1.480e+11   Europe  :2223  
 3rd Qu.:6.000   3rd Qu.:1.523e+07   3rd Qu.:5.540e+10   Oceania : 684  
 Max.   :9.220   Max.   :1.376e+09   Max.   :1.174e+13                  
 NA's   :187     NA's   :185         NA's   :2972                       
             region    
 Western Asia   :1026  
 Eastern Africa : 912  
 Western Africa : 912  
 Caribbean      : 741  
 South America  : 684  
 Southern Europe: 684  
 (Other)        :5586  
Mostrar codigo
colSums(is.na(gap))
         country             year infant_mortality  life_expectancy 
               0                0             1453                0 
       fertility       population              gdp        continent 
             187              185             2972                0 
          region 
               0 

Si tenemos datos NA en el marco de datos gap. Este aparece en las variables infant_mortality, fertility, population y gdp.

Mostrar codigo
library(ggplot2)
library(dplyr)
fertility_data <- gap %>%
  filter(country %in% c("Croatia", "Albania")) %>%
  select(country, year, fertility)
ggplot(fertility_data, aes(x = year, y = fertility, color = country)) +
  geom_line(size = 1) +
  labs(
    title = "Evolución de la fertilidad en Croacia y Albania (1966-2016)",
    x = "Año",
    y = "Fertilidad",
    color = "País"
  ) +
  theme_minimal()

En los años 60, 70 y 80 había una disparidad enorme entre ambas naciones en sus índices de fertilidad, Albania de hecho triplicaba el índivce croata los prímeros años del estudio. Con la llegada del nuevo siglo las diferencias se han reducido enormemente, dejándolos prácticamente iguales.

Mostrar codigo
ggplot(fertility_data, aes(x = fertility, fill = country)) +
  geom_histogram(binwidth = 0.5, color = "black", alpha = 0.7) +
  facet_wrap(~country) +
  labs(
    title = "Distribución de la fertilidad en Croacia y Albania",
    x = "Tasa de fertilidad",
    y = "Frecuencia",
    fill = "País"
  ) +
  theme_minimal()

  1. La pregunta es la sigiente: ¿Cómo ha evolucionado la esperanza de vida en Croacia, Albania y Serbia a lo largo del tiempo, y cuál ha sido el país con mayor incremento entre 1966 y 2016?
Mostrar codigo
life_data <- gap %>%
  filter(country %in% c("Croatia", "Albania", "Serbia")) %>%
  select(country, year, life_expectancy)
ggplot(life_data, aes(x = year, y = life_expectancy, color = country)) +
  geom_line(size = 1.2) +
  geom_point(size = 2) +
  labs(
    title = "Evolución de la esperanza de vida (1966-2016)",
    x = "Año",
    y = "Esperanza de vida (años)",
    color = "País"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
    legend.position = "bottom"
  )

Tras ello, podemos observar que la esperanza de vida de los 3 países ha sido muy parecido al largo d elos años, con una ascensión constante. Serbia se descuelga durante final de siglo debido a las Guerras Yugoslavas, pero tras ello recupera poco a poco. El país que mayor incremento ha sufrido ha sido Albania, que ha pasado de ser la última de la fila en 1966 a ser la primera en la actualidad.