“En este informe se mostrará algunos datos importantes de lo que está pasando en España sobre la enfermedad del COVID19”, investigaciones en las que se recogen datos de salud de los pacientes con el fin de analizar el uso, la seguridad o la efectividad de entre otros filtros, la tipología de ensayo, las causas que producen, promedio de la muestra que trataremos de investigar y población estudiada en el contexto de la asistencia sanitaria real, sin intervenir en la práctica clínica. Esto se convierte para extraer mucha información relevante con el objetivo de informar sobre las distintas líneas de investigación que se están llevando a cabo en los centros del país y alentar la colaboración entre los investigadores.

Ademas podemos excluir que con los datos presentados, que en la fecha de 2020-02-01(sábado primero de febrero del 2020) se produjo el primer caso cero que se había infectado del covid9, y de que los primeros dos recuperados sucedió en un mes con la fecha de Febrero del presente año. Además de el primer fallecido en España se produjo el día martes 3 de marzo del 2020 con dos recuperados y aproximadamente 165 confirmados."

library(COVID19)

Estadística Descriptiva Univariante

VARIABLES CUANTITATIVAS

Gráfico de líneas - Confirmados

library(ggplot2)

ggplot(data,aes(x=date,y=confirmed))+geom_line(lwd=1.2,lty=1,colour="sienna4",pch=1)+ggtitle("Meses vs Confirmados")+xlab("MESES")+ylab("CONFIRMADOS")

Diagrama de cajas - Confirmados

plot.new()
set.seed(1)


boxplot(data$confirmed,horizontal = T,lwd=2,col =rgb(0.4, 0, 0, alpha =0.9) ,border = c("chocolate1"),ylab="Meses",xlab="CONFIRMADOS",main= "Meses vs Confirmados",notch =F,outpch=21,outbg="coral",whiskcol="navyblue",whisklty=2,lty=1)
#agregamos una leyenda

legend("topright", legend = "Confirmados",fill = rgb(0.4, 0, 0, alpha =0.9),inset =c(0.03, 0.05),bg = "white")

Medidas estadísticas - Confirmados

library(moments)

#usamos na.rm=T para que excluya a los NA ya que si no lo hacemos retornara NA

summary(data$confirmed)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##       1  186421  249465  424417  586879 1628208      10
median(data$confirmed,na.rm = T)
## [1] 249465
mean(data$confirmed,na.rm = T)
## [1] 424417.2
sd(data$confirmed,na.rm = T)
## [1] 430190.7
kurtosis(data$confirmed,na.rm = T)
## [1] 3.835384
skewness(data$confirmed,na.rm = T)
## [1] 1.343058

Tabla de datos agrupados - Confirmados

library(fdth)
tablaConfirmados<-fdt(data$confirmed,breaks = "Sturges")
tablaConfirmados
##               Class limits   f   rf rf(%)  cf  cf(%)
##          [0.99,164449.899)  71 0.24 23.51  71  23.51
##    [164449.899,328898.808) 122 0.40 40.40 193  63.91
##    [328898.808,493347.717)  23 0.08  7.62 216  71.52
##    [493347.717,657796.626)  17 0.06  5.63 233  77.15
##    [657796.626,822245.535)  15 0.05  4.97 248  82.12
##    [822245.535,986694.444)  14 0.05  4.64 262  86.75
##   [986694.444,1151143.353)   9 0.03  2.98 271  89.74
##  [1151143.353,1315592.262)   8 0.03  2.65 279  92.38
##  [1315592.262,1480041.171)  10 0.03  3.31 289  95.70
##   [1480041.171,1644490.08)  13 0.04  4.30 302 100.00

Gráfico de línea - Fallecidos

ggplot(data,aes(x=date,y=deaths))+geom_line(lwd=1.2,lty=1,colour="darkmagenta",pch=1)+ggtitle("Meses vs Fallecidos")+xlab("MESES")+ylab("FALLECIDOS")

Diagrama de cajas - Fallecidos

