Clase 1

Introducción

Se presenta una explicación sobre la creación de objetos como escalares, vectores, matrices a los cuales se habrán dado valores concretos convirtiéndolos en datos, como tambien se explica la manipulación de las variables con operaciones matemáticas simples.

Codigo

Escalar

Es la representación mas simple de un numero

escalar <- 3
escalar
## [1] 3
escalar2 <- 4
escalar2
## [1] 4

Operaciones

Suma de escalares: Se suman uno a uno un número real (el escalar)
escalar + escalar2
## [1] 7
Resta de escalares: Se restan uno a uno un número real (el escalar)
escalar3 <- escalar - escalar2
escalar3
## [1] -1
Multiplicacion de escalares: Se multiplica uno a uno por un número real (el escalar).
escalar4 <- escalar3 * escalar2
escalar4
## [1] -4
Division de escalares: Se divide uno a uno por un número real (el escalar).
escalar5 <- escalar4 / escalar
escalar5
## [1] -1.333333

Visualizar objetos

Para visualizaciones de datos del objeto en cuestion se debe usar el Summary

escalar5
## [1] -1.333333
summary(escalar5)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -1.333  -1.333  -1.333  -1.333  -1.333  -1.333
table(escalar5)
## escalar5
## -1.33333333333333 
##                 1

Vectores

En R un vector es un objeto de elementos de un mismo tipo, pueden ser numericos (num) o de caracteristica (character)

vectores1 <- c(2,1.5,4)   #Vector Num
vectores1
## [1] 2.0 1.5 4.0
vectores2 <- c("sara","pedro","juan")  #Vector chr
vectores2
## [1] "sara"  "pedro" "juan"
vector3 <- c(5,6,2)
vector3
## [1] 5 6 2
prod1 <- vectores1 * escalar4
prod1
## [1]  -8  -6 -16

Ubicación

Es la ubicación de cada variable dentro del vector.

vectores1[2]
## [1] 1.5
vectores2[3]
## [1] "juan"
objeto1 <- vectores2[1]
objeto1
## [1] "sara"
objeto2 <- vectores2[2:3]
objeto2
## [1] "pedro" "juan"
objeto3 <- vectores2[1:2]
objeto3
## [1] "sara"  "pedro"
objeto4 <- vectores2 [c(1,3)]
objeto4
## [1] "sara" "juan"
objeto5 <- vectores2 [-2]
objeto5
## [1] "sara" "juan"
Unión de Vectores: Se une mediente la función concatenar (c).
vector1 <- c(1,2,3)
vector1
## [1] 1 2 3
vector2<- c(4,5,6)
vector2
## [1] 4 5 6
vector3 <- c(7,8,9)
vector3
## [1] 7 8 9

Matriz

matriza <- cbind(vector1,vector2,vector3)
matriza
##      vector1 vector2 vector3
## [1,]       1       4       7
## [2,]       2       5       8
## [3,]       3       6       9
matrizb <- rbind(vector1,vector2,vector3)
matrizb
##         [,1] [,2] [,3]
## vector1    1    2    3
## vector2    4    5    6
## vector3    7    8    9

Clase 2

En este capitulo presentan una guía de como usar rmarkdown, se carga el paquete y librería rmarkdown

{r] rm(list = ls()) install.packages("rmarkdown") library(rmarkdown)

Introduccion a markdawn

El entorno R Markdown es un marco de creación de código abierto que permite la elaboración de documentos dinámicos y reproducibles al entrelazar texto narrativo, código ejecutable y las visualizaciones de datos resultantes en un único archivo.

Composición de un Archivo.Rmd: Los Tres Componentes Centrales

El archivo .Rmd que RStudio genera no es una página en blanco; es una plantilla útil que ilustra la estructura fundamental de cualquier documento R Markdown. Esta estructura se compone de tres tipos de contenido distintos

El Encabezado YAML

Ubicado en la parte superior del archivo, delimitado por líneas de tres guiones (---). Esta sección funciona como el panel de control del documento, donde se definen metadatos como el título, el autor y, lo más importante, el formato de salida y sus opciones.

Texto en Markdown

