Indice

covid19_provincias_spain_consolidated <-read_csv("https://raw.githubusercontent.com/montera34/escovid19data/master/data/output/covid19-provincias-spain_consolidated.csv")
#View(covid19_provincias_spain_consolidated)


## Remove columns with more than 50% NA
data_raw <- covid19_provincias_spain_consolidated[, which(colMeans(!is.na(covid19_provincias_spain_consolidated)) > 0.9)]

# convert NA in 0
data_raw[is.na(data_raw)] <- 0

write.csv(data_raw,"data/MyData.csv", row.names = FALSE)
data_raw_month <- data_raw %>% 
  group_by(month = lubridate::floor_date(date, "month"),province) %>%
  summarise(total_casos = sum(num_casos2),
            total_hosp = sum(num_hosp),
            total_def = sum(num_def),
            total_uci = sum(num_uci),
          poblacion = poblacion,
          ccaa = ccaa, .groups = 'drop')

data_raw_month$month <- format(data_raw_month$month, "%m-%Y")
X02001 <- read.delim("~/Documentos/MASTER UOC/Visualización de Datos/A8-PEC3/PEC3-COVID/PEC3-COVID/data/02001.csv")

# https://www.ine.es/buscar/searchResults.do?searchString=P.I.B.+a+precios+de+mercado+y+valor+a%C3%B1adido+bruto+a+precios+b%C3%A1sicos+por+ramas+de+actividad%3A+Precios+corrientes+por+provincias+y+periodo&Menu_botonBuscador=&searchType=DEF_SEARCH&startat=0&L=0
ine_raw <- X02001 %>% pivot_wider(names_from = c(Ramas.de.actividad,periodo), values_from = Total, values_fn = list())
ine_raw <- do.call(rbind.data.frame, ine_raw)

#Change the index number of a dataframe
ine_raw<-data.frame(t(ine_raw))

# df1 <- data.frame(ine_raw[,-1], row.names = ine_raw[,1])

mysub <- function(x) {gsub("\\.","",x)}
df1 <- (apply(ine_raw, 2, mysub ))
df1 <- as.data.frame(df1)
df1 <- df1 %>% 
     mutate_at(c(2:34), as.numeric)
df1 <- df1 %>% dplyr::select(Provincias, PRODUCTO.INTERIOR.BRUTO.A.PRECIOS.DE.MERCADO_2018.P..2)
colnames(df1) <- c("province", "PIB")
#ine_raw <- ine_raw %>% dplyr::select( c("Valor añadido bruto total_2018(P) ", "Impuestos netos sobre los productos_2018(P) "))
#ine_raw$pib2018 <- ine_raw$Valor.añadido.bruto.total_2018.P.+ine_raw$Impuestos.netos.sobre.los.productos_2018.P.
data_raw_month1 <- data_raw_month %>% pivot_wider(names_from = month, values_from = c(total_casos, total_hosp, total_def, total_uci), values_fn = list(total_casos=mean, total_hosp=mean, total_def=mean, total_uci=mean))
merge <- merge(df1, data_raw_month, by = "province")

merge <- merge%>% distinct()


merge$month <- parse_date_time(merge$month, "%m-%Y")

merge_province <- merge %>% group_by(province) %>%
  summarise(total_casos = sum(total_casos),
            total_hosp = sum(total_hosp),
            total_def = sum(total_def),
            total_uci = sum(total_uci),
          poblacion = poblacion,
          PIB = PIB, ccaa=ccaa,  .groups = 'drop')

data_province <- merge_province%>% distinct()
merge_ccaa <- data_province %>% group_by(ccaa) %>%
  summarise_if(is.numeric, sum)

data_ccaa <- merge_ccaa%>% distinct()
merge_ccaa_month <- merge %>% group_by(month, ccaa) %>%
  summarise(total_casos = sum(total_casos),
            total_hosp = sum(total_hosp),
            total_def = sum(total_def),
            total_uci = sum(total_uci),  .groups = 'drop')