boxplot(data$deaths,horizontal = T,lwd=2,col =rgb(1, 1, 1, alpha =0.9) ,border = c("blueviolet"),ylab="Meses",xlab="FALLECIDOS",main= "Meses vs Fallecidos",notch =F,outbg="coral2",whiskcol="navyblue",whisklty=2,lty=1)
#agregamos una leyenda

legend("topright", legend = "Fallecidos",fill = rgb(0.4, 0, 0.6, alpha =0.9),inset =c(0.03, 0.05),bg = "white")

Medidas estadísticas - Fallecidos

summary(data$deaths)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##       1   26550   28420   26322   30784   44668      41
median(data$deaths,na.rm = T)
## [1] 28420
mean(data$deaths,na.rm = T)
## [1] 26322.2
sd(data$deaths,na.rm = T)
## [1] 10319.85
kurtosis(data$deaths,na.rm = T)
## [1] 4.245504
skewness(data$deaths,na.rm = T)
## [1] -1.209106

Tabla de datos agrupados - Fallecidos

tablaMuertes<-fdt(data$deaths,breaks = "Sturges")
tablaMuertes
##           Class limits   f   rf rf(%)  cf  cf(%)
##        [0.99,4512.359)  24 0.09  8.86  24   8.86
##    [4512.359,9023.728)   5 0.02  1.85  29  10.70
##   [9023.728,13535.097)   6 0.02  2.21  35  12.92
##  [13535.097,18046.466)   7 0.03  2.58  42  15.50
##  [18046.466,22557.835)  11 0.04  4.06  53  19.56
##  [22557.835,27069.204)  19 0.07  7.01  72  26.57
##  [27069.204,31580.573) 139 0.51 51.29 211  77.86
##  [31580.573,36091.942)  33 0.12 12.18 244  90.04
##  [36091.942,40603.311)  11 0.04  4.06 255  94.10
##   [40603.311,45114.68)  16 0.06  5.90 271 100.00

Gráfico de línea - Recuperados

ggplot(data,aes(x=date,y=recovered))+geom_line(lwd=1.2,lty=1,colour="green",pch=1)+ggtitle("Meses vs Recuperados")+xlab("Meses")+ylab("RECUPERADOS")

Diagrama de cajas - Recuperados

boxplot(data$recovered,horizontal = T,lwd=2,col =rgb(0, 1, 0.2, alpha =0.9) ,border = c("black"),ylab="Meses",xlab="RECUPERADOS",main= "Meses vs Recuperados",notch =F,outpch=21,outbg="coral",whiskcol="navyblue",whisklty=2,lty=1)
#agregamos una leyenda

legend("topright", legend = "Recuperados",fill = rgb(0, 1, 0.2, alpha =0.9),inset =c(0.03, 0.05),bg = "white")

Medidas estadísticas - Recuperados

summary(data$recovered)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##       2  100249  150376  117154  150376  150376      24
median(data$recovered,na.rm = T)
## [1] 150376
mean(data$recovered,na.rm = T)
## [1] 117153.5
sd(data$recovered,na.rm = T)
## [1] 56564.85
kurtosis(data$recovered,na.rm = T)
## [1] 3.006226
skewness(data$recovered,na.rm = T)
## [1] -1.331491

Tabla de datos agrupados - Recuperados

tablaRecuperados<-fdt(data$confirmed,breaks = "Sturges")
tablaRecuperados
##               Class limits   f   rf rf(%)  cf  cf(%)
##          [0.99,164449.899)  71 0.24 23.51  71  23.51
##    [164449.899,328898.808) 122 0.40 40.40 193  63.91
##    [328898.808,493347.717)  23 0.08  7.62 216  71.52
##    [493347.717,657796.626)  17 0.06  5.63 233  77.15
##    [657796.626,822245.535)  15 0.05  4.97 248  82.12
##    [822245.535,986694.444)  14 0.05  4.64 262  86.75
##   [986694.444,1151143.353)   9 0.03  2.98 271  89.74
##  [1151143.353,1315592.262)   8 0.03  2.65 279  92.38
##  [1315592.262,1480041.171)  10 0.03  3.31 289  95.70
##   [1480041.171,1644490.08)  13 0.04  4.30 302 100.00

