Este trabajo muestra los principales indicadores estadísticos de la pandemia hasta el día 5 de diciembre de 2021 en México y sus comandos en R. La base de datos tiene una extensión de 7 columnas por 684 filas, se presentan los encabezados, significado y tipo de variable. La base de datos original se extrajo de la Universidad Johns Hopkins: covidmx es el dataset completo dia es el consecutivo de 1 hasta 684; fecha es la fecha en que ocurrió; contagios es la cantidad de contagios; muertes cantidad de muertes; day = dia de la semana, lunes, martes…; month = mes; year = año.
Es necesario abrir la librería haven, install.packages(“haven”); que es donde se encuentra el comando read_sav() para leer data en SPSS, View() presenta la tabla de resultados.head() primeros 6 datos y tail() ultimos datos, nótese que para este caso se exponen 10.Es requisito conocer la ubicación del archivo que para este caso en particular, está en el directorio de R.
library(haven)
covidmx <- read_sav("covidmx.sav")
View(covidmx)
# primeros 6 datos
head(covidmx)
## # A tibble: 6 x 7
## dia fecha contagios muertes day month year
## <dbl> <date> <dbl> <dbl> <chr> <chr> <dbl>
## 1 1 2020-01-22 0 0 miercoles enero 2020
## 2 2 2020-01-23 0 0 jueves enero 2020
## 3 3 2020-01-24 0 0 viernes enero 2020
## 4 4 2020-01-25 0 0 sabado enero 2020
## 5 5 2020-01-26 0 0 domingo enero 2020
## 6 6 2020-01-27 0 0 lunes enero 2020
# últimos 10 datos
tail(covidmx,10)
## # A tibble: 10 x 7
## dia fecha contagios muertes day month year
## <dbl> <date> <dbl> <dbl> <chr> <chr> <dbl>
## 1 675 2021-11-26 3445 165 viernes noviembr 2021
## 2 676 2021-11-27 0 0 sabado noviembr 2021
## 3 677 2021-11-28 2956 245 domingo noviembr 2021
## 4 678 2021-11-29 1774 91 lunes noviembr 2021
## 5 679 2021-11-30 0 0 martes noviembr 2021
## 6 680 2021-12-01 6652 478 miercoles diciembr 2021
## 7 681 2021-12-02 0 0 jueves diciembr 2021
## 8 682 2021-12-03 6234 476 viernes diciembr 2021
## 9 683 2021-12-04 0 0 sabado diciembr 2021
## 10 684 2021-12-05 3811 299 domingo diciembr 2021
Nombre de las variables (encabezados) names():
names(covidmx)
## [1] "dia" "fecha" "contagios" "muertes" "day" "month"
## [7] "year"
A través de class() ejemplo de 1 variable en 1 variable:
class(covidmx)
## [1] "tbl_df" "tbl" "data.frame"
class(covidmx$contagios)
## [1] "numeric"
class(covidmx$fecha)
## [1] "Date"
class(covidmx$day)
## [1] "character"
str() combina varios elementos de todas las variables a la vez:
str(covidmx)
## tibble [684 x 7] (S3: tbl_df/tbl/data.frame)
## $ dia : num [1:684] 1 2 3 4 5 6 7 8 9 10 ...
## ..- attr(*, "label")= chr "dia"
## ..- attr(*, "format.spss")= chr "F8.0"
## $ fecha : Date[1:684], format: "2020-01-22" "2020-01-23" ...
## $ contagios: num [1:684] 0 0 0 0 0 0 0 0 0 0 ...
## ..- attr(*, "label")= chr "contagios"
## ..- attr(*, "format.spss")= chr "F5.0"
## ..- attr(*, "display_width")= int 12
## $ muertes : num [1:684] 0 0 0 0 0 0 0 0 0 0 ...
## ..- attr(*, "label")= chr "muertes"
## ..- attr(*, "format.spss")= chr "F8.0"
## $ day : chr [1:684] "miercoles" "jueves" "viernes" "sabado" ...
## ..- attr(*, "label")= chr "day"
## ..- attr(*, "format.spss")= chr "A9"
## $ month : chr [1:684] "enero" "enero" "enero" "enero" ...
## ..- attr(*, "label")= chr "month"
## ..- attr(*, "format.spss")= chr "A8"
## $ year : num [1:684] 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 ...
## ..- attr(*, "label")= chr "year"
## ..- attr(*, "format.spss")= chr "F8.0"
Mostrar una columna específica covidmx[x,], una fila específica covidmx[,y], un datpoint covidmx[x,y] o varios datos covidmx[x1:x2,y1:y2]:
# Fila 101 y todas las columnas
covidmx[101,]
## # A tibble: 1 x 7
## dia fecha contagios muertes day month year
## <dbl> <date> <dbl> <dbl> <chr> <chr> <dbl>
## 1 101 2020-05-01 1515 113 viernes mayo 2020
# Todas las filas y columna 3 = covidmx$contagios
covidmx[,3]
## # A tibble: 684 x 1
## contagios
## <dbl>
## 1 0
## 2 0
## 3 0
## 4 0
## 5 0
## 6 0
## 7 0
## 8 0
## 9 0
## 10 0
## # ... with 674 more rows
# Un punto específico (contagios el día 101, columna 3 = contagios)
covidmx[101,3]
## # A tibble: 1 x 1
## contagios
## <dbl>
## 1 1515
# Varios datos (contagios y muertes de los días 101 al 110)
covidmx[101:110,2:4]
## # A tibble: 10 x 3
## fecha contagios muertes
## <date> <dbl> <dbl>
## 1 2020-05-01 1515 113
## 2 2020-05-02 1349 89
## 3 2020-05-03 1383 93
## 4 2020-05-04 1434 117
## 5 2020-05-05 1120 236
## 6 2020-05-06 1609 197
## 7 2020-05-07 1982 257
## 8 2020-05-08 1906 199
## 9 2020-05-09 1938 193
## 10 2020-05-10 1562 112
Para hacer un poco más interesante se toman únicamente los valores específicos:
# Contagios > 0
covidmx[covidmx$contagios>0,3]
## # A tibble: 618 x 1
## contagios
## <dbl>
## 1 1
## 2 3
## 3 1
## 4 1
## 5 1
## 6 1
## 7 4
## 8 14
## 9 15
## 10 12
## # ... with 608 more rows
# Muertes = 0, obsérvese que la igualdad condicional es con doble =
covidmx[covidmx$muertes==0,4]
## # A tibble: 81 x 1
## muertes
## <dbl>
## 1 0
## 2 0
## 3 0
## 4 0
## 5 0
## 6 0
## 7 0
## 8 0
## 9 0
## 10 0
## # ... with 71 more rows
Para conocer el total se utiliza sum() y para la extensión length(), ncol() y nrow(), el data set es covidmx y la extensión $ lo que hace es desplegar la columna correspondiente del data.frame que en este caso es covidmx y las columnas son contagios y muertes:
# Total de contagios
sum(covidmx$contagios)
## [1] 3901263
# Total de muertes
sum(covidmx$muertes)
## [1] 295203
length(covidmx)
## [1] 7
# Número de columnas
ncol(covidmx)
## [1] 7
# Número de renglones
nrow(covidmx)
## [1] 684
Máximo max(), Mínimo min() y Rango range() que retorna el máximo y el mínimo a la vez:
# Máximo de contagios
max(covidmx$contagios)
## [1] 32244
# Máximo de muertes
max(covidmx$muertes)
## [1] 4272
# Mínimo de contagios
min(covidmx$contagios)
## [1] 0
# Mínimo de muertes
min(covidmx$muertes)
## [1] 0
# Reporta el Máximo y Mínimo de contagios
range(covidmx$contagios)
## [1] 0 32244
# Reporta el Máximo y Mínimo de muertes
range(covidmx$muertes)
## [1] 0 4272
Media de datos numéricos mean() y media de fechas mean.Date():
# Media de contagios
mean(covidmx$contagios)
## [1] 5703.601
# Media de muertes
mean(covidmx$muertes)
## [1] 431.5833
# Fecha promedio (es necesario que sea class = date)
mean.Date(covidmx$fecha)
## [1] "2020-12-28"
Mediana median():
# Mediana de contagios
median(covidmx$contagios)
## [1] 4684
# Mediana de muertes
median(covidmx$muertes)
## [1] 356.5
La Moda no tiene función específica en R, por lo tanto se requiere del apoyo de librería modeest install.packages(“modeest”), una vez instalada es necesario activarla modeest:
library(modeest)
# Moda de contagios
mlv(covidmx$contagios, method = "mfv")
## [1] 0
# Moda de muertes
mlv(covidmx$muertes, method = "mfv")
## [1] 0
R estima de manera directa la Varianza y desviación estándar muestral Varianza Muestral
# Varianza muestral de contagios (entre n-1)
var(covidmx$contagios)
## [1] 29263299
# Varianza muestral de muertes (entre n-1)
var(covidmx$muertes)
## [1] 166809.5
Desviación estándar Muestral
# Desviación estándar muestral de contagios (raiz de varianza muestral) de forma directa
sd(covidmx$contagios)
## [1] 5409.556
# Desviación estándar muestral de muertes (raiz de varianza muestral) de forma directa
sd(covidmx$muertes)
## [1] 408.4232
Desviación estándar mediante raiz de varianza muestral
sqrt(var(covidmx$contagios))
## [1] 5409.556
sqrt(var(covidmx$muertes))
## [1] 408.4232
R NO estima de manera directa la Varianza y desviación estándar poblacional, por lo tanto, es neceario multiplicar por (N-1)/N Varianza Poblacional
# Varianza poblacional de contagios (entre N)
var(covidmx$contagios)*(length(covidmx$contagios)-1)/length(covidmx$contagios)
## [1] 29220516
# Varianza poblacional de muertes (entre N)
var(covidmx$muertes)*(length(covidmx$muertes)-1)/length(covidmx$muertes)
## [1] 166565.6
Desviación estándar mediante raiz de varianza poblacional
# Desviación estándar poblacional de contagios (entre N)
sqrt(var(covidmx$contagios)*(length(covidmx$contagios)-1)/length(covidmx$contagios))
## [1] 5405.6
# Desviación estándar poblacional de muertes (entre N)
sqrt(var(covidmx$muertes)*(length(covidmx$muertes)-1)/length(covidmx$muertes))
## [1] 408.1245
R estima de manera directa la coVarianza y correlación muestral Covarianza Muestral
# Covarianza muestral entre contagios y muertes (dividido entre n-1)
cov(covidmx$contagios,covidmx$muertes)
## [1] 1536888
Correlación Muestral
# Correlación muestral entre contagios y muertes (dividido entre n-1)
cor(covidmx$contagios,covidmx$muertes)
## [1] 0.6956172
R arroja un resummen de datos numéricos a través de summary()
# Resumen de estadísticos de contagios
summary(covidmx$contagios)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0 1904 4684 5704 6915 32244
# Resumen de estadísticos de muertes
summary(covidmx$muertes)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0 145.0 356.5 431.6 635.0 4272.0
R realiza regresión lineal mediante la función lm(formula = y~x, data = )
# Regresión lineal, las muertes explicadas por los contagios
lm(formula = covidmx$muertes~covidmx$contagios, data = covidmx)
##
## Call:
## lm(formula = covidmx$muertes ~ covidmx$contagios, data = covidmx)
##
## Coefficients:
## (Intercept) covidmx$contagios
## 132.03412 0.05252
R grafica con plot(x,y) y abline()
# Gráfico
plot(covidmx$contagios,covidmx$muertes)
# Se agrega la línea de tendencia abline()
abline(lm(formula = covidmx$muertes~covidmx$contagios),col="red")