1 Creación de Objetos

1.1 Cantidad escalar

Es una magnitud que queda completamente definida por un número y una unidad, sin necesidad de indicar dirección.

Las magnitudes escalares se pueden escribir y operar en el programa R-Studio, como primer paso se debe asignar a una variable la cantidad escalar, como se indica a continuación:

escalar1 <- 3
escalar2 <- 4

1.2 Operaciones

En R-Studio se puede realizar todo tipo de operaciones como, suma, multiplicación, división, entre otras. Para realizar la operación simplemente usamos el signo del operador y las cantidades escalares a operar, como por ejemplo:

escalar1 + escalar2
## [1] 7

Otra forma de realizar operaciones es asignando una variable a la operación de la siguiente manera:

escalar3 <- escalar1 + escalar2
## [1] 7

Como se menciono con anterioridad se puede realizar distintos tipos de operaciones en R-Studio, a continuación se indica un ejemplo de como realizar la operación de multiplicación y división: multiplicación

escalar4 <- escalar3 * escalar2
## [1] 28
escalar5 <- escalar4/escalar1
## [1] 9.333333

Otra opción que nos presenta R-Studio es la de summmary, a través de este código se obtiene el mínimo, los cuartiles, la mediana y el promedio de los datos.

summary(escalar5)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   9.333   9.333   9.333   9.333   9.333   9.333

Finalement podemos crear una tabla con los valores obtenidos:

table(escalar5)
## escalar5
## 9.33333333333333 
##                1

1.3 Vectores

1.3.1 Generar un vector

Para generar un vector primero creamos un nuevo objeto, en el caso del ejemplo como vect1 vect2, vect3, los vectores pueden ser númerico o de caracteres. Para generar un vector usamos la función c().

vect1 <- c(2,1.5,4) #vector numerico
vect2 <- c("Juan","Pedro","Sara")#este es un vector de caracteres
vect3 <- c(5,6,2)

El resultado de la creación de vectores es: Vector 1

## [1] 2.0 1.5 4.0

Vector 2

## [1] "Juan"  "Pedro" "Sara"

Vector 3

## [1] 5 6 2

1.3.2 Operaciones con vectores

Las operaciones con vectores se pueden realizar en el programa R-Studio un ejemplo es la multiplicación de una cantidad escalar por una cantidad vectorial como por ejemplo:

prd1 <- vect1 *escalar4

el resultado del anterior código es:

## [1]  56  42 112

1.3.3 Ubicación de vectores

Con este código podemos saber cual es la coordenada del vector según su posición por ejemplo en el vector 1 en la posición 2 se encuentra el número 1.5 para esto usamos el siguiente código:

vect1[2]
## [1] 1.5

Otro ejemplo para el vector dos:

vect2[3]
## [1] "Sara"

Además, se puede crear nuevos objetos a partir de este código como por ejemplo:

objeto1 <- vect3[1]

y se obtiene el siguiente resultado:

## [1] 5

También se puede tomar la ubicación de los vectores según intervalos definidos por ejemplo en el vector 2 se va a tomar las posiciones 2 y 3 del vector usando el siguiente código:

objeto2 <- vect2[2:3]

el resultado obtenido es:

## [1] "Pedro" "Sara"

Otro ejemplo de intervalos es:

objeto3 <- vect2[1:2]

el resultado que se tiene es:

## [1] "Juan"  "Pedro"

Cuando se desea excluir tan solo una de las coordenadas se puede usar el siguiente código:

objeto4_f2 <- vect2[-2]

se obtiene el siguiente resultado:

## [1] "Juan" "Sara"

1.4 Matrices

1.4.1 Creación de matrices

Para crear matrices se usa el codigo cbind() con el que se puede organizar la matriz en forma de columnas:

matrizA <- cbind(vect1,vect2,vect3)

y se obtiene el siguiente resultado

##      vect1 vect2   vect3
## [1,] "2"   "Juan"  "5"  
## [2,] "1.5" "Pedro" "6"  
## [3,] "4"   "Sara"  "2"

Mientras que para organizar la matriz en forma de filas se usa el código rbind():

matrizB <- rbind(vect1,vect2,vect3)

y se obtiene el siguiente resultado

##       [,1]   [,2]    [,3]  
## vect1 "2"    "1.5"   "4"   
## vect2 "Juan" "Pedro" "Sara"
## vect3 "5"    "6"     "2"

Observe en los resultados que los vectores se ordenaron en forma de filas o columnas.

2 Bases de datos (data frames)

2.1 Creación de base de datos

Para crear una base de datos se usa el código as.data.frame()

base1 <- as.data.frame(matrizA)

obteniendo el resultado

##   vect1 vect2 vect3
## 1     2  Juan     5
## 2   1.5 Pedro     6
## 3     4  Sara     2

A continuación se presenta otro ejemplo de la creación de una base de datos:

base2 <- as.data.frame(matrizB)

y se obtiene el siguiente resultado

##         V1    V2   V3
## vect1    2   1.5    4
## vect2 Juan Pedro Sara
## vect3    5     6    2

2.2 Ingresar a objetos en bases de datos (tomar variables con $)

Para ingresar en la algún objeto de la base de datos se usa el siguiente código:

base1$vect1
## [1] "2"   "1.5" "4"

2.3 Cambiar de nombre a variables

A veces se necesita cambiar el nombre de las variables por lo que se usa el siguiente código:

nombre_vectores <- c("variable1","variable2","variable3")
names(base1) <- nombre_vectores

