Está en la página 1de 8

Ep 2

Alvaro Molina

2022-09-06

library(survey)

## Loading required package: grid

## Loading required package: Matrix

## Loading required package: survival

##
## Attaching package: ’survey’

## The following object is masked from ’package:graphics’:


##
## dotchart

library(jtools)
#install.packages("jtools")
library(tidyverse)

## Registered S3 methods overwritten by ’broom’:


## method from
## tidy.glht jtools
## tidy.summary.glht jtools

## -- Attaching packages --------------------------------------- tidyverse 1.3.2 --


## v ggplot2 3.3.6 v purrr 0.3.4
## v tibble 3.1.8 v dplyr 1.0.9
## v tidyr 1.2.0 v stringr 1.4.0
## v readr 2.1.2 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x tidyr::expand() masks Matrix::expand()
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
## x tidyr::pack() masks Matrix::pack()
## x tidyr::unpack() masks Matrix::unpack()

library(haven)
library(knitr)
library(kableExtra)

1
##
## Attaching package: ’kableExtra’
##
## The following object is masked from ’package:dplyr’:
##
## group_rows

library(readstata13)
library(datasets)
#install.packages("ggplot2")
library(ggplot2)

PARTE 1)
Considere el ámbito de análisis que se le asignó y los módulos de salud, educación y empleo de la Encuesta
Nacional de Hogares (2021) para responder las siguientes pregúntas.

