PARCIAL 2 ESTADÍSTICA
2022-11-01
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 |