2.4 Cargar bases de datos internas

Para caragar una base de datos primero se limpiará el entorno de trabajo de R-Studio con el código:

rm(list = ls())

Ahora se cargará una base de datos interna con el siguiente código:

base <- mtcars

en el cuadro siguiente se observa la base de datos interna cargada

##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2

2.5 Filtros

Para la filtración de datos se tiene tres formas de realizarlo:

2.5.1 Forma 1 subset

base1 <- subset(base,base$cyl > 4)

obteniendo el siguiemmmte resultado

##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8

Como se puede observar en la base filtrada en la columna de cyl se encuentran solo los automóviles mayores a 4 cilindros.

2.5.2 Forma 2 matricial

La segunda forma de filtrar una base de datos es la forma matricial y se usa el siguiente código:

base1_f2 <- base[base$cyl>4,]

obteniendo el siguiente resultado

##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8

Se puede observar que el resultado es el mismo que el obtenido en la forma uno con subsect.

2.5.3 Forma 3

Para filtrar la base de datos se deberá cargar previamente el paquete y la libreria dpylr, si se tiene instalado el paquete no es necesario volver a cargarlo, se usa el siguiente código para la carga de paquetes y libreria:

#install.packages('dplyr')
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

Para realizar el filtro se usa el siguiente código:

base1_f3 <- base %>% 
  filter(cyl>4)

obteniendo el siguiente resultado:

base1_f3 
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8

Como se puede observar el resultado es el mismo resultado que la forma 1 y la forma 2.

3 Tratamiento de datos

Para el tratamiento de datos se usa los siguientes paquetes y librerias:

rm(list=ls())
# cargar paquetes y librerias
#install.packages("readxl")
library(readxl)
library(dplyr)

y se debe cargar la base de datos

base <- read_excel("~/2. Espe/11/1/insumos/pib_can_anual.xlsx")
## New names:
## • `` -> `...20`

Además, cambiamos el nombre de la sexta columna de la base de datos

names(base)[6] <- 'agricultura'

3.1 Reemplazar NA por ceros

Para remplazar NA por ceros usamos el siguiente código:

