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")En esta actividad estudiaremos el marco de datos de la European Social Survey (ESS), estudiaremos esta base de datos mediante el estudio del Objeto Cron que vemos a continuación.
#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")El número de variables del objeto Cron es 24 y de 6032 de observaciones. La unidad de observación del marco de datos es el individuo ya que se basa en las respuestas individuales a la encuesta.
Las 24 variables son las siguientes: - cntry: País, - gndr: Género - agea: Edad - eduyrs: Años de educación a tiempo completo completados - eisced: Nivel más alto de educación - hincfel: Percepción sobre los ingresos del hogar en la actualidad - hinctnta: Ingreso neto total del hogar, de todas las fuentes - netusoft: Uso de Internet, con qué frecuencia - region: Región - W4q1 hasta W4q15: Variables categóricas obtenidas en las encuestas.
#A continuación visualizamos el objeto Cron
cron# A tibble: 6,032 × 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
7 AT 2 35 20 7 2 6 5 AT31 5 3
8 AT 2 20 14 4 3 8 5 AT12 3 3
9 AT 1 68 25 7 1 8 5 AT12 3 2
10 AT 1 51 14 5 1 7 4 AT21 3 4
# ℹ 6,022 more rows
# ℹ 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>
glimpse(cron)Rows: 6,032
Columns: 24
$ cntry <chr> "AT", "AT", "AT", "AT", "AT", "AT", "AT", "AT", "AT", "AT", "…
$ gndr <dbl> 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1…
$ agea <dbl> 73, 41, 35, 55, 65, 27, 35, 20, 68, 51, 66, 56, 51, 67, 48, 3…
$ eduyrs <dbl> 11, 13, 14, 12, 12, 21, 20, 14, 25, 14, 13, 16, 13, 11, 25, 1…
$ eisced <dbl> 3, 6, 5, 3, 2, 6, 7, 4, 7, 5, 3, 4, 5, 3, 55, 3, 7, 5, 3, 3, …
$ hincfel <dbl> 1, 2, 1, 1, 1, 2, 2, 3, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2…
$ hinctnta <dbl> 10, 77, 3, 77, 7, 77, 6, 8, 8, 7, 5, 7, 8, 7, 5, 5, 8, 6, 10,…
$ netusoft <dbl> 5, 5, 5, 4, 5, 5, 5, 5, 5, 4, 5, 5, 5, 2, 5, 5, 5, 5, 5, 3, 4…
$ region <chr> "AT32", "AT22", "AT22", "AT34", "AT12", "AT31", "AT31", "AT12…
$ w4q1 <dbl> 4, 4, 4, 3, 4, 4, 5, 3, 3, 3, 4, 4, 4, 2, 4, 4, 4, 4, 4, 3, 3…
$ w4q2 <dbl> 4, 4, 5, 3, 5, 4, 3, 3, 2, 4, 4, 3, 4, 3, 4, 5, 4, 4, 4, 3, 3…
$ w4q3 <dbl> 3, 3, 4, 3, 3, 2, 1, 1, 4, 3, 2, 4, 3, 3, 2, 1, 3, 1, 2, 2, 3…
$ w4q4 <dbl> 3, 4, 3, 3, 4, 3, 4, 2, 3, 2, 3, 3, 4, 2, 3, 1, 2, 4, 3, 2, 3…
$ w4q5 <dbl> 4, 4, 5, 4, 5, 4, 5, 4, 3, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 4, 3…
$ w4q6 <dbl> 5, 4, 5, 4, 5, 4, 5, 5, 4, 4, 5, 5, 5, 5, 5, 5, 5, 4, 5, 3, 4…
$ w4q7 <dbl> 4, 2, 4, 2, 5, 2, 3, 3, 2, 2, 3, 2, 2, 2, 1, 2, 3, 2, 2, 4, 3…
$ w4q8 <dbl> 4, 4, 2, 4, 5, 4, 5, 4, 4, 3, 5, 3, 2, 2, 5, 1, 4, 4, 2, 3, 4…
$ w4q9 <dbl> 5, 4, 4, 4, 5, 4, 5, 5, 4, 3, 4, 3, 4, 4, 5, 4, 5, 4, 4, 4, 3…
$ w4q10 <dbl> 4, 3, 5, 4, 4, 3, 5, 3, 2, 3, 4, 4, 4, 3, 3, 4, 4, 4, 4, 2, 4…
$ w4q11 <dbl> 5, 3, 5, 2, 1, 2, 3, 3, 2, 3, 5, 2, 3, 4, 1, 3, 4, 1, 4, 3, 3…
$ w4q12 <dbl> 5, 4, 3, 4, 5, 4, 3, 4, 4, 3, 4, 3, 4, 4, 4, 4, 4, 3, 4, 3, 2…
$ w4q13 <dbl> 5, 4, 2, 4, 5, 4, 4, 5, 4, 3, 5, 4, 5, 4, 5, 5, 3, 4, 4, 4, 3…
$ w4q14 <dbl> 5, 4, 3, 4, 5, 4, 5, 4, 4, 4, 5, 5, 5, 4, 5, 5, 4, 4, 4, 4, 3…
$ w4q15 <dbl> 4, 4, 3, 4, 5, 4, 4, 2, 4, 3, 4, 5, 3, 4, 4, 5, 4, 4, 4, 3, 3…
#Páises de los individuos encuestados que se han estudiado
unique_countries <- unique(cron$cntry)
print (unique_countries) [1] "AT" "BE" "CZ" "FI" "FR" "GB" "IS" "IT" "PT" "SE" "SI"
#Número de Páises que se han estudiado
length(unique_countries)[1] 11
#Edades de los individuos encuestados que se han estudiado
unique_age <- unique (cron$agea)
print (unique_age) [1] 73 41 35 55 65 27 20 68 51 66 56 67 48 39 54 47 45 81 53
[20] 28 58 19 44 34 30 29 40 31 60 59 61 18 52 32 79 71 43 46
[39] 75 21 42 57 64 24 25 74 62 23 33 38 50 37 70 88 22 49 78
[58] 72 26 63 89 80 69 83 36 77 76 84 17 90 87 86 82 85 999
#Número de edades que se han estudiado
length(unique_age)[1] 75
#Regiones de los individuos encuestados que se han estudiado
unique_region <- unique (cron$region)
print(unique_region) [1] "AT32" "AT22" "AT34" "AT12" "AT31" "AT21" "AT13" "AT11" "AT33"
[10] "BE33" "BE24" "BE23" "BE32" "BE25" "BE34" "BE22" "BE31" "BE21"
[19] "BE10" "BE35" "CZ080" "CZ053" "CZ031" "CZ020" "CZ010" "CZ051" "CZ064"
[28] "CZ071" "CZ052" "CZ042" "CZ041" "CZ032" "CZ072" "CZ063" "FI1B1" "FI1C2"
[37] "FI1C3" "FI1D1" "FI197" "FI1C1" "FI1D2" "FI194" "FI196" "FI193" "FI1D3"
[46] "FI195" "FI1D9" "FI1C5" "FI1D7" "FI1C4" "FI1D8" "FI1D5" "FI200" "FRK2"
[55] "FRF1" "FRH0" "FR10" "FRJ2" "FRL0" "FRI1" "FRD2" "FRE1" "FRG0"
[64] "FRJ1" "FRC1" "FRE2" "FRB0" "FRK1" "FRI2" "FRD1" "FRF3" "FRC2"
[73] "FRI3" "FRF2" "UKL" "UKH" "UKM" "UKD" "UKK" "UKI" "UKC"
[82] "UKE" "UKF" "UKJ" "UKG" "UKN" "IS002" "IS001" "ITC" "ITH"
[91] "ITF" "ITI" "ITG" "PT17" "PT11" "PT16" "PT18" "PT15" "SE21"
[100] "SE31" "SE11" "SE22" "SE32" "SE23" "SE12" "SE33" "SI032" "SI037"
[109] "SI035" "SI041" "SI042" "SI043" "SI034" "SI031" "SI038" "SI044" "SI036"
[118] "SI033"
#Número de Regiones que se han estudiado
length(unique_region)[1] 118
#Años de estudio de los individios encuestados que se han estudiado
unique_yearsedu <- unique (cron$eduyrs)
print(unique_yearsedu) [1] 11 13 14 12 21 20 25 16 15 18 9 10 22 17 8 99 19 23 26 7 28 5 24 88 27
[26] 6 77 30 32 40 4 1 0 45 29 2 3 36
#Número de Años de estudio que se han estudiado
length(unique_yearsedu)[1] 38
#Nivel de estudio de los individios encuestados que se han estudiado
unique_edulevel <- unique (cron$eisced)
print(unique_edulevel) [1] 3 6 5 2 7 4 55 1 99 88 77
#Número niveles de estudio que se han estudiado
length(unique_edulevel)[1] 11
#Percepción sobre los ingresos del hogar en la actualidad de los individios encuestados que se han estudiado
unique_percep <- unique (cron$hincfel)
print(unique_percep)[1] 1 2 3 4 9 7 8
#Número de Percepción sobre los ingresos del hogar en la actualidad que se han estudiado
length(unique_percep)[1] 7
#Ingreso neto total del hogar, de todas las fuentes de los individios encuestados que se han estudiado
unique_ingreso <- unique (cron$hinctnta)
print(unique_ingreso) [1] 10 77 3 7 6 8 5 9 1 99 4 2 88
#Número de Ingreso neto total del hogar, de todas las fuentes que se han estudiado
length(unique_ingreso)[1] 13
1.A continuación vemos la tabla de frecuencias de la variable w4q13 que pregunta lo siguiente: Para hacer de [país] una sociedad ideal: Proteger los derechos humanos. Esta variable puede tener hasta 6 valores, como vemos a continuación:
Value Category - 1 Not a priority at all - 2 A small priority - 3 A medium priority - 4 An important priority - 5 A top priority - 9 No answer*
Lo que la tabla de frecuencia nos muestra es la frecuencia de los diferentes valores de la variable. Vemos pues que el valor 5. A top priority es aquel que más encuestados han respondido para esta variable.
table(cron$w4q13)
1 2 3 4 5 9
17 68 429 2094 3370 54
2.Vemos tanto en la gráfica como en los números la frecuencia absoluta de la variable cntry. Vemos que existen 11 valores para cntry y lo que la frecuencia absoluta nos muestra es cuántas veces aparece cada país en la muestra.
frecuencia_cntry <- table(cron$cntry)
frecuencia_cntry
AT BE CZ FI FR GB IS IT PT SE SI
647 573 284 739 724 487 525 243 396 845 569
barplot(frecuencia_cntry)w4q3 en Portugal, Francia y Suecia. Esta variable w4q3 indica la prioridad de “Enfatizar los valores religiosos”, donde la respuesta 1 es que no es una prioridad para nada y la 5 es que es un prioridad top. Vemos como para Francia y Suecia, la mayoría de repsuestas son el 1, esto es, que para la mayoría la los valores religiosos no son prioritarios para una sociedad ideal. En el caso de Portugal, vemos que la mayoria de respuestas son el 3 que valora esto como una prioridad media. Esto nos da una muestra de que posiblemente por tradición cultural al ser Suecia y Francia sociedades más laicas dan menos importancia a la relogión que POrtugal que es un país con gran tradición religiosa.# Portugal
portugal <- cron %>% filter(cntry == "PT") %>% count(w4q3)
portugal# A tibble: 6 × 2
w4q3 n
<dbl> <int>
1 1 96
2 2 89
3 3 139
4 4 49
5 5 17
6 9 6
# Francia
francia <- cron %>% filter(cntry == "FR") %>% count(w4q3)
francia# A tibble: 6 × 2
w4q3 n
<dbl> <int>
1 1 355
2 2 140
3 3 147
4 4 51
5 5 16
6 9 15
# Suecia
suecia <- cron %>% filter(cntry == "SE") %>% count(w4q3)
suecia# A tibble: 6 × 2
w4q3 n
<dbl> <int>
1 1 312
2 2 309
3 3 159
4 4 48
5 5 9
6 9 8
4.El porcentaje de personas que han repondido con un 5 a la pregunta w4q15 es ed un 21.76%
respuesta_5 <- sum(cron$w4q15 == 5, na.rm = TRUE)
total_respuestas <- sum(!is.na(cron$w4q15))
porcentaje_5 <- (respuesta_5 / total_respuestas) * 100
porcentaje_5[1] 21.76724
w4q1 la moda es el valor 4 como vemos tanto en la tabla de frecuencia y en el histograma.table(cron$w4q1)
1 2 3 4 5 9
42 117 896 3067 1890 20
hist(cron$w4q1)eduyrs por país. Esta variables mide los años de educación de los encuestados. Vemos que el valor más bajo es para Portugal con una media de 13,7 años y una mediana de 12 años de educación y el más alto es para Chequia con 17.1 años y una mediana de 13 años. Interesante que en el caso de Chequia a pesar de ser el país con una media mayor tiene una de las medianas más bajas junto a Portugal.estadisticas_eduyrs <- cron %>%
group_by(cntry) %>%
summarise(
media = mean(eduyrs, na.rm = TRUE),
mediana = median(eduyrs, na.rm = TRUE)
)
estadisticas_eduyrs# A tibble: 11 × 3
cntry media mediana
<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
7.Creamos cron_2 eliminando los valores 77, 88 y 99 de la variable eduyrs
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>
boxplot(eduyrs ~ cntry, data = cron_2)library(dslabs)
gap <- tibble(dslabs::gapminder)gap# A tibble: 10,545 × 9
country year infant_mortality life_expectancy fertility population gdp
<fct> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Albania 1960 115. 62.9 6.19 1636054 NA
2 Algeria 1960 148. 47.5 7.65 11124892 1.38e10
3 Angola 1960 208 36.0 7.32 5270844 NA
4 Antigua… 1960 NA 63.0 4.43 54681 NA
5 Argenti… 1960 59.9 65.4 3.11 20619075 1.08e11
6 Armenia 1960 NA 66.9 4.55 1867396 NA
7 Aruba 1960 NA 65.7 4.82 54208 NA
8 Austral… 1960 20.3 70.9 3.45 10292328 9.67e10
9 Austria 1960 37.3 68.8 2.7 7065525 5.24e10
10 Azerbai… 1960 NA 61.3 5.57 3897889 NA
# ℹ 10,535 more rows
# ℹ 2 more variables: continent <fct>, region <fct>
glimpse(gap)Rows: 10,545
Columns: 9
$ country <fct> "Albania", "Algeria", "Angola", "Antigua and Barbuda"…
$ year <int> 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960,…
$ infant_mortality <dbl> 115.40, 148.20, 208.00, NA, 59.87, NA, NA, 20.30, 37.…
$ life_expectancy <dbl> 62.87, 47.50, 35.98, 62.97, 65.39, 66.86, 65.66, 70.8…
$ fertility <dbl> 6.19, 7.65, 7.32, 4.43, 3.11, 4.55, 4.82, 3.45, 2.70,…
$ population <dbl> 1636054, 11124892, 5270844, 54681, 20619075, 1867396,…
$ gdp <dbl> NA, 13828152297, NA, NA, 108322326649, NA, NA, 966778…
$ continent <fct> Europe, Africa, Africa, Americas, Americas, Asia, Ame…
$ region <fct> Southern Europe, Northern Africa, Middle Africa, Cari…
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
gap %>%
filter(country %in% c("Angola", "Sweden"), year >= 1966 & year <= 2016) %>%
ggplot(aes(x = year, y = fertility, color = country)) +
geom_line() +
labs(title = "Evolución de la Fertilidad en Angola y Suecia (1966-2016)",
x = "Año",
y = "Tasa de Fertilidad") +
theme_minimal()gap %>%
filter(country %in% c("Angola", "Sweden")) %>%
ggplot(aes(x = fertility)) +
geom_histogram() +
facet_wrap(~ year) gap %>%
filter(country == "Brazil", year >= 1960, year <= 2016) %>%
ggplot(aes(x = life_expectancy, y = gdp)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(title = "Brasil: Relación entre PIB y Esperanza de vida (1960-2016)",
x = "Esperanza de vida",
y = "PIB")