educacion <- read_sav(subdir.educacion, col_select = c("NCONGLOME","CONGLOME", "VIVIENDA","HOGAR","CODPE

salud <- read_sav(subdir.salud, col_select = c("NCONGLOME","CONGLOME","VIVIENDA","HOGAR","CODPERSO", "P4

empleo <- read_sav(subdir.empleo, col_select = c("NCONGLOME", "CONGLOME","VIVIENDA","HOGAR","CODPERSO","

Del módulo de SALUD, obtenga el número de miembros del hogar con alguna discapacidad y el número de
miembros del hogar con enfermedades crónicas con el siguiente script.

salud <- salud %>% mutate (discapacidad=ifelse(P401H1==1 | P401H2==1 | P401H3==1 | P401H4==1 | P401H5==1
salud <- salud %>% mutate (enfermedad_cronica=ifelse(P401==1,1,0))

Del módulo de EDUCACION, obtenga el número de AÑOS DE EDUCACIÓN con el siguiente script.

educacion <- educacion %>% mutate(temp=pmax(P301B,P301C,na.rm = T), ANIO_EDUC=case_when(P301A == 1 | P30

educacion <- educacion %>% mutate(EDAD_AL_2 = P208Aˆ2)

En el módulo de empleo construya la variable años de experiencia (ANIO_EXP) e ingreso por trabajo
mensual (INGRESO_POR_TRABAJO).

empleo <- empleo %>% mutate(ANIO_EXP = (P513A1 + P513A2/12))

empleo <- empleo %>% mutate(INGRESO_POR_TRABAJO = rowSums(empleo %>% select("I524E1","I530A","I538E1","I

Cree una nueva tabla de datos llamada ‘datos_mhogar’ que esté compuesta por la intersección de los datos
de empleo, educación y salud. Filtro los datos considerando solo personas en la PEA (OCU500 == 1) y con
años de experiencia mayor a cero y diferente de NA.

datos_mhogar <- salud %>% inner_join(educacion, by=c("NCONGLOME","CONGLOME","VIVIENDA","HOGAR","CODPERSO

datos_mhogar <- datos_mhogar %>% filter(OCU500 == 1 & ANIO_EXP>0 & is.na(ANIO_EXP) == F & ANIO_EDUC> 0

2
datos_mhogar <- datos_mhogar %>% mutate(C_DPTO = substr(UBIGEO,1,2))
datos_mhogar <- datos_mhogar %>% filter(C_DPTO=="10")

Además construya la variable AREA con la variable estrato usando los ejemplos de clase.

datos_mhogar <- datos_mhogar %>% mutate(AREA = case_when(ESTRATO<=6 | (ESTRATO==1 & DOMINIO==8) ~ 1,


TRUE ~ 2),
C_DPTO = substr(UBIGEO,1,2),
C_DPTO = as.numeric(C_DPTO),
dominioA = case_when(DOMINIO==1 & AREA==1 ~ 1,
DOMINIO==1 & AREA==2 ~ 2,
DOMINIO==2 & AREA==1 ~ 3,
DOMINIO==2 & AREA==2 ~ 4,
DOMINIO==3 & AREA==1 ~ 5,
DOMINIO==3 & AREA==2 ~ 6,
DOMINIO==4 & AREA==1 ~ 7,
DOMINIO==4 & AREA==2 ~ 8,
DOMINIO==5 & AREA==1 ~ 9,
DOMINIO==5 & AREA==2 ~ 10,
DOMINIO==6 & AREA==1 ~ 11,
DOMINIO==6 & AREA==2 ~ 12,
DOMINIO==7 & AREA==1 &
(C_DPTO==16 | C_DPTO==17 |
C_DPTO==25)==F ~ 13,
DOMINIO==7 & AREA==2 &
(C_DPTO==16 | C_DPTO==17 |
C_DPTO==25)==F ~ 14,
DOMINIO==7 & AREA==1 &
(C_DPTO==16 | C_DPTO==17 |
C_DPTO==25)==T ~ 15,
DOMINIO==7 & AREA==2 &
(C_DPTO==16 | C_DPTO==17 |
C_DPTO==25)==T ~ 16,
DOMINIO==8 &
(AREA==1 | AREA==2)==T ~ 17))

svy.datos <- svydesign(ids = ~1, strata = ~ESTRATO, weights = ~FAC500A,data = datos_mhogar)

PARTE 2)

1) Con los datos expandidos, realice la estimación del Ingreso por trabajo mensual promedio

svymean(~INGRESO_POR_TRABAJO,svy.datos,na.rm=T)

## mean SE
## INGRESO_POR_TRABAJO 705 35.776

En promedio de los pobladores de Huanuco recieben un ingreso de 705 de sus trabajos.

2) Con los datos expandidos, evalue la correlación entre los de años de educacion y el Ingreso por trabajo
mensual. Utilice la función svycor. Redacte el análisis de sus resultados.

3
svycor(~INGRESO_POR_TRABAJO + ANIO_EDUC,design = svy.datos)

## INGRESO_POR_TRABAJO ANIO_EDUC
## INGRESO_POR_TRABAJO 1.00 0.37
## ANIO_EDUC 0.37 1.00

La correlación entre ingreso por trabajo y los años de educación es de 0.37, mientras que los valores expandidos
idican una correlación de 1.00.

3) Con los datos expandidos, evalue la correlación entre los años de experiencia y el Ingreso por trabajo
mensual. Utilice la función svycor. Redacte su análisis de los resultados.

svycor(~INGRESO_POR_TRABAJO + ANIO_EXP,design = svy.datos)

## INGRESO_POR_TRABAJO ANIO_EXP
## INGRESO_POR_TRABAJO 1.00 0.06
## ANIO_EXP 0.06 1.00

La correlación entre ingreso por trabajo y los años de experiencia es de 0.06, mientras que los valores
expandidos idican una correlación de 1.00.

4) Estime el Ingreso por trabajo promedio mensual, para las categorías de: a) Area, b) Discapacidad y

c) Enfermedades crónicas. Además, estime los coeficientes de variación y los intervalos de confianza.
Redacte su análisis de los resultados.

AREAT <- svyby(~INGRESO_POR_TRABAJO,by=~AREA,design=svy.datos,FUN=svymean,na.rm=T)

AREAT.1 <- data.frame(AREAT,row.names = 1); AREAT.1

## INGRESO_POR_TRABAJO se
## 1 978.4844 66.01862
## 2 428.3097 22.70524

El ingreso por trabajo promedio de los pobladores de Huanuco del AREA URBANO es de 978.4844 y el
ingreso por trabajo promedio de los pobladores de Huanuco del AREA RURAL es de 428.3097.

cv_AREAT <- cv(AREAT); cv_AREAT*100

## 1 2
## 6.747028 5.301128

La precision estadística de la variable AREA para validar la muestra es Buena porque se encuentra entre
5% y 10%.

conf_AREAT <- confint(AREAT); conf_AREAT

## 2.5 % 97.5 %
## 1 849.0903 1107.8785
## 2 383.8082 472.8111

4
con un intervalo de confianza del 95% el IngresO por trabajo en AREA URBANO varia entre 849.0903 Y
1107.8785, mientras que en AREA RURAL varia entre 383.8082 Y 472.8111

discapacidadT <- svyby(~INGRESO_POR_TRABAJO,by=~discapacidad,design=svy.datos,FUN=svymean,na.rm=T)

discapacidadT.1 <- data.frame(discapacidadT,row.names = 1); discapacidadT.1

## INGRESO_POR_TRABAJO se
## 0 706.8663 37.14461
## 1 668.0373 123.61454

El ingreso por trabajo promedio de los pobladores de Huanuco sin discapacidad es de 706.8663 y el ingreso
por trabajo promedio de los pobladores de Huanuco con discapacidad es de 668.0373.

cv_discapacidadT <- cv(discapacidadT); cv_discapacidadT*100

## 0 1
## 5.254828 18.504136

La precision estadística de la variable discapacidad para validar la muestra es Buena y Referencia porque se
encuentra entre 5% y 10% (sin discapacidad) y entre >15% (con discapacidad).

conf_discapacidadT <- confint(discapacidadT); conf_discapacidadT

## 2.5 % 97.5 %
## 0 634.0642 779.6683
## 1 425.7573 910.3174

Con un intervalo de confianza del 95% el discapacidad en sin discapacidad varia entre 634.0642 Y 779.6683,
mientras que en con discapacidad varia entre 425.7573 Y 910.3174

enfermedadCT <- svyby(~INGRESO_POR_TRABAJO,by=~enfermedad_cronica,design=svy.datos,FUN=svymean,na.rm=T)

enfermedadCT.1 <- data.frame(enfermedadCT,row.names = 1); enfermedadCT.1

## INGRESO_POR_TRABAJO se
## 0 639.9607 42.77507
## 1 813.1090 64.39097

El ingreso por trabajo promedio de los pobladores de Huanuco sin enfermedad cronica es de 639.9607 y el
ingreso por trabajo promedio de los pobladores de Huanuco con enfermedad cronica es de 813.1090.

cv_enfermedadCT <- cv(enfermedadCT); cv_enfermedadCT*100

## 0 1
## 6.684016 7.919107

La precision estadística de la variable enfermedad cronica para validar la muestra es Buena porque se
encuentra entre 5% y 10% (sin discapacidad).

5
conf_enfermedadCT <- confint(enfermedadCT); conf_enfermedadCT

## 2.5 % 97.5 %
## 0 556.123 723.7983
## 1 686.905 939.3130

Con un intervalo de confianza del 95% el discapacidad en sin enfermedad cronica varia entre 556.123 Y
723.7983, mientras que en con enfermedad cronica varia entre 686.905 Y 939.3130
Parte 3) Realice un modelo econométrico considerando los datos expandidos. El modelo de regresión lineal
multiple debe considerar la variable dependiente Ingreso por trabajo mensual respecto a las variables: Años
de educacion, Años de experiencia, Area, Discapacidad, Enfermedades cronicas, Edad, Edadˆ2.

modelo1 <- modelo1 <- svyglm(INGRESO_POR_TRABAJO~log(ANIO_EXP)+ANIO_EDUC+AREA+discapacidad+enfermedad_cr


summary(modelo1)

##
## Call:
## svyglm(formula = INGRESO_POR_TRABAJO ~ log(ANIO_EXP) + ANIO_EDUC +
## AREA + discapacidad + enfermedad_cronica + P208A + EDAD_AL_2,
## design = svy.datos, family = gaussian(link = "identity"))
##
## Survey design:
## svydesign(ids = ~1, strata = ~ESTRATO, weights = ~FAC500A, data = datos_mhogar)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.271e+03 2.106e+02 -6.038 1.89e-09 ***
## log(ANIO_EXP) 4.043e+01 1.646e+01 2.456 0.014135 *
## ANIO_EDUC 9.784e+01 9.454e+00 10.349 < 2e-16 ***
## AREA -1.820e+02 4.904e+01 -3.712 0.000212 ***
## discapacidad -8.916e+00 1.103e+02 -0.081 0.935566
## enfermedad_cronica -4.722e+01 7.808e+01 -0.605 0.545425
## P208A 6.152e+01 8.154e+00 7.545 7.12e-14 ***
## EDAD_AL_2 -5.637e-01 9.025e-02 -6.246 5.24e-10 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
##
## (Dispersion parameter for gaussian family taken to be 830224.6)
##
## Number of Fisher Scoring iterations: 2

1) Realice un histograma de su variable dependiente y analice el gráfico en relación a la pertinencia de


implementar un modelo de regresión MCO en la variable dependiente.

hist(x = datos_mhogar$INGRESO_POR_TRABAJO, main = "Histograma",


xlab = "Ingreso por trabajo", ylab = "Frecuencia")

6
Histograma
1400
1000
Frecuencia

600
200
0

0 2000 4000 6000 8000 10000 12000 14000

Ingreso por trabajo

A partir del histograma podemos inferir que las gran mayoria de pobladores de la region de Huanuco
generan un ingreso menor de 1000 soles, por lo que podemos concluir que existe una fuerte desigualdad
de ingresos porque solo unos pocos ganan mas de 4000 soles mientras la mayoria de pobladores viven con
menos de 2000 soles.

2) Suponga que se cumple el supuesto de normalidad de los residuos. Redacte el análisis de sus coeficientes
estimados.

• Por el incremento en un 1% de la variable Años de experiencia, el ingreso por trabajo aumenta en


0.6563107 siempre y cuando todas las demas variables se mantienen constantes
• Por el incremento en una unidad de la variable Años de educacion, el ingreso por trabajo aumenta en
103.61012 siempre y cuando todas las demas variables se mantienen constantes

• Por el incremento en una unidad de la variable AREA, el ingreso por trabajo disminuye en 248.80948
siempre y cuando todas las demas variables se mantienen constantes
• Por el incremento en una unidad de la variable discapacidad, el ingreso por trabajo disminuye en
59.40861 siempre y cuando todas las demas variables se mantienen constantes

• Por el incremento en una unidad de la variable enfermedad cronica, el ingreso por trabajo disminuye
en 118.48873 siempre y cuando todas las demas variables se mantienen constantes
• Por el incremento en una unidad de la variable EDAD, el ingreso por trabajo aumenta en 44.40315
siempre y cuando todas las demas variables se mantienen constantes

• Por el incremento en una unidad de la variable EDADˆ2, el ingreso por trabajo disminuye en 0.36550
siempre y cuando todas las demas variables se mantienen constantes

7
3)

MRLM1 <- lm(INGRESO_POR_TRABAJO~log(ANIO_EXP)+ANIO_EDUC+AREA+discapacidad+enfermedad_cronica+P208A+EDAD_

summary(MRLM1)

##
## Call:
## lm(formula = INGRESO_POR_TRABAJO ~ log(ANIO_EXP) + ANIO_EDUC +
## AREA + discapacidad + enfermedad_cronica + P208A + EDAD_AL_2,
## data = datos_mhogar)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1925.1 -472.7 -116.7 244.4 12669.7
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -889.82407 193.21929 -4.605 4.41e-06 ***
## log(ANIO_EXP) 65.63017 13.86733 4.733 2.39e-06 ***
## ANIO_EDUC 103.61012 5.82691 17.781 < 2e-16 ***
## AREA -248.80948 52.05775 -4.779 1.90e-06 ***
## discapacidad -59.40861 106.62032 -0.557 0.5775
## enfermedad_cronica -118.48873 50.94966 -2.326 0.0201 *
## P208A 44.40315 7.01340 6.331 3.06e-10 ***
## EDAD_AL_2 -0.36550 0.07932 -4.608 4.35e-06 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
##
## Residual standard error: 954.3 on 1819 degrees of freedom
## Multiple R-squared: 0.2582, Adjusted R-squared: 0.2554
## F-statistic: 90.46 on 7 and 1819 DF, p-value: < 2.2e-16

El modelo glm es una extension del modelo lm al momento de realizar un analisis de regresión, que se
utiliza cuando uno de los supuestos del modelo clasico no se cumple, y nos permite utilizar distribuciones
no normales para poder explicar los fenomenos que estamos evidenciando, para el caso de nuestros modelos
podemos ver que si consideremos el diseño muestral nos da como resultado coeficientes muy pequeños a
comparacion de si no lo usaramos. Ademas el modelo lm arroja un rˆ2 muy bajo y tambien pore ello se
generaliza el modelo para reducir esta brecha.

También podría gustarte