base[is.na(base)] <-0
table(base$canton)
## 
##                  24 De Mayo                    Aguarico 
##                          10                          10 
##                      Alausí    Alfredo Baquerizo Moreno 
##                          10                          10 
##                      Ambato                Antonio Ante 
##                          10                          10 
##                     Arajuno                   Archidona 
##                          10                          10 
##                   Arenillas                    Atacames 
##                          10                          10 
##                   Atahualpa                     Azogues 
##                          10                          10 
##                        Baba                    Babahoyo 
##                          10                          10 
##                       Balao                      Balsas 
##                          10                          10 
##                      Balzar                       Baños 
##                          10                          10 
##                     Biblián                     Bolívar 
##                          10                          20 
##                    Buena Fé                      Caluma 
##                          10                          10 
##                      Calvas       Camilo Ponce Enríquez 
##                          10                          10 
##                       Cañar Carlos Julio Arosemena Tola 
##                          10                          10 
##                    Cascales                    Catamayo 
##                          10                          10 
##                     Cayambe                      Celica 
##                          10                          10 
##        Centinela Del Cóndor                    Cevallos 
##                          10                          10 
##                Chaguarpamba                      Chambo 
##                          10                          10 
##                      Chilla                   Chillanes 
##                          10                          10 
##                      Chimbo                   Chinchipe 
##                          10                          10 
##                       Chone                   Chordeleg 
##                          10                          10 
##                     Chunchi                     Colimes 
##                          10                          10 
##                       Colta Coronel Marcelino Maridueña 
##                          10                          10 
##                   Cotacachi                      Cuenca 
##                          10                          10 
##                     Cumandá                    Cuyabeno 
##                          10                          10 
##                       Daule                       Déleg 
##                          10                          10 
##                       Durán                   Echeandía 
##                          10                          10 
##                   El Carmen                    El Chaco 
##                          10                          10 
##                  El Empalme                    El Guabo 
##                          10                          10 
##                      El Pan                   El Pangui 
##                          10                          10 
##                    El Tambo                  El Triunfo 
##                          10                          10 
##                 Eloy Alfaro                  Esmeraldas 
##                          10                          10 
##                      Espejo                   Espíndola 
##                          10                          10 
##               Flavio Alfaro    General Antonio Elizalde 
##                          10                          10 
##                       Girón             Gonzalo Pizarro 
##                          10                          10 
##                   Gonzanamá                  Guachapala 
##                          10                          10 
##                    Gualaceo                  Gualaquiza 
##                          10                          10 
##                     Guamote                       Guano 
##                          10                          10 
##                    Guaranda                   Guayaquil 
##                          10                          10 
##                    Huamboya                  Huaquillas 
##                          10                          10 
##                      Ibarra                     Isabela 
##                          10                          10 
##                Isidro Ayora                        Jama 
##                          10                          10 
##                    Jaramijó                    Jipijapa 
##                          10                          10 
##                       Junín                La Concordia 
##                          10                          10 
##       La Joya De Los Sachas                 La Libertad 
##                          10                          10 
##                     La Maná                  La Troncal 
##                          10                          10 
##                  Lago Agrio                   Las Lajas 
##                          10                          10 
##                   Las Naves                   Latacunga 
##                          10                          10 
##               Limón-Indanza                     Logroño 
##                          10                          10 
##                        Loja        Lomas De Sargentillo 
##                          10                          10 
##                      Loreto                      Macará 
##                          10                          10 
##                     Machala                       Manta 
##                          10                          10 
##                   Marcabelí                       Mejía 
##                          10                          10 
##                        Mera                     Milagro 
##                          10                          10 
##                        Mira                     Mocache 
##                          10                          10 
##                       Mocha                    Montalvo 
##                          10                          10 
##                 Montecristi                    Montúfar 
##                          10                          10 
##                      Morona                      Muisne 
##                          10                          10 
##                       Nabón                  Nangaritza 
##                          10                          10 
##                    Naranjal                   Naranjito 
##                          10                          10 
##                       Nobol                      Olmedo 
##                          10                          20 
##                         Oña                    Orellana 
##                          10                          10 
##                     Otavalo                    Pablo VI 
##                          10                          10 
##                       Paján                     Palanda 
##                          10                          10 
##                    Palenque                   Palestina 
##                          10                          10 
##                  Pallatanga                      Palora 
##                          10                          10 
##                      Paltas                      Pangua 
##                          10                          10 
##                    Paquisha                      Pasaje 
##                          10                          10 
##                     Pastaza                      Patate 
##                          10                          10 
##                       Paute                  Pedernales 
##                          10                          10 
##                 Pedro Carbo               Pedro Moncayo 
##                          10                          10 
##     Pedro Vicente Maldonado                      Penipe 
##                          10                          10 
##                   Pichincha                   Pimampiro 
##                          10                          10 
##                      Pindal                       Piñas 
##                          10                          10 
##   Playas (General Villamil)                   Portovelo 
##                          10                          10 
##                  Portoviejo                      Pucará 
##                          10                          10 
##                 Puebloviejo                Puerto López 
##                          10                          10 
##                Puerto Quito                      Pujilí 
##                          10                          10 
##                    Putumayo                     Puyango 
##                          10                          10 
##                       Quero                     Quevedo 
##                          10                          10 
##                      Quijos                    Quilanga 
##                          10                          10 
##                    Quinindé                  Quinsaloma 
##                          10                          10 
##                       Quito                    Riobamba 
##                          10                          10 
##                    Rioverde                  Rocafuerte 
##                          10                          10 
##                   Rumiñahui                     Salcedo 
##                          10                          10 
##                     Salinas       Salitre (Urbina Jado) 
##                          10                          10 
##                 Samborondón               San Cristóbal 
##                          10                          10 
##                San Fernando              San Juan Bosco 
##                          10                          10 
##                 San Lorenzo                  San Miguel 
##                          10                          10 
##    San Miguel De Los Bancos       San Miguel De Urcuquí 
##                          10                          10 
##          San Pedro de Huaca        San Pedro De Pelileo 
##                          10                          10 
##                 San Vicente                   Santa Ana 
##                          10                          10 
##                 Santa Clara                  Santa Cruz 
##                          10                          10 
##                 Santa Elena                Santa Isabel 
##                          10                          10 
##                 Santa Lucía                  Santa Rosa 
##                          10                          10 
##                    Santiago         Santiago De Píllaro 
##                          10                          10 
##               Santo Domingo                   Saquisilí 
##                          10                          10 
##                    Saraguro              Sevilla De Oro 
##                          10                          10 
##                 Shushufindi                     Sigchos 
##                          10                          10 
##                      Sigsig               Simón Bolívar 
##                          10                          10 
##                   Sozoranga                       Sucre 
##                          10                          10 
##                       Sucúa                   Sucumbíos 
##                          10                          10 
##                      Suscal                      Taisha 
##                          10                          10 
##                        Tena                     Tisaleo 
##                          10                          10 
##                    Tiwintza                     Tosagua 
##                          10                          10 
##                      Tulcán                    Urdaneta 
##                          10                          10 
##                    Valencia                    Ventanas 
##                          10                          10 
##                      Vinces                    Yacuambí 
##                          10                          10 
##                    Yaguachi                    Yanzatza 
##                          10                          10 
##                      Zamora                   Zapotillo 
##                          10                          10 
##                      Zaruma 
##                          10

3.2 Filtrar datos

Como segundo paso se filtra de la base de datos con la información que se necesita analizar

base_manabi <- base %>%
  filter(prov=="MANABÍ")

y se obtiene el siguiente resultado

## # A tibble: 220 × 20
##     year prov   dpa_prov canton       dpa_can agricultura Explotacion de minas…¹
##    <dbl> <chr>  <chr>    <chr>        <chr>         <dbl>                  <dbl>
##  1  2011 MANABÍ 13       Portoviejo   1301         76379.                   91.5
##  2  2011 MANABÍ 13       Bolívar      1302         26837.                    0  
##  3  2011 MANABÍ 13       Chone        1303         25434.                    0  
##  4  2011 MANABÍ 13       El Carmen    1304         23617.                    0  
##  5  2011 MANABÍ 13       Flavio Alfa… 1305         11233.                    0  
##  6  2011 MANABÍ 13       Jipijapa     1306          3740.                    0  
##  7  2011 MANABÍ 13       Junín        1307        121767.                    0  
##  8  2011 MANABÍ 13       Manta        1308        108364.                   20.8
##  9  2011 MANABÍ 13       Montecristi  1309         34158.                 3502. 
## 10  2011 MANABÍ 13       Paján        1310          4822.                    0  
## # ℹ 210 more rows
## # ℹ abbreviated name: ¹​`Explotacion de minas y canteras`
## # ℹ 13 more variables: `Manufactura\r\n\r\n` <dbl>,
## #   `Suministro de electricidad y de agua` <dbl>, `Construccion\r\n\r\n` <dbl>,
## #   `comercio\r\n\r\n` <dbl>, `Alojamiento y servicios de comida` <dbl>,
## #   `Transporte, informacion y comunicaciones` <dbl>,
## #   `Actividades financieras\r\n` <dbl>, …