Gráfico de línea - pruebas

ggplot(data,aes(x=date,y=tests))+geom_line(lwd=1.2,lty=1.4)+ggtitle("Meses vs Pruebas")+xlab("MESES")+ylab("PRUEBAS")+geom_point(size=1.2,shape=21,fill="deeppink")

Diagramas de cajas - Pruebas

#boxplot test
boxplot(data$tests,horizontal = T,lwd=2,col =rgb(1, 0, 0, alpha = 0.4) ,border = c("black"),ylab="MESES",xlab="PRUEBAS REALIZADAS",main= "Meses vs Pruebas",notch = F,outpch=25,outbg="green",whiskcol="navyblue",whisklty=2,lty=1)
#agregamos una leyenda

legend("topright", legend = "Test",fill = rgb(1, 0, 0, alpha = 0.4),inset =c(0.03, 0.05),bg = "white")

Medidas estadisticas - pruebas

summary(data$tests)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
##   930230  3002024  4818214  6504198  9534508 17249511      280
median(data$tests,na.rm = T)
## [1] 4818214
mean(data$tests,na.rm = T)
## [1] 6504198
sd(data$tests,na.rm = T)
## [1] 4732402
kurtosis(data$tests,na.rm = T)
## [1] 2.537951
skewness(data$tests,na.rm = T)
## [1] 0.8258201

Tabla de datos agrupados - pruebas

tablaTests<-fdt(data$tests,breaks = "Sturges",style="rmarkdown")
tablaTests
##                Class limits  f   rf rf(%) cf  cf(%)
##      [920927.7,3671107.435) 12 0.38 37.50 12  37.50
##    [3671107.435,6421287.17)  8 0.25 25.00 20  62.50
##    [6421287.17,9171466.905)  3 0.09  9.38 23  71.88
##   [9171466.905,11921646.64)  4 0.12 12.50 27  84.38
##  [11921646.64,14671826.375)  2 0.06  6.25 29  90.62
##  [14671826.375,17422006.11)  3 0.09  9.38 32 100.00
library(dplyr)

VARIABLES CUALITATIVAS

#instalamos lubridate para cambiar de la fecha (yyy-mm-dd) a mes

library(lubridate)

#month() extrae los meses de date y los convierte en cadena de caracteres
mes=(month(data$date,label = T,abbr = F))
mes=data.frame(mes)

Diagrama de barras - Confirmados

library(ggplot2) #usado para las graficas de barras
library(scales)
library(wesanderson)
barraConfirmados=data.frame(data$confirmed,mes)
ggplot(barraConfirmados,aes(x=mes,y=data.confirmed))+labs(title = "Confirmados capturados por mes")+theme(plot.title = element_text(size = rel(2),colour = "orangered"))+ylab("Confirmados")+geom_bar(stat = "identity",position = "dodge")+scale_fill_manual(values = alpha(c("orange","blue"),1))+theme(axis.title.x = element_text(face = "bold",size = 10))

Diagrama de barras - Fallecidos

barraFallecidos=data.frame(data$deaths,mes)
ggplot(barraFallecidos,aes(mes,y=data.deaths))+labs(title = "Fallecidos capturados por mes")+theme(plot.title = element_text(size = rel(2),colour = "purple4"))+ylab("Fallecidos")+geom_bar(stat = "identity",position = "dodge")+scale_fill_manual(values = alpha(c("orange","blue"),1))+theme(axis.title.x = element_text(face = "bold",size = 10))

Diagrama de barras - Recuperados

barraRecuperados=data.frame(data$recovered,mes)