El cuerpo principal del documento, donde se escribe la narrativa. Este texto utiliza la sintaxis de Markdown para aplicar formato, como encabezados, negritas, listas y enlaces. Es la parte del documento destinada a ser leída por humanos.

Trozos de Código R (Code Chunks)

Bloques de código R incrustados, delimitados por tres acentos graves (`) y {r}. Aquí es donde reside la parte analítica del documento. knitr ejecutará este código y su salida (tablas, gráficos, etc.) se insertará en el documento final.

Escritura en R Markdown

Markdown es un lenguaje de marcado ligero diseñado para ser fácil de escribir y leer en su forma de texto plano.

Encabezados:

Se utilizan almohadillas (#) para crear encabezados de sección. El número de almohadillas corresponde al nivel del encabezado, desde # (nivel 1) hasta ###### (nivel 6).  

Título Principal (Nivel 1) (#)

Sección Principal (Nivel 2) (##)

Subsección (Nivel 3) (##)

  • Énfasis:

Cursiva: *texto en cursiva* o texto en cursiva.

Negrita: **texto en negrita** o texto en negrita.

Tachado: texto tachado.~~texto tachado~~

Superíndice: textosuperíndice.

Subíndice: H2O produce H2O.

  • Listas:

No ordenadas: Se pueden usar asteriscos (*), guiones (-) o signos de más (+).

  • Primer elemento

  • Segundo elemento

– Subelemento anidado

  • Ordenadas:

Se usan números seguidos de un punto. La numeración se ajusta automáticamente, por lo que se puede usar 1. para cada elemento.  

  1. Primer paso

  2. Segundo paso

  3. Tercer paso

Citas en Bloque y Reglas Horizontales:

Citas: Se usa el símbolo de mayor que (>) al principio de una línea.  

“La reproducibilidad es la piedra angular de la ciencia.”

  • Tablas:

Se puede crear tablas simples utilizando tuberías (|) y guiones. Para tablas más complejas generadas a partir de datos, es mejor usar funciones de R como

Cuando se presiona el botón Knit se generará un documento que incluye una conexión entre el código y una presentación formal literaria.

Se puede generar código como el siguiente:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Gráficos

Ejemplo:

plot(pressure)

Expresiones Matemáticas

R Markdown soporta ecuaciones con formato LaTeX.

  • En línea: Se encierran entre signos de dólar simples: $E = mc^2$ produce \(E = mc^2\)

  • En bloque (display): Se encierran entre signos de dólar dobles: \[\sum_{i=1}^{n} x_i\] produce

Creación de Trozos de Código

Existen tres formas sencillas de insertar un nuevo trozo de código en RStudio :

  • Atajo de teclado: Ctrl + Alt + I (en Windows/Linux) o Cmd + Option + I (en macOS).

  • Botón de la barra de herramientas: El botón “Insert” en la parte superior del editor de scripts tiene una opción para insertar un trozo de R.

  • Manualmente: Escribir los delimitadores {r} y .

Opciones Esenciales de los Trozos de Código

Las opciones de los trozos de código, colocadas dentro de las llaves ({}), proporcionan un control preciso sobre cómo se ejecuta el código y cómo se presenta su salida. Dominar estas opciones es clave para pasar de un cuaderno de análisis personal a un informe profesional pulido dirigido a una audiencia específica.

Un análisis en bruto contiene código, salidas, mensajes, advertencias y gráficos. Sin embargo, diferentes audiencias tienen diferentes necesidades. Un colaborador puede querer ver todo el proceso, mientras que un ejecutivo solo querrá ver las conclusiones y los gráficos finales. Las opciones de los trozos de código son el mecanismo que permite a un único archivo fuente .Rmd generar informes distintos y personalizados para cada uno de estos públicos.

echo=FALSE: Oculta el código fuente pero muestra su salida (gráficos, tablas). Esencial para informes dirigidos a audiencias no técnicas.

eval=FALSE: Muestra el código pero no lo ejecuta. Útil para tutoriales o para mostrar código de ejemplo.

include=FALSE: Ejecuta el código pero no incluye ni el código ni su salida en el documento final. Perfecto para trozos de configuración inicial, como la carga de paquetes o datos, que no necesitan ser visibles.

message=FALSE y warning=FALSE: Suprimen los mensajes (por ejemplo, los que aparecen al cargar paquetes) y las advertencias, respectivamente. Esto es crucial para crear un informe final limpio y sin distracciones.

error=TRUE: Permite que el documento se compile (“teja”) incluso si el código en ese trozo produce un error. El error se mostrará en el documento final. Es útil para depurar o para enseñar, mostrando deliberadamente un error.

Clase 3

Codigo

Cargar base

Para cargar base se puede hacer mediante el código y la asignación de nombre a una base de datos preestablecida, para lo cual se necesita tener instalado el paquete readxl y dplyr con sus respectivas librerías readxl y dplyr, o como también se puede cargar directo de desde Import Dataset.

  # Cargar base de datos 
  
  # Cargada la base por Import Dataset
  
  library(readxl)
  
base <- read_excel("C:/Users/DAVID/Documents/calculo/PRUEBA PARCIAL/Proyecto david cruz/insumos/pib_can_anual.xlsx")
Cambiar nombres de variables: Se utiliza cuando el nombre de la variable es muy largo o tiene letras que no se encuentran en el lenguaje del R.
names(base)[6] <-'agricultura'
names(base)
##  [1] "year"                                     
##  [2] "prov"                                     
##  [3] "dpa_prov"                                 
##  [4] "canton"                                   
##  [5] "dpa_can"                                  
##  [6] "agricultura"                              
##  [7] "Explotacion de minas y canteras"          
##  [8] "Manufactura\n\n"                          
##  [9] "Suministro de electricidad y de agua"     
## [10] "Construccion\n\n"                         
## [11] "comercio\n\n"                             
## [12] "Alojamiento y servicios de comida"        
## [13] "Transporte, informacion y comunicaciones" 
## [14] "Actividades financieras\n"                
## [15] "Actividades profesionales e inmobiliarias"
## [16] "Administracion publica \n"                
## [17] "Enseñanza\n\n"                            
## [18] "Salud\n\n"                                
## [19] "Otros servicios\n\n"                      
## [20] "...20"
Reemplazar los NA con 0: NAN se usa cuando no hay valores asiganados y NNN cuando son valores perdidos
base[is.na(base)] <- 0
Ver cuantas observaciones tengo por variable: Se usa el codigo table para revisar las observaciones a analizar
table(base$prov)
## 
##            AZUAY          BOLÍVAR            CAÑAR           CARCHI 
##              150               70               70               60 
##       CHIMBORAZO         COTOPAXI           EL ORO       ESMERALDAS 
##              100               70              140               71 
##        GALÁPAGOS           GUAYAS         IMBABURA             LOJA 
##               30              250               60              160 
##         LOS RÍOS           MANABÍ  MORONA SANTIAGO             NAPO 
##              130              220              120               50 
##         ORELLANA          PASTAZA        PICHINCHA      SANTA ELENA 
##               40               40               80               30 
##    SANTO DOMINGO        SUCUMBÍOS       TUNGURAHUA ZAMORA CHINCHIPE 
##               19               70               90               90
Nos quedamos con una provincia: Sirve para filtrar las cuidades que son nuestro objeto de estudio
base_santo <- base %>% 
    filter(dpa_prov == "23")
    
library(dplyr)
base_manabi <- base %>% 
  filter( dpa_prov== "13")
Quedarme solo con las variables necesarias: Se filtra solo las variables significativas para nuestro analisis
base_manabi1 <- base_manabi %>% 
    select(year,prov,dpa_prov,canton,dpa_can,agricultura,'Explotacion de minas y canteras')
Vista resumen de una variables: Se utiliza summary para revisar las variables selecionadas
summary(base_manabi1$agricultura)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
##     80.46   4888.18  11260.08  29351.06  38616.46 234997.81
#Valor limite: 29351.06
Eliminar ultima variable
base_manabi1 <- base_manabi1[,-7]

Crear nueva variable dicotoma (mutate)

Esta funcion sirve para crear, modificar y eliminar columnas de un conjunto de datos.

base_manabi1 <- base_manabi1 %>% 
  mutate(tipo_pib= ifelse(agricultura > 29351,"pib_alto","pib_bajo"))

base_manabi1 <- base_manabi1 %>% 
  mutate(tipo= ifelse(agricultura > 29351,1,0))

base_manabi1 <- base_manabi1 %>% 
  mutate(periodo= ifelse(year < 2016,"pre","post"))


# Dividamos las bases por periodo

base_manabi_pre <- base_manabi1 %>% 
  filter(periodo=="pre")
base_manabi_post <- base_manabi1 %>% 
  filter(periodo=="post")


# Sumar el PIB de agricultura por Canton

b_m_pre_agg <- base_manabi_pre %>% 
  group_by(canton) %>% 
  summarise(total_agricultura_pre=sum(agricultura))

b_m_post_agg <- base_manabi_post %>% 
  group_by(canton) %>% 
  summarise(total_agricultura_post=sum(agricultura))

Clase 4

Este capitulo se trata de filtrar bases por tiempo, crear variables nuevas y utilizar el modelo econmetrico c =B1+B2*YD +u que es una ecuación matemática de regresión lineal simple, que srive para predecir el valor futuro de C, analizar relaciones, identificar factores y estudiar tedencias.

Tambien para analizar los coeficientes, la bondad de ajuste del modelo, significancia del modelo y el resumen de los residuales.

Codigo

##limpiar la memoria
  rm(list = ls())

  ##Cargar base 
  
library(readxl)
base_final <- read_excel("C:/Users/DAVID/Documents/calculo/PRUEBA PARCIAL/Proyecto david cruz/insumos/base_final.xlsx")
View(base_final)

  ###librerias
  
  library(dplyr)
  
  #desde 1980 hasta 2024 
  
  base<- base_final %>% 
    filter(anio>=1980)
  
  ###creamos una variable nueva
  
  ingreso_disponible<-base$pib-base$impuestos
  base$ingreso_disponible <- base$pib-base$impuestos
  
  #segunda forma
  
  base <- base %>% 
    mutate(ingreso_disponible2 = pib-impuestos)
  
  ###modelo econometrico 
  
  ## c =B1+B2*YD +u
  
  opctions=99
  
  modelo <-lm(consumo ~ ingreso_disponible,data=base)
  
  summary(modelo)
## 
## Call:
## lm(formula = consumo ~ ingreso_disponible, data = base)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -4.901e+09 -1.070e+09 -1.952e+08  1.233e+09  6.870e+09 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        1.417e+10  9.352e+08   15.15   <2e-16 ***
## ingreso_disponible 6.847e-01  1.397e-02   49.01   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.45e+09 on 43 degrees of freedom
## Multiple R-squared:  0.9824, Adjusted R-squared:  0.982 
## F-statistic:  2402 on 1 and 43 DF,  p-value: < 2.2e-16
   plot(modelo)

En este ejercicio se puede determinar que el consumo estimado es de 14,170 millones,que tambien el consumo aumenta segun el ingreso disponible en 6.84, por lo tanto ambos coeficientes son significativos. El R2 es del 98.24% de la variabilidad del consumo que puede explicarse por el ingreso disponible, es decir, el ingreso disponible tiene una alta relación con el consumo.

  ##intervalos de confianza 
  
  #creamos variables logaritmicas
  base <- base  %>% 
    mutate(ln_consumo = log(consumo),
           ln_ingreso_disponible = log(ingreso_disponible))
  modelo2 <- lm (ln_consumo ~ ln_ingreso_disponible,data = base)
  summary (modelo2)
  confint(modelo)
  confint(modelo2)
  plot(modelo2)
  

En este segundo ejercicio se vuelve a concluir que el consumo y el ingreso disponible tienen significancia estadística.

Clase 5

 rm(list=ls())
  library(readxl)
base <- read_excel("C:/Users/DAVID/Documents/calculo/PRUEBA PARCIAL/Proyecto david cruz/insumos/datos_ecuador.xlsx")

En este capitulo realizaremos distintos modelos para el análisis de sus coeficientes, significancia y R cuadrado.

  # Modelo: desempleo = B1 + B2 +PIB + u 
  names(base)
## [1] "anio"                     "trim"                    
## [3] "RiesgoPais"               "PIB_MillonesUSD"         
## [5] "TasaDesempleo_Porcentaje" "IED_MillonesUSD"
  modelo_desempleo <- lm(TasaDesempleo_Porcentaje ~ PIB_MillonesUSD, data = base)
  
  modelo_desempleo2 <- lm(base$TasaDesempleo_Porcentaje ~ base$PIB_MillonesUSD)
  
  
  summary(modelo_desempleo)
## 
## Call:
## lm(formula = TasaDesempleo_Porcentaje ~ PIB_MillonesUSD, data = base)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.6369 -0.8933 -0.1452  0.4323  7.6118 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      8.373e+00  9.208e-01   9.093 5.95e-13 ***
## PIB_MillonesUSD -1.072e-04  3.556e-05  -3.014  0.00376 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.377 on 61 degrees of freedom
## Multiple R-squared:  0.1296, Adjusted R-squared:  0.1153 
## F-statistic: 9.081 on 1 and 61 DF,  p-value: 0.003758
  summary(modelo_desempleo2)
## 
## Call:
## lm(formula = base$TasaDesempleo_Porcentaje ~ base$PIB_MillonesUSD)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.6369 -0.8933 -0.1452  0.4323  7.6118 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           8.373e+00  9.208e-01   9.093 5.95e-13 ***
## base$PIB_MillonesUSD -1.072e-04  3.556e-05  -3.014  0.00376 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.377 on 61 degrees of freedom
## Multiple R-squared:  0.1296, Adjusted R-squared:  0.1153 
## F-statistic: 9.081 on 1 and 61 DF,  p-value: 0.003758
  plot(modelo_desempleo2)

Con los resultados obtenidos se puede concluir que se necesita mas variables para tener un análisis adecuado.

  ####   modelo; inversion extrangera directa b1+b2*rp+u
  
  names(base)
## [1] "anio"                     "trim"                    
## [3] "RiesgoPais"               "PIB_MillonesUSD"         
## [5] "TasaDesempleo_Porcentaje" "IED_MillonesUSD"
  modelo_ied <- lm(IED_MillonesUSD ~ RiesgoPais, data = base)
  summary(modelo_ied)  
## 
## Call:
## lm(formula = IED_MillonesUSD ~ RiesgoPais, data = base)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -317.37  -55.76  -16.82   54.14  279.09 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 229.89653   29.74552   7.729 1.29e-10 ***
## RiesgoPais   -0.04321    0.02458  -1.758   0.0838 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 107.9 on 61 degrees of freedom
## Multiple R-squared:  0.04821,    Adjusted R-squared:  0.0326 
## F-statistic: 3.089 on 1 and 61 DF,  p-value: 0.08382
### creamos el riesgo pais rezagado
  
  library(dplyr)
  base<-base %>% 
    mutate(ied_rezagado1=lag(IED_MillonesUSD, n=1),
           rp_rezagado1=lag(RiesgoPais, n=2),
           rp_rezagado2=lag(RiesgoPais, n=2))
  
  
  #modelorezagado#
  names(base)
## [1] "anio"                     "trim"                    
## [3] "RiesgoPais"               "PIB_MillonesUSD"         
## [5] "TasaDesempleo_Porcentaje" "IED_MillonesUSD"         
## [7] "ied_rezagado1"            "rp_rezagado1"            
## [9] "rp_rezagado2"
  model_ied_lag1<-lm(IED_MillonesUSD~rp_rezagado1, data = base)
  summary(model_ied_lag1)
## 
## Call:
## lm(formula = IED_MillonesUSD ~ rp_rezagado1, data = base)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -320.59  -53.15  -14.34   49.29  266.92 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  214.06880   30.81112   6.948 3.32e-09 ***
## rp_rezagado1  -0.02707    0.02533  -1.069     0.29    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 111 on 59 degrees of freedom
##   (2 observations deleted due to missingness)
## Multiple R-squared:  0.01899,    Adjusted R-squared:  0.002358 
## F-statistic: 1.142 on 1 and 59 DF,  p-value: 0.2896
  model_ied_lag2<-lm(IED_MillonesUSD~rp_rezagado2, data = base)
  summary(model_ied_lag2)
## 
## Call:
## lm(formula = IED_MillonesUSD ~ rp_rezagado2, data = base)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -320.59  -53.15  -14.34   49.29  266.92 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  214.06880   30.81112   6.948 3.32e-09 ***
## rp_rezagado2  -0.02707    0.02533  -1.069     0.29    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 111 on 59 degrees of freedom
##   (2 observations deleted due to missingness)
## Multiple R-squared:  0.01899,    Adjusted R-squared:  0.002358 
## F-statistic: 1.142 on 1 and 59 DF,  p-value: 0.2896
  plot(model_ied_lag2)

Con el análisis de los resultados se puede concluir que el modelo sugiere que a mayor riesgo país, menor inversión extranjera, sin embargo la relación no es estadísticamente fuerte y que para un resultado mas preciso se necesita mas variables.

Clase 6

##identificamos la variable 
table(personas$dcronica_2)
## 
##    0    1 
## 5591 2210
dci <- 2210/(5591+2210)
dci*100
## [1] 28.3297
##### Trabajando con muiestras oficiales 

dm <- personas %>% 
  as_survey_design(ids=upm,   #unidad primaria de muestreo
                   strata=estrato, #estrato
                   weights = fexp) #factor de expansion
options(survey.lonely.psu = 'certainty') #forzando a que las observaciones sean unicas e individuales


library(readxl)
prev_nac_dci2 <- dm %>% 
  summarise(survey_mean(dcronica_2, vartype =c('se','cv'),na.rm=TRUE),
            n_muestra=sum(!is.na(dcronica_2))) %>% 
  mutate(dominio="Nacional") %>% 
  select(dominio, porcentaje=coef, se=`_se`, cv=`_cv`, n_muestra) %>% 
  mutate(porcentaje=round((porcentaje*100),digits = 1))
summary(prev_nac_dci2)
##    dominio            porcentaje         se                 cv         
##  Length:1           Min.   :27.2   Min.   :0.009167   Min.   :0.03374  
##  Class :character   1st Qu.:27.2   1st Qu.:0.009167   1st Qu.:0.03374  
##  Mode  :character   Median :27.2   Median :0.009167   Median :0.03374  
##                     Mean   :27.2   Mean   :0.009167   Mean   :0.03374  
##                     3rd Qu.:27.2   3rd Qu.:0.009167   3rd Qu.:0.03374  
##                     Max.   :27.2   Max.   :0.009167   Max.   :0.03374  
##    n_muestra   
##  Min.   :7801  
##  1st Qu.:7801  
##  Median :7801  
##  Mean   :7801  
##  3rd Qu.:7801  
##  Max.   :7801
### Declaracion del disenio muestral
dm <- df %>% 
  as_survey_design(ids=upm,   #unidad primaria de muestreo
                   strata=estrato, #estrato
                   weights = fexp) #f

#### Replicar indicadores

################################################
## TASA DE DESEMPLEO NACIONAL                  #
################################################
tasa_desempleo_nac <- dm %>% 
  filter(p03>=15) %>% 
  summarise(
    tasa_desempleo = survey_ratio(
      numerator=( condact == 7 | condact==8),
      denominator=(condact %in% 1:8),
      vartype = c('se','ci')
    ) 
  ) %>% 
  mutate(tasa_desempleo = round((tasa_desempleo*100),digits = 1))
summary(tasa_desempleo_nac)
##  tasa_desempleo tasa_desempleo_se  tasa_desempleo_low tasa_desempleo_upp
##  Min.   :3.9    Min.   :0.002392   Min.   :0.03411    Min.   :0.04349   
##  1st Qu.:3.9    1st Qu.:0.002392   1st Qu.:0.03411    1st Qu.:0.04349   
##  Median :3.9    Median :0.002392   Median :0.03411    Median :0.04349   
##  Mean   :3.9    Mean   :0.002392   Mean   :0.03411    Mean   :0.04349   
##  3rd Qu.:3.9    3rd Qu.:0.002392   3rd Qu.:0.03411    3rd Qu.:0.04349   
##  Max.   :3.9    Max.   :0.002392   Max.   :0.03411    Max.   :0.04349
plot(tasa_desempleo_nac)

################################################
## TASA DE EMPLEO ADECUADO                     #
################################################

tasa_empleo_adec <- dm %>% 
  filter(p03>=15) %>% 
  summarise(
    tasa_empleo_adecuado = survey_ratio(
      numerator=( condact == 1),
      denominator=(condact %in% 1:8),
      vartype = c('se','ci')
    ) 
  ) %>% 
  mutate(tasa_empleo_adecuado = round((tasa_empleo_adecuado*100),digits = 1))
summary(tasa_empleo_adec)
##  tasa_empleo_adecuado tasa_empleo_adecuado_se tasa_empleo_adecuado_low
##  Min.   :36.2         Min.   :0.01132         Min.   :0.3401          
##  1st Qu.:36.2         1st Qu.:0.01132         1st Qu.:0.3401          
##  Median :36.2         Median :0.01132         Median :0.3401          
##  Mean   :36.2         Mean   :0.01132         Mean   :0.3401          
##  3rd Qu.:36.2         3rd Qu.:0.01132         3rd Qu.:0.3401          
##  Max.   :36.2         Max.   :0.01132         Max.   :0.3401          
##  tasa_empleo_adecuado_upp
##  Min.   :0.3844          
##  1st Qu.:0.3844          
##  Median :0.3844          
##  Mean   :0.3844          
##  3rd Qu.:0.3844          
##  Max.   :0.3844
plot(tasa_empleo_adec)

################################################
## TASA DE subempleo                    #
################################################

tasa_subempleo_nac <- dm %>% 
  filter(p03>=15) %>% 
  summarise(
    tasa_subempleo = survey_ratio(
      numerator=( condact == 2 | condact==3),
      denominator=(condact %in% 1:8),
      vartype = c('se','ci')
    ) 
  ) %>% 
  mutate(tasa_subempleo = round((tasa_subempleo*100),digits = 1))
summary(tasa_subempleo_nac)
##  tasa_subempleo tasa_subempleo_se  tasa_subempleo_low tasa_subempleo_upp
##  Min.   :19.9   Min.   :0.006133   Min.   :0.1867     Min.   :0.2107    
##  1st Qu.:19.9   1st Qu.:0.006133   1st Qu.:0.1867     1st Qu.:0.2107    
##  Median :19.9   Median :0.006133   Median :0.1867     Median :0.2107    
##  Mean   :19.9   Mean   :0.006133   Mean   :0.1867     Mean   :0.2107    
##  3rd Qu.:19.9   3rd Qu.:0.006133   3rd Qu.:0.1867     3rd Qu.:0.2107    
##  Max.   :19.9   Max.   :0.006133   Max.   :0.1867     Max.   :0.2107
plot(tasa_subempleo_nac)

################################################
## TASA DE EMPLEO no remunerado                     #
################################################

tasa_empleo_norem <- dm %>% 
  filter(p03>=15) %>% 
  summarise(
    tasa_empleo_norem = survey_ratio(
      numerator=( condact == 5),
      denominator=(condact %in% 1:8),
      vartype = c('se','ci')
    ) 
  ) %>% 
  mutate(tasa_empleo_norem = round((tasa_empleo_norem*100),digits = 1))
summary(tasa_empleo_norem)
##  tasa_empleo_norem tasa_empleo_norem_se tasa_empleo_norem_low
##  Min.   :10        Min.   :0.01143      Min.   :0.07785      
##  1st Qu.:10        1st Qu.:0.01143      1st Qu.:0.07785      
##  Median :10        Median :0.01143      Median :0.07785      
##  Mean   :10        Mean   :0.01143      Mean   :0.07785      
##  3rd Qu.:10        3rd Qu.:0.01143      3rd Qu.:0.07785      
##  Max.   :10        Max.   :0.01143      Max.   :0.07785      
##  tasa_empleo_norem_upp
##  Min.   :0.1227       
##  1st Qu.:0.1227       
##  Median :0.1227       
##  Mean   :0.1227       
##  3rd Qu.:0.1227       
##  Max.   :0.1227
plot(tasa_empleo_norem)