3.3 Variables necesarias

En el siguiente paso se debe quedar con las variables necesarias por lo que se usa el siguiente código:

names(base_manabi)
##  [1] "year"                                     
##  [2] "prov"                                     
##  [3] "dpa_prov"                                 
##  [4] "canton"                                   
##  [5] "dpa_can"                                  
##  [6] "agricultura"                              
##  [7] "Explotacion de minas y canteras"          
##  [8] "Manufactura\r\n\r\n"                      
##  [9] "Suministro de electricidad y de agua"     
## [10] "Construccion\r\n\r\n"                     
## [11] "comercio\r\n\r\n"                         
## [12] "Alojamiento y servicios de comida"        
## [13] "Transporte, informacion y comunicaciones" 
## [14] "Actividades financieras\r\n"              
## [15] "Actividades profesionales e inmobiliarias"
## [16] "Administracion publica \r\n"              
## [17] "Enseñanza\r\n\r\n"                        
## [18] "Salud\r\n\r\n"                            
## [19] "Otros servicios\r\n\r\n"                  
## [20] "...20"
base_manabi1 <- base_manabi %>%
  select(year,prov,dpa_prov,canton,dpa_can,agricultura,'Explotacion de minas y canteras')

y obtenemos el siguiente resultado

## # A tibble: 220 × 7
##     year prov   dpa_prov canton       dpa_can agricultura Explotacion de minas…¹
##    <dbl> <chr>  <chr>    <chr>        <chr>         <dbl>                  <dbl>
##  1  2011 MANABÍ 13       Portoviejo   1301         76379.                   91.5
##  2  2011 MANABÍ 13       Bolívar      1302         26837.                    0  
##  3  2011 MANABÍ 13       Chone        1303         25434.                    0  
##  4  2011 MANABÍ 13       El Carmen    1304         23617.                    0  
##  5  2011 MANABÍ 13       Flavio Alfa… 1305         11233.                    0  
##  6  2011 MANABÍ 13       Jipijapa     1306          3740.                    0  
##  7  2011 MANABÍ 13       Junín        1307        121767.                    0  
##  8  2011 MANABÍ 13       Manta        1308        108364.                   20.8
##  9  2011 MANABÍ 13       Montecristi  1309         34158.                 3502. 
## 10  2011 MANABÍ 13       Paján        1310          4822.                    0  
## # ℹ 210 more rows
## # ℹ abbreviated name: ¹​`Explotacion de minas y canteras`

Para usar las variables necesarias podemos ir generando los códigos y las restricciones según la necesidad como se observa en los siguientes ejemplos de códigos.

base_manabi1 <- base_manabi1[,-7]
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"))
base_manabi1_pre <- base_manabi1 %>% 
  filter(periodo=="pre")
base_manabi1_post <- base_manabi1 %>% 
  filter(periodo=="post")
b_m_pre_agg <- base_manabi1_pre %>%
  group_by(canton) %>%
  summarise(total1_agricultura_pre=sum(agricultura))
b_m_post_agg <- base_manabi1_post %>%
  group_by(canton) %>%
  summarise(total1_agricultura_post=sum(agricultura))

A continuación se presenta el resultado obtenido de uno de los ejemplos del código:

base_manabi1_pre <- base_manabi1 %>% 
  filter(periodo=="pre")
## # A tibble: 110 × 9
##     year prov   dpa_prov canton       dpa_can agricultura tipo_pib  tipo periodo
##    <dbl> <chr>  <chr>    <chr>        <chr>         <dbl> <chr>    <dbl> <chr>  
##  1  2011 MANABÍ 13       Portoviejo   1301         76379. pib_alto     1 pre    
##  2  2011 MANABÍ 13       Bolívar      1302         26837. pib_bajo     0 pre    
##  3  2011 MANABÍ 13       Chone        1303         25434. pib_bajo     0 pre    
##  4  2011 MANABÍ 13       El Carmen    1304         23617. pib_bajo     0 pre    
##  5  2011 MANABÍ 13       Flavio Alfa… 1305         11233. pib_bajo     0 pre    
##  6  2011 MANABÍ 13       Jipijapa     1306          3740. pib_bajo     0 pre    
##  7  2011 MANABÍ 13       Junín        1307        121767. pib_alto     1 pre    
##  8  2011 MANABÍ 13       Manta        1308        108364. pib_alto     1 pre    
##  9  2011 MANABÍ 13       Montecristi  1309         34158. pib_alto     1 pre    
## 10  2011 MANABÍ 13       Paján        1310          4822. pib_bajo     0 pre    
## # ℹ 100 more rows

4 Modelos econométricos

Para crear modelos econométricos en R-Studio seguimos el siguiente proceso

4.0.1 Limpiar el entorno

rm(list=ls())

4.0.2 Delimitar número de decimales

options(scipen=999)

4.0.3 Cargar la base de datos

base <- read.csv('~/2. Espe/11/1/insumos/base_final.csv')

4.0.4 Filtrar la base de datos desde 1980 a 2024

base1 <- base %>%
  filter(base$anio>=1980&base$anio<=2024)
base2 <- base %>% 
  filter(anio>=1980)