ggplot(barraRecuperados,aes(mes,y=data.recovered))+labs(title = "Recuperados capturados por mes")+theme(plot.title = element_text(size = rel(2),colour = "green3"))+ylab("Recuperados")+geom_bar(stat = "identity",position = "dodge")+scale_fill_manual(values = alpha(c("orange","blue"),1))+theme(axis.title.x = element_text(face = "bold",size = 10))

Gráfico de Confirmados

library(ggplot2)
library(wesanderson)

porcentajeConfirmados<-barraConfirmados %>% group_by(mes)%>% count()%>% ungroup()%>% mutate(percentage=`n`/sum(`n`)*100) 


ggplot(porcentajeConfirmados,aes(x=1,y=percentage,fill=mes))+geom_bar(stat ="identity")+geom_text(aes(label=paste0(round(percentage,1),"%")),position=position_stack(vjust=0.5))+coord_polar(theta = "y")+theme_void()+labs(title="Gráfico de Confirmados")+scale_fill_manual(values = topo.colors(11))

Gráfico de Fallecidos

library(ggplot2)
library(wesanderson)

porcentajeFallecidos<-barraFallecidos %>% group_by(mes)%>% count()%>% ungroup()%>% mutate(percentage=`n`/sum(`n`)*100) 


ggplot(porcentajeFallecidos,aes(x=1,y=percentage,fill=mes))+geom_bar(stat ="identity")+geom_text(aes(label=paste0(round(percentage,1),"%")),position=position_stack(vjust=0.5),color="white")+coord_polar(theta = "y")+theme_void()+labs(title="Gráfico de Fallecidos")

Gráfico de Recuperados

library(ggplot2)
library(wesanderson)

porcentajeRecuperadoss<-barraRecuperados %>% group_by(mes)%>% count()%>% ungroup()%>% mutate(percentage=`n`/sum(`n`)*100) 


ggplot(porcentajeRecuperadoss,aes(x=1,y=percentage,fill=mes))+geom_bar(stat ="identity")+geom_text(aes(label=paste0(round(percentage,1),"%")),position=position_stack(vjust=0.5))+coord_polar(theta = "y")+theme_void()+labs(title="Gráfico de Recuperados")+scale_fill_manual(values = topo.colors(15))

Estadística Descriptiva Bivariante o Multivariante

PARA LAS VARIABLES CUALITATIVAS

#bivariante o multivariante

#Cruce de variables cualitativa vs cada cuantitativa

datos=data
datosuevos<-data.frame(datos,mes) #une dos columnas

Diagrama de caja de Confirmados segmentado por Meses

boxplot(data$confirmed~datosuevos$mes,horizontal = T,
        lwd=2,
        col =rgb(0.8, 0.2, 0, alpha =0.9) ,
        border = c("black"),
        ylab="Meses",
        xlab="CONFIRMADOS",
        main= "Meses vs Confirmados",
        notch =F,
        outpch=21,
        outbg="coral",
        whiskcol="navyblue",
        whisklty=2,lty=1)

Diagrama de caja de Fallecidos segmentado por Meses

boxplot(data$deaths~datosuevos$mes,horizontal = F, # Horizontal o vertical
        lwd = 1, # Lines width
        col = rgb(0.6, 0, 0.6, alpha =0.9), # Color
        xlab = "MESES",  # Etiqueta eje X
        ylab = "RECUPERADOS",  # Etiqueta eje Y
        main = "Meses vs Recuperados", # Título
        notch = F, # Añade intervalos de confianza para la mediana
        outbg = "green3",   # Color de los datos atípicos
        whiskcol = "blue", # Color de los bigotes
        whisklty = 2,      # Tipo de línea para los bigotes
        lty = 1) # Tipo de línea (caja y mediana)))

Diagrama de caja de Recuperados segmentado por Meses

#mDiagrama de caja de Recuperados segmentado por Meses