write.csv(data_province,"data/data_province.csv", row.names = FALSE)
write.csv(data_ccaa,"data/data_ccaa.csv", row.names = FALSE)
write.csv(merge_ccaa_month,"data/data_ccaa_month.csv", row.names = FALSE)

1- Elección Dataset

Seleccionar alguno de los conjuntos de datos proporcionados o alguno de complejidad y características similares. Recomendamos usar alguno de los conjuntos de datos siguientes:

Montera34(https://github.com/montera34/escovid19data)

Instituto Nacional de Estadistica(https://www.ine.es/buscar/searchResults.do?searchString=P.I.B.+a+precios+de+mercado+y+valor+a%C3%B1adido+bruto+a+precios+b%C3%A1sicos+por+ramas+de+actividad%3A+Precios+corrientes+por+provincias+y+periodo&Menu_botonBuscador=&searchType=DEF_SEARCH&startat=0&L=0)

nombre autoria fuente fecha publicación licencia
COVID Montera 34 Recopila información de varias fuentes todos los días Atribución 4.0 Internacional (CC BY 4.0)
PIB Instituto Nacional de Estadistica Elaboración propia 2018 El Instituto Nacional de Estadística ha creado el espacio Datos abiertos para incluir en él los recursos de información pública que se generen. El catálogo de información reutilizable es accesible tanto a traves de la web del INE: www.ine.es/datosabiertos, como a través del portal datos.gob.es

Descripción de los datos - Datos en bruto

Montera 34

skimr::skim(covid19_provincias_spain_consolidated)
Data summary
Name covid19_provincias_spain_…
Number of rows 25822
Number of columns 59
_______________________
Column type frequency:
character 2
Date 1
logical 35
numeric 21
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
province 0 1 4 22 0 52 0
ccaa 0 1 5 27 0 19 0

Variable type: Date

skim_variable n_missing complete_rate min max median n_unique
date 0 1 2020-01-01 2021-05-11 2020-09-05 497

Variable type: logical

skim_variable n_missing complete_rate mean count
new_cases 24975 0.03 0.36 FAL: 543, TRU: 304
PCR 25385 0.02 0.50 FAL: 220, TRU: 217
TestAc 25679 0.01 0.07 FAL: 133, TRU: 10
activos 25796 0.00 0.46 FAL: 14, TRU: 12
hospitalized 25368 0.02 0.62 TRU: 280, FAL: 174
hospitalized_accumulated 25800 0.00 0.14 FAL: 19, TRU: 3
hospitalized_new 25757 0.00 0.42 FAL: 38, TRU: 27
intensive_care 23419 0.09 0.42 FAL: 1397, TRU: 1006
deceased 25282 0.02 0.18 FAL: 441, TRU: 99
cases_accumulated 25584 0.01 0.24 FAL: 181, TRU: 57
cases_accumulated_PCR 25694 0.00 0.19 FAL: 104, TRU: 24
recovered 25822 0.00 NaN :
deceased_hosp_eus 25822 0.00 NaN :
cases_per_cienmil 25641 0.01 0.00 FAL: 181
intensive_care_per_1000000 24420 0.05 0.00 FAL: 1397, TRU: 5
deceassed_per_100000 25380 0.02 0.00 FAL: 441, TRU: 1
hospitalized_per_100000 25648 0.01 0.00 FAL: 174
cases_14days 25782 0.00 0.48 FAL: 21, TRU: 19
cases_7days 25624 0.01 0.39 FAL: 120, TRU: 78
cases_PCR_14days 25702 0.00 0.38 FAL: 75, TRU: 45
cases_PCR_7days 25528 0.01 0.34 FAL: 194, TRU: 100
daily_cases 24287 0.06 0.33 FAL: 1026, TRU: 509
daily_cases_avg7 25615 0.01 0.43 FAL: 119, TRU: 88
daily_cases_PCR 23995 0.07 0.34 FAL: 1202, TRU: 625
daily_cases_PCR_avg7 25526 0.01 0.36 FAL: 190, TRU: 106
daily_deaths 14143 0.45 0.30 FAL: 8189, TRU: 3490
daily_deaths_hosp_eus 25448 0.01 0.39 FAL: 230, TRU: 144
daily_deaths_inc 17692 0.31 0.04 FAL: 7788, TRU: 342
daily_deaths_avg3 20355 0.21 0.24 FAL: 4163, TRU: 1304
daily_deaths_avg7 22952 0.11 0.20 FAL: 2283, TRU: 587
daily_deaths_avg7_hosp_eus 25759 0.00 0.38 FAL: 39, TRU: 24
ia14 25706 0.00 0.35 FAL: 75, TRU: 41
source_name 25822 0.00 NaN :
source 25822 0.00 NaN :
comments 25822 0.00 NaN :

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
ine_code 0 1.00 26.50 15.01 1 13.00 26.0 40.00 52.0 ▇▇▇▇▇
num_casos 5490 0.79 126.87 354.81 0 2.00 26.0 113.00 6743.0 ▇▁▁▁▁
num_casos_prueba_pcr 5490 0.79 104.85 298.71 0 1.00 22.0 96.00 6726.0 ▇▁▁▁▁
num_casos_prueba_test_ac 5490 0.79 0.23 1.40 0 0.00 0.0 0.00 32.0 ▇▁▁▁▁
num_casos_prueba_ag 5490 0.79 21.50 109.87 0 0.00 0.0 4.00 3411.0 ▇▁▁▁▁
num_casos_prueba_elisa 5490 0.79 0.18 2.07 0 0.00 0.0 0.00 86.0 ▇▁▁▁▁
num_casos_prueba_desconocida 5490 0.79 0.10 1.26 0 0.00 0.0 0.00 65.0 ▇▁▁▁▁
num_casos_cum1 5490 0.79 12743.52 36583.56 0 751.00 3041.5 10427.00 493480.0 ▇▁▁▁▁
num_casos2 30 1.00 137.96 390.88 0 3.00 35.0 119.00 7738.0 ▇▁▁▁▁
num_hosp 30 1.00 13.59 52.02 0 0.00 3.0 11.00 1930.0 ▇▁▁▁▁
num_uci 30 1.00 1.26 4.17 0 0.00 0.0 1.00 135.0 ▇▁▁▁▁
num_def 30 1.00 3.04 10.45 0 0.00 1.0 3.00 334.0 ▇▁▁▁▁
num_casos_cum2 30 1.00 22795.71 58559.73 0 1295.75 5208.0 23072.50 696000.0 ▇▁▁▁▁
num_hosp_cum 30 1.00 3103.64 8754.94 0 376.00 1164.5 2520.25 98453.0 ▇▁▁▁▁
num_uci_cum 30 1.00 273.03 662.16 0 40.00 107.0 242.00 7456.0 ▇▁▁▁▁
num_def_cum 30 1.00 717.78 1674.07 0 90.00 317.0 665.00 15139.0 ▇▁▁▁▁
poblacion 0 1.00 904098.64 1176256.42 84777 316798.00 581078.0 1022800.00 6663394.0 ▇▁▁▁▁
deaths_last_week 0 1.00 24.87 96.09 -18 0.00 7.0 21.00 2366.0 ▇▁▁▁▁
num_casos_avg7 5802 0.78 127.38 339.57 0 2.10 27.7 115.40 4499.7 ▇▁▁▁▁
num_casos_prueba_pcr_avg7 5802 0.78 105.47 286.49 0 2.00 24.1 99.40 4191.3 ▇▁▁▁▁
num_casos2_avg7 342 0.99 139.33 357.39 0 4.30 39.7 123.40 5135.3 ▇▁▁▁▁

INE

skimr::skim(X02001)
Data summary
Name X02001
Number of rows 1716
Number of columns 4
_______________________
Column type frequency:
character 4
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Provincias 0 1 4 22 0 52 0
Ramas.de.actividad 0 1 15 244 0 10 0
periodo 0 1 4 7 0 3 0
Total 0 1 3 11 0 1558 0

Datos una vez tratados

skimr::skim(data_raw)
Data summary
Name data_raw
Number of rows 25822
Number of columns 15
_______________________
Column type frequency:
character 2
Date 1
numeric 12
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
province 0 1 4 22 0 52 0
ccaa 0 1 5 27 0 19 0

Variable type: Date

skim_variable n_missing complete_rate min max median n_unique
date 0 1 2020-01-01 2021-05-11 2020-09-05 497

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
ine_code 0 1 26.50 15.01 1 13.0 26.0 40.00 52.0 ▇▇▇▇▇
num_casos2 0 1 137.80 390.68 0 3.0 34.0 119.00 7738.0 ▇▁▁▁▁
num_hosp 0 1 13.57 51.99 0 0.0 3.0 11.00 1930.0 ▇▁▁▁▁
num_uci 0 1 1.26 4.17 0 0.0 0.0 1.00 135.0 ▇▁▁▁▁
num_def 0 1 3.04 10.45 0 0.0 1.0 3.00 334.0 ▇▁▁▁▁
num_casos_cum2 0 1 22769.23 58530.86 0 1283.0 5185.5 23046.75 696000.0 ▇▁▁▁▁
num_hosp_cum 0 1 3100.03 8750.49 0 374.0 1163.0 2517.75 98453.0 ▇▁▁▁▁
num_uci_cum 0 1 272.71 661.84 0 40.0 107.0 242.00 7456.0 ▇▁▁▁▁
num_def_cum 0 1 716.95 1673.27 0 90.0 316.0 665.00 15139.0 ▇▁▁▁▁
poblacion 0 1 904098.64 1176256.42 84777 316798.0 581078.0 1022800.00 6663394.0 ▇▁▁▁▁
deaths_last_week 0 1 24.87 96.09 -18 0.0 7.0 21.00 2366.0 ▇▁▁▁▁
num_casos2_avg7 0 1 137.48 355.37 0 3.9 38.3 121.60 5135.3 ▇▁▁▁▁
skimr::skim(ine_raw)
Data summary
Name ine_raw
Number of rows 52
Number of columns 34
_______________________
Column type frequency:
character 34
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Provincias 0 1 4 22 0 52 0
PRODUCTO.INTERIOR.BRUTO.A.PRECIOS.DE.MERCADO_2018.P..2 0 1 9 11 0 52 0
PRODUCTO.INTERIOR.BRUTO.A.PRECIOS.DE.MERCADO_2018.P..3 0 1 9 11 0 52 0
PRODUCTO.INTERIOR.BRUTO.A.PRECIOS.DE.MERCADO_2017.4 0 1 9 11 0 52 0
PRODUCTO.INTERIOR.BRUTO.A.PRECIOS.DE.MERCADO_2017.5 0 1 9 11 0 52 0
PRODUCTO.INTERIOR.BRUTO.A.PRECIOS.DE.MERCADO_2016.6 0 1 9 11 0 52 0
PRODUCTO.INTERIOR.BRUTO.A.PRECIOS.DE.MERCADO_2016.7 0 1 9 11 0 52 0
A..Agricultura..ganadería..silvicultura.y.pesca_2018.P. 0 1 3 9 0 52 0
A..Agricultura..ganadería..silvicultura.y.pesca_2017 0 1 3 9 0 52 0
A..Agricultura..ganadería..silvicultura.y.pesca_2016 0 1 3 9 0 52 0
B_E..Industrias.extractivas..industria.manufacturera..suministro.de.energía.eléctrica..gas..vapor.y.aire.acondicionado..suministro.de.agua..actividades.de.saneamiento..gestión.de.residuos.y.descontaminación_2018.P. 0 1 6 10 0 52 0
B_E..Industrias.extractivas..industria.manufacturera..suministro.de.energía.eléctrica..gas..vapor.y.aire.acondicionado..suministro.de.agua..actividades.de.saneamiento..gestión.de.residuos.y.descontaminación_2017 0 1 6 10 0 52 0
B_E..Industrias.extractivas..industria.manufacturera..suministro.de.energía.eléctrica..gas..vapor.y.aire.acondicionado..suministro.de.agua..actividades.de.saneamiento..gestión.de.residuos.y.descontaminación_2016 0 1 6 10 0 52 0
C….De.las.cuales..Industria.manufacturera_2018.P. 0 1 6 10 0 52 0
C….De.las.cuales..Industria.manufacturera_2017 0 1 6 10 0 52 0
C….De.las.cuales..Industria.manufacturera_2016 0 1 6 10 0 52 0
F..Construcción_2018.P. 0 1 6 10 0 52 0
F..Construcción_2017 0 1 6 9 0 52 0
F..Construcción_2016 0 1 6 9 0 51 0
G_J..Comercio.al.por.mayor.y.al.por.menor..reparación.de.vehículos.de.motor.y.motocicletas..transporte.y.almacenamiento..hostelería..información.y.comunicaciones_2018.P. 0 1 7 10 0 52 0
G_J..Comercio.al.por.mayor.y.al.por.menor..reparación.de.vehículos.de.motor.y.motocicletas..transporte.y.almacenamiento..hostelería..información.y.comunicaciones_2017 0 1 7 10 0 52 0
G_J..Comercio.al.por.mayor.y.al.por.menor..reparación.de.vehículos.de.motor.y.motocicletas..transporte.y.almacenamiento..hostelería..información.y.comunicaciones_2016 0 1 7 10 0 52 0
K_N..Actividades.financieras.y.de.seguros..actividades.inmobiliarias..actividades.profesionales..científicas.y.técnicas..actividades.administrativas.y.servicios.auxiliares_2018.P. 0 1 7 10 0 52 0
K_N..Actividades.financieras.y.de.seguros..actividades.inmobiliarias..actividades.profesionales..científicas.y.técnicas..actividades.administrativas.y.servicios.auxiliares_2017 0 1 7 10 0 52 0
K_N..Actividades.financieras.y.de.seguros..actividades.inmobiliarias..actividades.profesionales..científicas.y.técnicas..actividades.administrativas.y.servicios.auxiliares_2016 0 1 7 10 0 52 0
O_U..Administración.pública.y.defensa..seguridad.social.obligatoria..educación..actividades.sanitarias.y.de.servicios.sociales..actividades.artísticas..recreativas.y.de.entretenimiento..reparación.de.artículos.de.uso.doméstico.y.otros.servicios_2018.P. 0 1 7 10 0 52 0
O_U..Administración.pública.y.defensa..seguridad.social.obligatoria..educación..actividades.sanitarias.y.de.servicios.sociales..actividades.artísticas..recreativas.y.de.entretenimiento..reparación.de.artículos.de.uso.doméstico.y.otros.servicios_2017 0 1 7 10 0 52 0
O_U..Administración.pública.y.defensa..seguridad.social.obligatoria..educación..actividades.sanitarias.y.de.servicios.sociales..actividades.artísticas..recreativas.y.de.entretenimiento..reparación.de.artículos.de.uso.doméstico.y.otros.servicios_2016 0 1 7 10 0 52 0
Valor.añadido.bruto.total_2018.P. 0 1 9 11 0 52 0
Valor.añadido.bruto.total_2017 0 1 9 11 0 52 0
Valor.añadido.bruto.total_2016 0 1 9 11 0 52 0
Impuestos.netos.sobre.los.productos_2018.P. 0 1 7 10 0 52 0
Impuestos.netos.sobre.los.productos_2017 0 1 7 10 0 52 0
Impuestos.netos.sobre.los.productos_2016 0 1 7 10 0 52 0

Aspectos a destacar

Montera:

Fecha
ccaa
provincia
casos
hospitalizados
uci
defunciones

INE:

PIB 2018

2- Propuesta de diseño.

Utilizar alguna herramienta para crear una propuesta de diseño inicial o mockup que responda una pregunta básica sobre el conjunto de datos.

Pregunta básica: ¿Cual ha sido la evolución del Covid en España?

3- Elementos interactivos

Determinar qué elementos interactivos pueden añadirse a la propuesta inicial para mejorar sus capacidades como herramienta de análisis visual.

Los elementos interactivos a añadir en la propuesta inicial para mejorar las capacidades son:

1.- Fecha.

2.- Segmentación administrativa: CC.AA. y provincias.

3.- Contagios, hospitalización.

4.- Ratio por 100.000 habitantes.

covid19_provincias_timeseries <- data_raw %>%
  ggplot(aes(date, num_casos2, group = province)) +
  geom_line(aes(color = province), alpha = 0.25) +
  geom_smooth(
    aes(group = NULL),
    method = "loess",
    span = 0.1,
    se = FALSE,
    size = 1.5,
    color = "red"
  ) +
  theme_minimal() +
  labs(y = "", x = "", title = "Media nuevos casos")
ggplotly(covid19_provincias_timeseries)
covid19_ccaa_timeseries <- covid19_provincias_spain_consolidated %>%
  ggplot(aes(date, num_casos2, group = ccaa)) +
  geom_line(aes(color = ccaa, shape=ccaa), alpha = 0.25) +
  geom_smooth(
    aes(group = NULL),
    method = "loess",
    span = 0.1,
    se = FALSE,
    size = 1.5,
    color = "blue"
  ) +
  theme_minimal() +
  labs(y = "", x = "", title = "Media nuevos casos")
ggplotly(covid19_ccaa_timeseries)
covid19_ccaa_timeseries <- covid19_provincias_spain_consolidated %>%
  ggplot(aes(date, num_def, group = ccaa)) +
  geom_line(aes(color = ccaa, shape=ccaa), alpha = 0.25) +
  geom_smooth(
    aes(group = NULL),
    method = "loess",
    span = 0.1,
    se = FALSE,
    size = 1.5,
    color = "blue"
  ) +
  theme_minimal() +
  labs(y = "", x = "", title = "Media de decesos")
ggplotly(covid19_ccaa_timeseries)
gg_ccaa_cresta <- covid19_provincias_spain_consolidated %>%
  #drop_na() %>%
  dplyr::mutate(ccaa = factor(ccaa) %>% fct_reorder(num_casos2) %>% fct_rev()) %>%
  filter(as.numeric(ccaa) %in% (1:5)) %>%
  ggplot(aes(x = num_casos2, y = fct_rev(ccaa))) +
  geom_density_ridges(
    aes(color = ccaa, shape  = ccaa),
    fill="grey10", 
    alpha = 0.75,
    size  = 1
  ) +
  scale_x_continuous() +
  theme_minimal() +
  labs(x = "Media nuevos casos", y = "", title = "Top 5 CCAA por Media número de casos")

gg_ccaa_cresta

4- Implementación

Implementar usando cualquier herramienta la versión interactiva que permita la manipulación de diferentes elementos de la visualización interactiva.

Dashboard

Proporcionar ejemplos de preguntas que pueden ser respondidas mediante la visualización interactiva, más allá de la propuesta inicial.

  ¿Cuantos hospitalizados ha tenido Madrid)
  

Nos lo ofrece el Dashboard de datastudio filtrando por Madrid

  ¿Cual es el total de casos?
  

Nos lo ofrece directamente datastudio directamente

  ¿Podemos ver las 3 olas de contagios desde enero de 2020))
  

Si. Cualquier de las gráficas donde el valor de la abcisa sea date (la fecha), nos mostrará los 3 picos principales durante este periodo. En el caso de Pais Vasco o Navarra podemos ver hasta 4 olas.