base1$ingreso_disponible <- base1$pib-base1$impuestos
base2$ingreso_disponible <- base2$pib-base2$impuestos
#forma 2
base3 <- base1 %>% 
  mutate(ingreso_disponible2=pib-impuestos)

4.0.5 Generar el modelo econométrico

modelo <- lm(consumo ~  ingreso_disponible, data = base1)

se obtiene el siguiente resultado

## 
## Call:
## lm(formula = consumo ~ ingreso_disponible, data = base1)
## 
## Coefficients:
##        (Intercept)  ingreso_disponible  
##   14165415645.3289              0.6847

4.0.6 Generar el summary del modelo econométrico

summary(modelo)
## 
## Call:
## lm(formula = consumo ~ ingreso_disponible, data = base1)
## 
## Residuals:
##         Min          1Q      Median          3Q         Max 
## -4901431887 -1069569495  -195228251  1233327995  6870277166 
## 
## Coefficients:
##                             Estimate        Std. Error t value
## (Intercept)        14165415645.32893   935246532.56462   15.15
## ingreso_disponible           0.68472           0.01397   49.01
##                               Pr(>|t|)    
## (Intercept)        <0.0000000000000002 ***
## ingreso_disponible <0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2450000000 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: < 0.00000000000000022

4.0.7 Intervalos de confianza

Encontramos los intervalos de confianza con el siguiente código

confint(modelo)
##                                  2.5 %              97.5 %
## (Intercept)        12279311258.7509937 16051520031.9068737
## ingreso_disponible           0.6565423           0.7128939

4.0.8 Crear variables logaritmicas

Para ajustar los modelos se puede crear variables logaritmicas con el siguiente código:

base3 <- base3 %>% 
  mutate(ln_consumo=log(consumo),
         ln_ingreso_disponible=log(ingreso_disponible))

4.0.9 Generar el modelo logaritmico

Se genera el modelo logaritmico con los nuevos datos

modelo2 <- lm(ln_consumo ~ ln_ingreso_disponible, data = base3)
modelo2
## 
## Call:
## lm(formula = ln_consumo ~ ln_ingreso_disponible, data = base3)
## 
## Coefficients:
##           (Intercept)  ln_ingreso_disponible  
##                6.7050                 0.7271

Generar el summary del modelo

summary(modelo2)
## 
## Call:
## lm(formula = ln_consumo ~ ln_ingreso_disponible, data = base3)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.113225 -0.021156  0.005125  0.031844  0.124035 
## 
## Coefficients:
##                       Estimate Std. Error t value            Pr(>|t|)    
## (Intercept)            6.70498    0.45862   14.62 <0.0000000000000002 ***
## ln_ingreso_disponible  0.72715    0.01852   39.26 <0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.05187 on 43 degrees of freedom
## Multiple R-squared:  0.9729, Adjusted R-squared:  0.9722 
## F-statistic:  1541 on 1 and 43 DF,  p-value: < 0.00000000000000022

5 Otros ejemplos de modelos econométricos

5.1 Modelo desempleo

rm(list = ls())
base <- read.csv('~/2. Espe/11/1/insumos/datos_ecuador.csv')
### 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_desemepleo2 <- lm(base$TasaDesempleo_Porcentaje ~base$PIB_MillonesUSD)
modelo_desempleo
## 
## Call:
## lm(formula = TasaDesempleo_Porcentaje ~ PIB_MillonesUSD, data = base)
## 
## Coefficients:
##     (Intercept)  PIB_MillonesUSD  
##       8.3728246       -0.0001071
modelo_desemepleo2
## 
## Call:
## lm(formula = base$TasaDesempleo_Porcentaje ~ base$PIB_MillonesUSD)
## 
## Coefficients:
##          (Intercept)  base$PIB_MillonesUSD  
##            8.3728246            -0.0001071
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.37282462  0.92082867   9.093 0.000000000000595 ***
## PIB_MillonesUSD -0.00010715  0.00003556  -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_desemepleo2)
## 
## 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.37282462  0.92082867   9.093 0.000000000000595 ***
## base$PIB_MillonesUSD -0.00010715  0.00003556  -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

5.2 Modelo IED

##### Modelo: IED = B1 + B2* RP +u
names(base)
## [1] "anio"                     "trim"                    
## [3] "RiesgoPais"               "PIB_MillonesUSD"         
## [5] "TasaDesempleo_Porcentaje" "IED_MillonesUSD"
model_ied <- lm(IED_MillonesUSD ~ RiesgoPais, data=base)
model_ied 
## 
## Call:
## lm(formula = IED_MillonesUSD ~ RiesgoPais, data = base)
## 
## Coefficients:
## (Intercept)   RiesgoPais  
##   229.89653     -0.04321
summary(model_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 0.000000000129 ***
## 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

5.3 Modelo riesgo país

#### Creamos el Riesgo pais Rezagado
library(dplyr)
base <- base %>% 
  mutate(ied_rezagado1= lag(IED_MillonesUSD,n=1),
         rp_rezagado1 = lag(RiesgoPais,n=1),
         rp_rezagado2 = lag(RiesgoPais,n=2))
#modelo rezagado
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)
model_ied_lag1
## 
## Call:
## lm(formula = IED_MillonesUSD ~ rp_rezagado1, data = base)
## 
## Coefficients:
##  (Intercept)  rp_rezagado1  
##    208.40204      -0.02284
summary(model_ied_lag1)
## 
## Call:
## lm(formula = IED_MillonesUSD ~ rp_rezagado1, data = base)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -319.35  -55.08  -20.33   52.81  271.41 
## 
## Coefficients:
##               Estimate Std. Error t value      Pr(>|t|)    
## (Intercept)  208.40204   30.70883   6.786 0.00000000578 ***
## rp_rezagado1  -0.02284    0.02527  -0.904          0.37    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 110.7 on 60 degrees of freedom
##   (1 observation deleted due to missingness)
## Multiple R-squared:  0.01343,    Adjusted R-squared:  -0.003015 
## F-statistic: 0.8167 on 1 and 60 DF,  p-value: 0.3698

