Al tener una base de datos se requiere resumirlos en una tabla o en indicadores que faciliten su análisis, dependiendo el tipo de variable ( cualitativas o cuantitativas) la tabla puede tener diferentes columnas.
En el caso de los indicadores las variables cualitativas se les resumen en el nivel con mayor frecuencias a la que se le llama MODA
Las variables cuantitativas tiene un gran número de indicadores que se dividien en tres categorias:
A continuación se indica como realizar el proceso utilizando RStudio, bajo el supuesto que se cuenta con una base de datos que se ha importado en RStudio.
Resumirlos datos en tablas facilita su análisis y también su representación gráfica. Varios gráficos están basados en tablas de frecuencia como veremos en la unidad 1.3
Antes de empezar vamos a cargar la base construida en el código anterior y las dos bases de Dataset de R
Colombia=readRDS(file = "data/Colombia.RDS")
iris=data(iris)
library(readr)
ventas <- read_csv("data/ventas.csv")
Iniciaremos con la construcción de tablas para variables cualitativas en escala nominal. Recordemos que las variables medidas en esta escala no presentan orden especial y en algunos casos son ordenadas de mayor a menor frecuencia
Utilizaremos en este caso la función table()
table(ventas$Metodo_Pago)
American Express Discover MasterCard Star Card
4 8 28 140
Visa
20
El resultado corresponde a un conteo de cada uno de los valores de la variable. En caso de que se requiera calcular la proporción que corresponde cada caso utilizamos la función : prop.table() y se la aplicamos a la tabla anterior
t1=table(ventas$Metodo_Pago)
prop.table(t1)
American Express Discover MasterCard Star Card
0.02 0.04 0.14 0.70
Visa
0.10
Si utilizamos la función freq del paquete summarytools, la salida es una tabla más elaborada
summarytools::freq(ventas$Metodo_Pago, cumul = F)
Frequencies
Freq % Valid % Total
---------------------- ------ --------- ---------
American Express 4 2.00 2.00
Discover 8 4.00 4.00
MasterCard 28 14.00 14.00
Star Card 140 70.00 70.00
Visa 20 10.00 10.00
<NA> 0 0.00
Total 200 100.00 100.00
Para el caso de las variables cuantitativas que presentan muchos valores difentes construir una tabla como las anteriores no tiene sentido, pues salen muchas categorias probablemente con frecuencia uno.
En este caso es necesario construir rangos que den sentido y que permitan resumir la información para una facil interpretación.
El ejemplo a continuación da cuenta de ello. Supongamos que queremos analizar la variable edad y para ello debemos establecer los limites y cuantos intervalo vamos aconstruir. En este caso tenemos tres alternativas posible_
En el caso de la variable Edad procederemos asi:
Consultados los ciclos de la vida tenemos: + Primera Infancia (0-5 años) + Infancia (6 - 11 años) + Adolescencia (12 - 17 años) + Juventud (18 - 26 años) + Adultez (27- 59 años) + Persona Mayor (60 años o mas) envejecimiento y vejez
Colombia$edadR[Colombia$edad<=5]="1. (0 a 5 años]"
Colombia$edadR[Colombia$edad>5 & Colombia$edad<=11]="2. (5 a 11 años]"
Colombia$edadR[Colombia$edad>11 & Colombia$edad<=17]="3. (11 a 17 años]"
Colombia$edadR[Colombia$edad>17 & Colombia$edad<=26]="4. (17 a 26 años]"
Colombia$edadR[Colombia$edad>26 & Colombia$edad<=59]="5. (26 a 59 años]"
Colombia$edadR[Colombia$edad>59]="6. (Más de 59 años]"
summarytools::freq(Colombia$edadR)
Frequencies
Freq % Valid % Valid Cum. % Total % Total Cum.
------------------------- --------- --------- -------------- --------- --------------
1. (0 a 5 años] 85231 1.72 1.72 1.72 1.72
2. (5 a 11 años] 133173 2.69 4.41 2.69 4.41
3. (11 a 17 años] 210175 4.24 8.65 4.24 8.65
4. (17 a 26 años] 812872 16.40 25.04 16.40 25.04
5. (26 a 59 años] 2994915 60.41 85.46 60.41 85.46
6. (Más de 59 años] 720911 14.54 100.00 14.54 100.00
<NA> 0 0.00 100.00
Total 4957277 100.00 100.00 100.00 100.00
Esta tabla nos permite identificar los rangos de mayor frecuencia
Tambien podemo realizar una tabla sin tener que realizar la recodificación. Esto se logra con la función hist()
h=hist(Colombia$edad)
h$breaks # puntos de corte
[1] 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90
[20] 95 100 105 110 115
h$counts # frecuencias absolutas en cada intervalo
[1] 85231 106425 154254 276652 500172 600444 565521 527664 438458 373003
[11] 353469 311391 225137 155264 110274 76346 52419 29604 12119 2947
[21] 425 49 9
h$density # densidad en cada intervalo
[1] 3.438622e-03 4.293688e-03 6.223336e-03 1.116145e-02 2.017930e-02
[6] 2.422475e-02 2.281579e-02 2.128846e-02 1.768947e-02 1.504871e-02
[11] 1.426061e-02 1.256299e-02 9.083091e-03 6.264084e-03 4.448975e-03
[16] 3.080159e-03 2.114830e-03 1.194365e-03 4.889378e-04 1.188959e-04
[21] 1.714651e-05 1.976892e-06 3.631026e-07
Seria de interés tambien construir una tabla con las edades de las personas fallecidas por covid en Colombia, para lo cual debemos primero seleccionar la base de datos de las fallecidas y luego en ello construir la tabla
En este caso vamos a seleccionar los rangos de edad y luego construimos la tabla
Fallecidos=subset(Colombia, estado=="fallecido")
breaks=seq(0,110, by=10)
Edad.fallecidos=cut(Fallecidos$edad, breaks)
summarytools::freq(Edad.fallecidos)
Frequencies
Freq % Valid % Valid Cum. % Total % Total Cum.
--------------- -------- --------- -------------- --------- --------------
(0,10] 144 0.11 0.11 0.11 0.11
(10,20] 231 0.18 0.30 0.18 0.30
(20,30] 1683 1.33 1.63 1.33 1.63
(30,40] 4802 3.80 5.43 3.80 5.43
(40,50] 10411 8.24 13.67 8.24 13.67
(50,60] 20589 16.30 29.98 16.30 29.98
(60,70] 30534 24.18 54.15 24.18 54.15
(70,80] 30803 24.39 78.54 24.39 78.54
(80,90] 21742 17.21 95.76 17.21 95.76
(90,100] 5206 4.12 99.88 4.12 99.88
(100,110] 154 0.12 100.00 0.12 100.00
<NA> 0 0.00 100.00
Total 126299 100.00 100.00 100.00 100.00
O tambien
h=hist(Colombia$edad, breaks = c(0,4.9, 11.9,17.9,26.9, 59.9,115))
# Con los valores contenidos en el objeto h construimos la tabla
LI=h$breaks[1:6]
LS=h$breaks[2:7]
FreAbs=h$counts
FreRel=round(h$counts/sum(h$counts),4)
FreAbAc=cumsum(FreAbs)
FreRAc=cumsum(FreRel)
data.frame(LI,LS,FreAbs,FreRel, FreAbAc, FreRAc)
LI LS FreAbs FreRel FreAbAc FreRAc
1 0.0 4.9 67381 0.0136 67381 0.0136
2 4.9 11.9 151023 0.0305 218404 0.0441
3 11.9 17.9 210175 0.0424 428579 0.0865
4 17.9 26.9 812872 0.1640 1241451 0.2505
5 26.9 59.9 2994915 0.6041 4236366 0.8546
6 59.9 115.0 720911 0.1454 4957277 1.0000
table(Colombia$ubicacion, Colombia$estado)
fallecido grave leve moderado
casa 0 0 4803358 0
fallecido 126299 0 0 0
hospital 0 0 0 7950
hospital uci 0 993 0 0
tabla1=table(Colombia$ubicacion, Colombia$estado)
prop.table(tabla1)
fallecido grave leve moderado
casa 0.0000000000 0.0000000000 0.9726153161 0.0000000000
fallecido 0.0255738468 0.0000000000 0.0000000000 0.0000000000
hospital 0.0000000000 0.0000000000 0.0000000000 0.0016097680
hospital uci 0.0000000000 0.0002010691 0.0000000000 0.0000000000
Un indicador es un numero que resumen o representa un grupo de valores. El poder resumir una gran cantidad de valores en unos pocos, facilita el realizar un análisis de ellos
En el caso de las variables cualitativas en escala nominal, se pueden representar por el valor mas frecuente. A este valor se le conoce como Moda y lo podemos ver claramente en una tabla de frecuencias
En el caso de las variables cuantitativas debemos de construirlos
summary(Colombia$edad)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.0 26.0 37.0 39.5 52.0 114.0
psych::describe(Colombia$edad)
vars n mean sd median trimmed mad min max range skew kurtosis
X1 1 4957277 39.5 17.94 37 38.72 17.79 1 114 113 0.41 -0.17
se
X1 0.01
psych::describe.by(Colombia$edad, group = Colombia$ubicacion)
Descriptive statistics by group
group: casa
vars n mean sd median trimmed mad min max range skew kurtosis
X1 1 4803358 38.64 17.3 37 37.96 17.79 1 114 113 0.39 -0.16
se
X1 0.01
------------------------------------------------------------
group: fallecido
vars n mean sd median trimmed mad min max range skew kurtosis
X1 1 126299 67.56 15.28 69 68.42 14.83 1 110 109 -0.53 0.15
se
X1 0.04
------------------------------------------------------------
group: hospital
vars n mean sd median trimmed mad min max range skew kurtosis se
X1 1 7950 47.8 22.08 49 48.62 22.24 1 100 99 -0.26 -0.52 0.25
------------------------------------------------------------
group: hospital uci
vars n mean sd median trimmed mad min max range skew kurtosis se
X1 1 993 51.94 20.08 54 53.25 20.76 1 98 97 -0.54 -0.18 0.64
summarytools::descr(Colombia$edad)
Descriptive Statistics
value
N: 4957277
value
----------------- ------------
Mean 39.50
Std.Dev 17.94
Min 1.00
Q1 26.00
Median 37.00
Q3 52.00
Max 114.00
MAD 17.79
IQR 26.00
CV 0.45
Skewness 0.41
SE.Skewness 0.00
Kurtosis -0.17
N.Valid 4957277.00
Pct.Valid 100.00
YA ESTAMOS LISTOS PARA INTERPRETAR LA INFORMACION
A través de RStudio se pueden construir documentos en formatos PDF, DOC, HTML entre otros. En esta ocasión se describe como realizar un informe utilizando para ello un archivo Rmd en RStudio.
Inicialmente en RStudio abrimos un nuevo archivo en formato Rmd
File/New File/ R Markdown…
Al hacerlo se despliega la siguiente ventana
En este caso seleccionamos PDF para abrir una plantilla que nos ofrece el programa para orientar nuestros primeros pasos
---
title: "Untitled"
author: "dgonzalez"
date: "3/8/2021"
output: pdf_document
---
El primer bloque contiene información sobre el titulo del documento, el autor, la fecha y el formato de salida
Podemos tambien abregar un subtitulo: subtitle: “Subtitulo”
Despues de este bloque encontramos el cuerpo del documento que puede contener texto escrito de manera normal, código html, código Markdown y LaTeX
Algunas de las principales instrucciones para empezar son
# Título 1
## Título 2
### Título 3
#### Título 4
##### Título 5
##### Títuñlo 6
+ Punto 1
+ Punto 2
+ Punto 3
+ Punto 3.1
+ Punto 3.2
Tambien se pueden hacer numerada
1. Punto 1
2. Punto 2
3. Punto 3
Permite tambien escribir ecuaciones en codigo LaTeX, como por ejemplo
$$\dfrac{1}{n}\sum_{i=1}^{n} x_{i} = \bar{x}$$
\[\dfrac{1}{n}\sum_{i=1}^{n} x_{i} = \bar{x}\]
Una de sus principales ventajas es el de permitir correr código R y de otros lenguajes como Phyton, SQL, entre otros
Para ello utilizamos el botón +c ubicado en la barra superior de la ventana Source
Dentro de este bloque podemos correr codigo R y asi ubicar dentro del documento tablas, indicadores o gráficos
En la siguiente página pueden encotrar resumen de varios paquetes de R dentro de los cuales está RMardown