PARCIAL 2 ESTADÍSTICA

2022-11-01

Santiago Rodriguez y Mariana Suaza

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6      ✔ purrr   0.3.4 
## ✔ tibble  3.1.8      ✔ dplyr   1.0.10
## ✔ tidyr   1.2.1      ✔ stringr 1.4.1 
## ✔ readr   2.1.3      ✔ forcats 0.5.2 
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library(readr)
library(dplyr)
library(ggplot2)
library(knitr)
library(readr)
library(e1071)
library(rmdformats)

Análisis exploratorio de los datos.

cre <- read_delim("C:/Users/maria/Downloads/creditos.txt", 
    delim = "\t", escape_double = FALSE, 
    trim_ws = TRUE)
## Rows: 81536 Columns: 21
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr  (4): PRODS_SOLIC, SEXO, NIVEL_ESTUDIOS, TIPO_VIVI
## dbl (17): AAAAMM_SOL, ESTRATOS, MONTO_TOTAL_OTORGADO, INGRESOS_DECLARADOS_TO...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
cre %>% 
  select(INGRESOS_DECLARADOS_TOTA , SEXO , MONTO_TOTAL_OTORGADO , ESTRATO , NIVEL_ESTUDIOS ) -> cre2
  
any(is.na(cre2))
## [1] TRUE
cre2[complete.cases(cre2) , ] -> cre3
 
cre3 
## # A tibble: 81,527 × 5
##    INGRESOS_DECLARADOS_TOTA SEXO  MONTO_TOTAL_OTORGADO ESTRATO NIVEL_ESTUDIOS
##                       <dbl> <chr>                <dbl>   <dbl> <chr>         
##  1                 15000000 H                365000000       6 PRF           
##  2                  7800000 H                188000000       5 PRF           
##  3                 13910000 H                 70000000       3 PRF           
##  4                   956000 M                  5500000       3 TEC           
##  5                  8000000 H                147600000       3 PRF           
##  6                 13044000 H                268000000       4 PRF           
##  7                  7729641 H                131474000       4 UNV           
##  8                 16000000 H                112000000       4 PRF           
##  9                  3715528 M                163500000       1 UNV           
## 10                  6342000 M                122000000       4 POS           
## # … with 81,517 more rows
  rename(cre3, INGRESOS=INGRESOS_DECLARADOS_TOTA, SEXO=SEXO, MONTO=MONTO_TOTAL_OTORGADO, ESTUDIOS=NIVEL_ESTUDIOS, ESTRATO=ESTRATO) -> cre4
  
  cre4$INGRESOS/1000000 -> cre4$INGRESOS
  cre4$MONTO/1000000 -> cre4$MONTO
cre4 %>% 
  filter(MONTO < 100 & INGRESOS < 25) -> CREDITO

attach(CREDITO)

##3. Hacer una tabla de frecuencias relativas para la variable género.**

table(SEXO) -> M
round(prop.table(M), 3) -> M1
kable(M1,
      col.names = c("SEXO", "FRECUENCIA"))
SEXO FRECUENCIA
H 0.587
M 0.413

4.Hacer una tabla de frecuencias relativas y un gráfico de barras para el nivel educativo de los hombres.

CREDITO %>% 
  
  filter(SEXO=="H") -> P

table(P$ESTUDIOS)->P1
round(prop.table(P1), 3)->P2
kable(P2)
Var1 Freq
BAS 0.141
DOC 0.005
MED 0.210
NOG 0.050
POS 0.070
PRF 0.149
TEC 0.135
UNV 0.241
barplot(P2, main = "NIVEL DE ESTUDIOS HOMBRES", 
        xlab = "NIVEL DE EDUCACIÓN", 
        ylab = "FRECUENCIA RELATIVA", 
        col = c("#68228B" , "#9A32CD" , "#B23AEE" , 
                "#BF3EFF" , "#9932CC" , "#7A378B" , 
                "#B452CD" , "#D15FEE"),
        ylim = c(0,0.26),
        )->P4
text(P4, P2+0.01,labels = P2)

5. Hacer una tabla de frecuencias relativas y un gráfico de barras para el estrato de los hombres.

CREDITO %>% 
  filter(SEXO=="H")->L