5.4 Modelo IED LAG 2

model_ied_lag2 <- lm(IED_MillonesUSD ~ rp_rezagado2, data=base)
model_ied_lag2
## 
## Call:
## lm(formula = IED_MillonesUSD ~ rp_rezagado2, data = base)
## 
## Coefficients:
##  (Intercept)  rp_rezagado2  
##    214.06880      -0.02707
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 0.00000000332 ***
## 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

6 Manejo de encuestas

Para el manejo de encuestas procedemos de la siguiennte forma:

6.1 Cargar paquetes y libreria

rm(list = ls())
#Librerias
library(dplyr)
#install.packages('srvyr')
library(srvyr)
## 
## Adjuntando el paquete: 'srvyr'
## The following object is masked from 'package:stats':
## 
##     filter
#install.packages('rio')
library(rio)
#install.packages('import')
library(import)
## The import package should not be attached.
## Use "colon syntax" instead, e.g. import::from, or import:::from.

6.2 Cargamos la base de datos

personas <- import('~/2. Espe/11/1/insumos/1_BDD_ENS2018_f1_personas.dta')

6.3 Identificamos la variable

table(personas$dcronica_2)
## 
##    0    1 
## 5591 2210
dci <- 2210/(5591+2210)
dci*100
## [1] 28.3297

6.4 Trabajando con muestras 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
prev_nac_dci2 <- dm %>% 
  summarise(survey_mean(dcronica_2, vartype =c('se','cv'),na.rm=T),
            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))

y se obtiene el siguiente resultado