boxplot(data$recovered~datosuevos$mes,horizontal = F, # Horizontal o vertical
        lwd = 1, # Lines width
        col = rgb(0, 1, 0.2, alpha =0.9), # Color
        xlab = "MESES",  # Etiqueta eje X
        ylab = "Recuperados",  # Etiqueta eje Y
        main = "Meses vs Recuperados", # Título
        notch = F, # Añade intervalos de confianza para la mediana
        outbg = "green3",   # Color de los datos atípicos
        whiskcol = "blue", # Color de los bigotes
        whisklty = 2,      # Tipo de línea para los bigotes
        lty = 1) # Tipo de línea (caja y mediana)))

Diagrama de caja de Pruebas segmentado por Meses

boxplot(data$tests~datosuevos$mes,horizontal = F,lwd=2,col =rgb(1, 0, 0, alpha = 0.4) ,border = c("black"),ylab="PRUEBAS REALIZADAS",xlab="MESES",main= "Meses vs Pruebas",notch = F,outpch=25,outbg="green",whiskcol="navyblue",whisklty=2,lty=1)

#agregamos una leyenda

legend("topright", legend = "Test",fill = rgb(1, 0, 0, alpha = 0.4),inset =c(0.03, 0.05),bg = "white")

PARA LAS VARIABLES CUANTITATIVAS

#tabla de datos agrupados - pruebas 
#matriz de correlacion de confirmados

datos=data
#reemplazamos los NA por a media para que no se pierda los datos

datos$confirmed.mean=ifelse(is.na(datos$confirmed),mean(datos$confirmed,na.rm = T),datos$confirmed)

datos$deaths.mean=ifelse(is.na(datos$deaths),mean(datos$deaths,na.rm = T),datos$deaths)

datos$recovered.mean=ifelse(is.na(datos$recovered),mean(datos$recovered,na.rm = T),datos$recovered)

datos$tests.mean=ifelse(is.na(datos$tests),mean(datos$tests,na.rm = T),datos$tests)

Matriz de correlación

cor(datos[,c(36,37,38,39)])
##                confirmed.mean deaths.mean recovered.mean tests.mean
## confirmed.mean      1.0000000   0.7112633     0.51503027 0.29216254
## deaths.mean         0.7112633   1.0000000     0.78535933 0.14901733
## recovered.mean      0.5150303   0.7853593     1.00000000 0.04546499
## tests.mean          0.2921625   0.1490173     0.04546499 1.00000000

Matriz de covarianzas

#matriz de covarianzas
cov(datos[,c(36,37,38,39)])
##                confirmed.mean deaths.mean recovered.mean   tests.mean
## confirmed.mean   179113457649  2894474453    11844160001 1.847442e+11
## deaths.mean        2894474453    92459266      410346780 2.140890e+09
## recovered.mean    11844160001   410346780     2952669273 3.691194e+09
## tests.mean       184744247241  2140889733     3691193508 2.232362e+12

Matriz gráfica de correlación

library(corrplot)
#instalamos corrplot para grafica matriz de correlacion

#install.packages("corrplot")
#renombrar una variable, instalamos reshape

#install.packages("reshape")

require(reshape)
matrizcorre=data.frame(cor(datos[,c(36,37,38,39)]))

matrizcorre=rename(matrizcorre,c(confirmed.mean="Confirmados",recovered.mean="Recuperados",tests.mean="Pruebas",deaths.mean="Fallecidos"))

corrplot.mixed(cor(matrizcorre),lower = "circle",upper = "number")
mtext("Matriz Gráfica de correlación ",at=2.5, line=3, cex=1.5)

Matriz de diagramas de dispersión

tabla=data.frame(data$confirmed,data$recovered,data$tests,data$deaths) 

#renombrar una variable, instalamos reshape
#install.packages("reshape")
require(reshape)
tabla=rename(datos,c(confirmed.mean="Confirmados",recovered.mean="Recuperados",tests.mean="Pruebas",deaths.mean="Fallecidos"))

 # de confirmados, fallecidos,
#pruebas y recuperados

plot(tabla[,c(36,37,38,39)],main="Diagramas de dispersión ",col=tabla$confirmed,pch=19)