table(L$ESTRATO)->L1
round(prop.table(L1), 3)->L2
kable(L2)
Var1 Freq
0 0.003
1 0.063
2 0.267
3 0.367
4 0.167
5 0.081
6 0.051
barplot(L2, main = "ESTRATO HOMBRES", 
        xlab = "ESTRATO", 
        ylab = "FRECUENCIA RELATIVA", 
        col = c("#68228B" , "#9A32CD" , "#B23AEE" , 
                "#BF3EFF" , "#9932CC" , "#7A378B" , 
                "#B452CD" , "#D15FEE"),
        ylim = c(0, 0.4)
        )->L4
text(L4, L2+0.02,labels = L2)

6. Hacer un histograma y un diagramama de caja para el ingreso de los hombres

CREDITO %>%
  filter(SEXO=="H")->D

boxplot(D$INGRESOS,
        main = "INGRESOS HOMBRES",
        ylab="NIVEL DE INGRESOS",
        col = "#CD1076")

hist(D$INGRESOS,
     main = "INGRESOS HOMBRES",
     ylab = "FRECUENCIA",
     xlab = "NIVEL DE INGRESOS",
     col = c("#D15FEE"))

7. Repetir los númerales 4 a 6 para las mujeres.

CREDITO %>% 
  filter(SEXO=="M") -> R

table(R$ESTUDIOS)->R1
round(prop.table(R1), 3)->R2
kable(R2)
Var1 Freq
BAS 0.084
DOC 0.005
MED 0.074
NOG 0.049
POS 0.095
PRF 0.191
TEC 0.155
UNV 0.348
barplot(R2, main = "NIVEL DE ESTUDIOS MUJERES", 
        xlab = "NIVEL DE EDUCACIÓN", 
        ylab = "FRECUENCIA RELATIVA",
        col = c("#104E8B", "#1874CD", "#1C86EE","#1E90FF","#1E90FF",
                "#009ACD","#00B2EE","#00BFFF"),
        ylim = c(0, 0.4)
        )->R4
text(R4, R2+0.02,labels = R2)

CREDITO %>% 
  filter(SEXO=="M")->T

table(T$ESTRATO)->T1
round(prop.table(T1), 3)->T2
kable(T2)
Var1 Freq
0 0.004
1 0.028
2 0.177
3 0.413
4 0.211
5 0.100
6 0.068
barplot(T2, main = "ESTRATO MUJERES", 
        xlab = "ESTRATO", 
        ylab = "FRECUENCIA RELATIVA",
        col =  c("#104E8B", "#1874CD", "#1C86EE","#1E90FF","#1E90FF",
                 "#009ACD","#00B2EE","#00BFFF"),
        ylim = c(0, 0.5)
        )->T4
text(T4, T2+0.02,labels = T2)

CREDITO %>% 
  filter(SEXO=="M")->N

boxplot(N$INGRESOS,
        main = "INGRESOS MUJERES",
        ylab="NIVEL DE INGRESOS",
        col = "#009ACD")

hist(N$INGRESOS,
     main = "INGRESOS MUJERES",
     ylab = "FRECUENCIA",
     xlab = "NIVEL DE INGRESOS",
     col =  c("#104E8B"))

8. Completar la siguiente tabla acerca de los ingresos para hombres y mujeres:

Mujeres
min(N$INGRESOS)
## [1] 0.016482
max(N$INGRESOS)
## [1] 24.99055
quantile(N$INGRESOS)->CuantilesN
median(N$INGRESOS)
## [1] 2.329435
mean(N$INGRESOS)
## [1] 3.992356
max(N$INGRESOS)-min(N$INGRESOS)
## [1] 24.97407
IQR(N$INGRESOS)
## [1] 3.465172
sd(N$INGRESOS)
## [1] 4.219308
sd(N$INGRESOS)/min(N$INGRESOS)*100
## [1] 25599.49
###YULE-BOWLEY
QN1<-CuantilesN[2]
QN2<-CuantilesN[3]
QN3<-CuantilesN[4]
CABD<-(QN2+QN3-2*QN1)/(QN2-QN3)

AFN<-skewness(N$INGRESOS, 
              na.rm = TRUE, 
              type = 3)
Hombres
min(D$INGRESOS)
## [1] 0.003283
max(D$INGRESOS)
## [1] 24.9348
quantile(D$INGRESOS)->CuantilesD
median(D$INGRESOS)
## [1] 2.258168
mean(D$INGRESOS)
## [1] 4.312179
max(D$INGRESOS)-min(D$INGRESOS)
## [1] 24.93152
IQR(D$INGRESOS)
## [1] 3.489158
sd(D$INGRESOS)
## [1] 4.726008
(sd(D$INGRESOS)/min(D$INGRESOS))*100
## [1] 143953.9
###YULE-BOWLEY
QD1<-CuantilesD[2]
QD2<-CuantilesD[3]
QD3<-CuantilesD[4]
CABD<-(QD2+QD3-2*QD1)/(QD2-QD3)
###ASIM-FISHER
AFD<-skewness(D$INGRESOS, 
             na.rm = TRUE, 
             type = 3)