## Stratified 1 - level Cluster Sampling design (with replacement)
## With (2590) clusters.
## Called via srvyr
## Sampling variables:
##   - ids: upm 
##   - strata: estrato 
##   - weights: fexp 
## Data variables: 
##   - area (dbl), prov (chr), upm (chr), id_viv (chr), id_hogar (chr), id_per
##     (chr), persona (chr), sexo (dbl), f1_s2_3_1 (dbl), f1_s2_3_2 (dbl),
##     f1_s2_4_1 (dbl), f1_s2_4_2 (dbl), f1_s2_4_3 (dbl), f1_s2_7 (dbl), f1_s2_8_1
##     (dbl), f1_s2_8_2 (dbl), f1_s2_9 (dbl), f1_s2_10_1 (dbl), f1_s2_10_2 (dbl),
##     f1_s2_10_3 (dbl), f1_s2_10_4 (dbl), f1_s2_10_5 (dbl), f1_s2_10_6 (dbl),
##     f1_s2_11 (dbl), f1_s2_12 (dbl), f1_s2_13 (dbl), f1_s2_14 (dbl), f1_s2_14_1
##     (dbl), f1_s2_15 (dbl), f1_s2_15_1 (dbl), f1_s2_16 (dbl), f1_s2_17 (dbl),
##     f1_s2_18 (dbl), f1_s2_19_1 (dbl), f1_s2_19_2 (dbl), f1_s2_20 (dbl),
##     f1_s2_21 (dbl), f1_s2_22 (chr), f1_s2_23 (dbl), f1_s2_23_1 (dbl), f1_s3_0
##     (dbl), f1_s3_1 (dbl), f1_s3_2 (dbl), f1_s3_3 (dbl), f1_s3_4_1 (dbl),
##     f1_s3_5_1 (dbl), f1_s3_6 (dbl), f1_s3_7 (dbl), f1_s3_8 (dbl), f1_s3_9_1
##     (dbl), f1_s3_10_2 (dbl), f1_s3_11_2 (dbl), f1_s3_12 (dbl), f1_s3_13 (dbl),
##     f1_s3_14 (dbl), f1_s3_15 (dbl), f1_s3_16_1 (dbl), f1_s3_16_2 (dbl),
##     f1_s3_17 (dbl), f1_s3_18 (dbl), f1_s3_19 (dbl), f1_s3_20_1 (dbl),
##     f1_s3_20_2 (dbl), f1_s3_21 (dbl), f1_s3_22_1 (dbl), f1_s3_22_2 (dbl),
##     f1_s3_23_1 (dbl), f1_s3_23_2 (dbl), f1_s3_24_1 (dbl), f1_s3_24_2 (dbl),
##     f1_s3_25_1 (dbl), f1_s3_25_2 (dbl), f1_s3_26_1 (dbl), f1_s3_26_2 (dbl),
##     f1_s3_27 (dbl), f1_s3_28_1 (dbl), f1_s3_28_2 (dbl), f1_s3_29 (dbl),
##     f1_s3_30_1 (dbl), f1_s3_30_2 (dbl), f1_s4_1 (dbl), f1_s4_2 (dbl), f1_s4_3
##     (dbl), f1_s4_4 (dbl), f1_s4_4_1 (dbl), f1_s4_5 (dbl), f1_s4_6 (dbl),
##     f1_s4_7 (dbl), f1_s4_8 (dbl), f1_s4_9 (dbl), f1_s4_10_1 (dbl), f1_s4_10_2
##     (dbl), f1_s4_10_3 (dbl), f1_s4_11 (dbl), f1_s4_12_1 (dbl), f1_s4_12_2
##     (dbl), f1_s4_12_3 (dbl), f1_s4_13 (dbl), f1_s4_14 (dbl), f1_s4_15 (dbl),
##     f1_s4_16 (dbl), f1_s4_16_1 (dbl), f1_s4_16_2 (dbl), f1_s4_17 (dbl),
##     f1_s4_17_1 (dbl), f1_s4_18 (dbl), f1_s4_18_1 (dbl), f1_s4_19 (dbl),
##     f1_s4_19_1 (dbl), f1_s4_20 (dbl), f1_s4_21 (dbl), f1_s4_22 (dbl),
##     f1_s4_22_1 (dbl), f1_s4_23 (dbl), f1_s4_24 (dbl), f1_s4_25 (dbl), f1_s4_26
##     (dbl), f1_s4_27 (dbl), f1_s4_28 (dbl), f1_s4_29 (dbl), f1_s4_30_1 (dbl),
##     f1_s4_30_2 (dbl), f1_s4_30_3 (dbl), f1_s4_31 (dbl), f1_s4_32 (dbl),
##     f1_s4_32_1 (dbl), f1_s4_32_2 (dbl), f1_s4_33 (dbl), f1_s4_34 (dbl),
##     f1_s4_34_1 (dbl), f1_s4_35 (dbl), f1_s4_35_1 (dbl), f1_s4_36 (dbl),
##     f1_s4_36_1 (dbl), f1_s4_37 (dbl), f1_s4_38 (dbl), f1_s4_39 (dbl), f1_s4_40
##     (dbl), f1_s4_41 (dbl), f1_s4_42 (dbl), f1_s4_43 (dbl), f1_s4_44_1 (dbl),
##     f1_s4_44_2 (dbl), f1_s4_44_3 (dbl), f1_s4_45 (dbl), f1_s4_46_1 (dbl),
##     f1_s4_46_2 (dbl), f1_s4_47 (dbl), f1_s4_48 (dbl), f1_s4_49_1 (dbl),
##     f1_s4_49_2 (dbl), f1_s4_49_3 (dbl), f1_s4_50_1 (dbl), f1_s4_50_2 (dbl),
##     f1_s4_51 (dbl), f1_s4_52 (dbl), f1_s4_53 (dbl), f1_s4_54 (dbl), f1_s4_55
##     (dbl), f1_s4_56 (dbl), f1_s4_57 (dbl), f1_s4_58 (dbl), f1_s4_59 (dbl),
##     f1_s4_60 (dbl), f1_s4_61_1 (dbl), f1_s4_61_2 (dbl), f1_s4_61_3 (dbl),
##     f1_s4_62_1 (dbl), f1_s4_62_2 (dbl), f1_s4_62_3 (dbl), f1_s5_1 (dbl),
##     f1_s5_2 (dbl), f1_s5_3 (dbl), f1_s5_4 (dbl), f1_s5_5 (dbl), f1_s5_6 (dbl),
##     f1_s5_7_1 (dbl), f1_s5_7_2 (dbl), f1_s5_7_3 (dbl), f1_s5_8 (dbl), f1_s5_9_1
##     (dbl), f1_s5_9_2 (dbl), f1_s5_10 (dbl), f1_s5_11 (dbl), f1_s5_12 (dbl),
##     f1_s5_13 (dbl), f1_s5_14 (dbl), f1_s5_15 (dbl), f1_s5_16 (dbl), f1_s5_17
##     (dbl), f1_s5_18_1 (dbl), f1_s5_18_2 (dbl), f1_s5_19 (dbl), f1_s5_20_1
##     (dbl), f1_s5_20_2 (dbl), f1_s5_21 (dbl), f1_s5_22 (dbl), f1_s5_23 (dbl),
##     f1_s5_24 (dbl), f1_s5_25 (dbl), f1_s5_26 (dbl), f1_s5_27 (dbl), f1_s5_28
##     (dbl), f1_s5_29_1 (dbl), f1_s5_29_2 (dbl), f1_s5_29_3 (dbl), f1_s5_30
##     (dbl), f1_s5_31_1 (dbl), f1_s5_31_2 (dbl), f1_s5_32 (dbl), f1_s5_33 (dbl),
##     f1_s5_34 (dbl), f1_s5_35 (dbl), f1_s7_1 (dbl), f1_s7_2_1 (dbl), f1_s7_2_2
##     (dbl), f1_s7_2_3 (dbl), f1_s7_3_1 (dbl), f1_s7_3_2 (dbl), f1_s7_3_3 (dbl),
##     f1_s7_4_1 (dbl), f1_s7_4_2 (dbl), f1_s7_4_3 (dbl), f1_s7_5_1 (dbl),
##     f1_s7_5_2 (dbl), f1_s7_5_3 (dbl), f1_s7_6_1 (dbl), f1_s7_6_2 (dbl),
##     f1_s7_6_3 (dbl), f1_s7_7_1 (dbl), fecha_anio (dbl), fecha_mes (dbl),
##     fecha_dia (dbl), region (dbl), etnia (dbl), estado_civil (dbl), edaddias
##     (dbl), edadanios (dbl), edadmeses (dbl), gedad_meses (dbl), gedad_anios
##     (dbl), nivins (dbl), quintil (dbl), pobreza (dbl), epobreza (dbl),
##     escolaridad (dbl), dcronica (dbl), dglobal (dbl), daguda (dbl), dcronica_2
##     (dbl), dglobal_2 (dbl), daguda_2 (dbl), dsp5_11 (dbl), dobes5_11 (dbl),
##     dspob5_11 (dbl), ddelg5_11 (dbl), dsp12_19 (dbl), dobes12_19 (dbl),
##     dspob12_19 (dbl), ddelg12_19 (dbl), dbpeso19_59 (dbl), dnorm19_59 (dbl),
##     dspeso19_59 (dbl), dobes19_59 (dbl), dspobes19_59 (dbl), fexp (dbl),
##     estrato (chr), nbi_1 (dbl), nbi_2 (dbl)

6.4.1 ENEMDU II TRIMESTRE 2025

rm(list = ls())
library(dplyr)
library(srvyr)
library(rio)
#installed.packages('haven')
library(haven)
df <- read.csv2('~/2. Espe/11/1/insumos/enemdu_persona_2025_II_trimestre.csv')
df2 <- read.csv('~/2. Espe/11/1/insumos/enemdu_persona_2025_II_trimestre.csv',sep = ';')

### Declaracion del disenio muestral
dm <- df %>% 
  as_survey_design(ids=upm,   #unidad primaria de muestreo
                   strata=estrato, #estrato
                   weights = fexp) #f

con el código anterior se obtiene el siguiente resultado

dm
## Stratified 1 - level Cluster Sampling design (with replacement)
## With (3863) clusters.
## Called via srvyr
## Sampling variables:
##   - ids: upm 
##   - strata: estrato 
##   - weights: fexp 
## Data variables: 
##   - area (int), ciudad (int), conglomerado (int), panelm (int), vivienda (int),
##     hogar (int), p01 (int), p02 (int), p03 (int), p04 (int), p05a (int), p05b
##     (int), p06 (int), p07 (int), p08 (int), p081 (int), p085 (int), p09 (int),
##     p10a (int), p10b (int), p11 (int), p12a (int), p12b (int), p15 (int), p15aa
##     (int), p15ab (int), cod_inf (int), p20 (int), p21 (int), p22 (int), p23
##     (int), p232 (int), p233 (int), p24 (int), p25 (int), p26 (int), p27 (int),
##     p28 (int), p29 (int), p29a (int), p30 (int), p31 (int), p32 (int), p33
##     (int), p34 (int), p35 (int), p36 (int), p37 (int), p38 (int), p39 (int),
##     p40 (int), p41 (int), p42 (int), p421 (int), p422 (int), p42a (int), p43
##     (int), p44a (int), p44b (int), p44c (int), p44d (int), p44e (int), p44f
##     (int), p44g (int), p44h (int), p44i (int), p44j (int), p44k (int), p45
##     (int), p46 (int), p47a (int), p47b (int), p48 (int), p49 (int), p50 (int),
##     p51a (int), p51b (int), p51c (int), p52 (int), p53 (int), p54 (int), p54a
##     (int), p55 (int), p56a (int), p56b (int), p57 (int), p58 (int), p61b1
##     (int), p63 (int), p64a (int), p64b (int), p65 (int), p66 (int), p67 (int),
##     p68a (int), p68b (int), p69 (int), p70a (int), p70b (int), p71a (int), p71b
##     (int), p72a (int), p72b (int), p73a (int), p73b (int), p74a (int), p74b
##     (int), p75 (int), p76 (int), p77 (int), p78 (int), sd01 (int), sd021 (int),
##     sd022 (int), sd023 (int), sd024 (int), sd025 (int), sd026 (int), sd027
##     (int), sd028 (int), sd029 (int), sd0210 (int), sd0211 (int), sd03 (int),
##     ced01a (int), estrato (int), fexp (dbl), dominio (int), nnivins (int),
##     ingrl (int), ingpc (dbl), condact (int), empleo (int), desempleo (int),
##     secemp (int), grupo1 (int), rama1 (int), upm (dbl), id_vivienda (dbl),
##     id_hogar (dbl), id_persona (dbl), periodo (int), mes (int)

6.5 Replicar indicadores

6.5.1 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))
tasa_desempleo_nac
## # A tibble: 1 × 4
##   tasa_desempleo tasa_desempleo_se tasa_desempleo_low tasa_desempleo_upp
##            <dbl>             <dbl>              <dbl>              <dbl>
## 1            3.9           0.00239             0.0341             0.0435

6.5.2 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))
tasa_empleo_adec
## # A tibble: 1 × 4
##   tasa_empleo_adecuado tasa_empleo_adecuado_se tasa_empleo_adecuado_low
##                  <dbl>                   <dbl>                    <dbl>
## 1                 36.2                  0.0113                    0.340
## # ℹ 1 more variable: tasa_empleo_adecuado_upp <dbl>

6.5.3 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))
tasa_subempleo_nac
## # A tibble: 1 × 4
##   tasa_subempleo tasa_subempleo_se tasa_subempleo_low tasa_subempleo_upp
##            <dbl>             <dbl>              <dbl>              <dbl>
## 1           19.9           0.00613              0.187              0.211

6.5.4 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))
tasa_empleo_norem
## # A tibble: 1 × 4
##   tasa_empleo_norem tasa_empleo_norem_se tasa_empleo_norem_low
##               <dbl>                <dbl>                 <dbl>
## 1                10               0.0114                0.0778
## # ℹ 1 more variable: tasa_empleo_norem_upp <dbl>