MEDIDA HOMBRES MUJERES
MÍNIMO 0.003 0.016
MÁXIMO 24.934 24.991
CUARTIL 1 1.511 1.395
MEDIANA 2.258 2.329
CUARTIL 3 5 4.861
MEDIA 4.312 3.992
RANGO 24.932 24.974
RANGO INTERCUARTILICO 3.489 3.465
DESVIACIÓN ESTANDAR 4.726 4.919
COEFICIENTE DE VARIACIÓN 143953.9 25599.49
INDICE YULE-BOWLEY -1.55 0.306
COEFICIENTE ASIM FISHER 2.087 2.184

9. Comentar los resultados obtenidos en los numerales anteriores. ¿Parece haber diferencias en el nivel educativo y el estrato entre hombres y mujeres? Con base en los resultados, ¿existe algún indicio de una brecha salarial entre hombres y mujeres? • Si comparamos los niveles de educación entre hombres y mujeres se puede evidenciar una clara diferencia, ya que existe una mayor frecuencia relativa de hombres que completan mayores niveles de educación respecto a las mujeres. • A nivel de ingresos podemos notar una relativa igualdad, ya que la diferencia parece no ser muy marcada. Aun así, los hombres siguen teniendo niveles de ingresos mayores a los de las mujeres. • Por parte de los estratos las mujeres tienen una mayor frecuencia relativa en los estratos más altos, mientras que los hombres tienen mayoría en los estratos 1, 2 y 3.

Cálculo de probabilidades

10. Categorizar (construir intervalos) la variable ingreso usando los siguientes intervalos: menos de 1 SMMLV, entre 1 y 3 SMMLV, entre 3 y 5 SMMLV, entre 5 y 10 SMMLV, más de 10 SMMLV, donde “SMMLV” indica Salarios Mínimos Mensuales Legales Vigentes.

CREDITO %>% 
  select(SEXO, INGRESOS) %>% 
  group_by(SEXO, INGRESOS)->S

S1=cut(x = S$INGRESOS, 
       breaks = c(0,1,3,5,10,25), 
       labels = c("1 SMMLV", "1-3 SMMLV", "3-5 SMMLV", "5-10 SMMLV", "MÁS DE 10 SMMLV")
       )
table(S1)->S2
kable(S2, col.names = c("SALARIOS","FRECUENCIA"))
SALARIOS FRECUENCIA
1 SMMLV 7202
1-3 SMMLV 30578
3-5 SMMLV 9039
5-10 SMMLV 8709
MÁS DE 10 SMMLV 6311

11. Hacer una tabla de bidimensional de frecuencias relativas para ingreso categorizado (columnas) frente a género (filas). A partir de esta tabla construir los perfiles fila. Hacer el diagrama de barras compuesto correspondientes.

table(S1,SEXO) -> Z

Z = round(prop.table(Z), 3)
Z
##                  SEXO
## S1                    H     M
##   1 SMMLV         0.060 0.057
##   1-3 SMMLV       0.303 0.191
##   3-5 SMMLV       0.078 0.068
##   5-10 SMMLV      0.081 0.060
##   MÁS DE 10 SMMLV 0.065 0.037
kable(Z , col.names = c ("HOMBRES","MUJERES"))
HOMBRES MUJERES
1 SMMLV 0.060 0.057
1-3 SMMLV 0.303 0.191
3-5 SMMLV 0.078 0.068
5-10 SMMLV 0.081 0.060
MÁS DE 10 SMMLV 0.065 0.037
barplot(Z,
        main = "INGRESO RESPECTO AL SEXO",
        ylab = "FRECUENCIA RELATIVA INGRESO",
        xlab = "SEXO",
        ylim = c(0, 0.6),
        col = c("#2E8B57", "#2E8B57", "#43CD80", "#4EEE94", "#54FF9F"),
        legend.text = rownames(Z),
        args.legend = list(x = "topright", inset = c(-0.5, 0.9)))

12. Comentar los resultados obtenidos en los numerales anteriores. ¿Parecen haber diferencias importantes entre hombres y mujeres respecto a los ingresos y el nivel educativo? En esta gráfica podemos observar como los hombres reciben mayor salario que las mujeres, especialmente en las categorías de más de 10 SMMLV y entre 1 y 3 SMMLV. Adicionalmente se puede evidenciar como en varios casos los hombres tienen mayor acceso a mejores niveles de educación.

Teorema de Bayes

Sean H1, H2, H3 y H4 los eventos que relacionan los ingresos de una persona seleccionada al azar en esta muestra respecto a los cuartiles; esto es: • H1: “los ingresos del cliente son menores al cuartíl 1” • H2: “los ingresos del cliente son menores al cuartíl 2, pero mayores al cuartíl 1” • H3: “los ingresos del cliente son menores al cuartíl 3, pero mayores al cuartíl 2” • H4: “los ingresos del cliente son menores al cuartíl 4, pero mayores al cuartíl 3”.

13. Por definición, se tiene que Pr[H1] = Pr[H2] = Pr[H3] = Pr[H4] = 0.25. ¿Por qué?

Al tener cuatro cuartiles, la probabilidad de cualquiera de estos cuatro eventos de escoger alguno de estos cuartiles en especifico va a ser de ¼, lo cual equivale a 0,25, por lo que ya sea el evento de escoger el primer cuartil, el segundo, el tercero o el cuarto, se va mantener esta probabilidad de que ocurra el evento.

14. Observe que H1, H2, H3 y H4 son una partición del espacio muestral. ¿Por qué?

Los eventos muestran las diferentes particiones del total del espacio muestral que representa los ingresos de los clientes divididos en cuartiles, por lo que, al sumar las probabilidades de estos cuatro eventos, nos dará un total de 1, ya que cada uno tiene una probabilidad de 0,25 como se demostró en el punto anterior.

15.Sea E el evento “el cliente tiene educación universitaria”. Usando la base de datos, calcular e interpretar las siguientes probabilidades: Pr[E|H1], Pr[E|H2], Pr[E|H3] y Pr[E|H4]. ¿Estas probabilidades deben sumar 1? ¿Por qué?

Si debe resultar en 1, ya que a pesar de que se categorice por el nivel de educación, en este caso universitaria, las probabilidades se dividen entre cuatro particiones del espacio muestral siendo los cuartiles, cada uno con la probabilidad de ¼ de ser seleccionado del grupo total de universitarios del espacio muestral.

quantile(CREDITO$INGRESOS)->H

CREDITO %>% 
  select(INGRESOS,ESTUDIOS) %>% 
  mutate(QH=cut
         (x=CREDITO$INGRESOS, 
           breaks = c(0.003, 1.470, 2.285, 5, 24.991),
           labels=c("Q1","Q2","Q3","Q4"),
           include.lowest=TRUE,
           right=FALSE
           )
         ) ->H1
H2=table(H1$ESTUDIOS, H1$QH)
#P(QUARTIL|UNIVERSITARIO)
round(100*prop.table(x=H2, margin = 2),3)->H3
H3=H3[8, ]
kable(H3, col.names = c("PROBABILIDAD"))
PROBABILIDAD
Q1 15.851
Q2 27.659
Q3 40.575
Q4 30.059

16. Considere la distribución de los ingresos de las personas con educación universitaria. Usando el teorema de Bayes, calcular e interpretar las siguientes probabilidades: Pr[H1|E], Pr[H2|E], Pr[H3|E] y Pr[H4|E]. ¿Estas probabilidades deben sumar 1? ¿Por qué? Observe que las probabilidades PPr[H1|E], Pr[H2|E], Pr[H3|E] y Pr[H4|E] difieren marcadamente de Pr[H1], Pr[H2], Pr[H3] y Pr[H4], respectivamente. ¿Por qué?

Las probabilidades difieren drásticamente ya que en este caso no solo se está tomando en cuenta los cuartiles, sino que adicionalmente el cliente tenga determinado nivel de educación; aun así, estas probabilidades se obtienen de un subgrupo denominado “universitario” y este subgrupo total se divide en un número determinado de particiones (cuartiles), sumándose las probabilidades de la totalidad de las particiones obtenidas de este subgrupo y así obteniendo una probabilidad total de 1.

#P(UNIVERSITARIO|QUARTIL)
round(prop.table(x=H2, margin = 1),3)->H4
H4=H4[8, ]
kable(H4, col.names = c("PROBABILIDAD"))
PROBABILIDAD
Q1 0.139
Q2 0.243
Q3 0.354
Q4 0.265