Antes de la ejecucion del codigo, necesitamos cargar las librerias
library(dplyr)
library(readxl)
Es la representacion simple de un numero real (\(R1\))
escalar1 <- 3
escalar1
## [1] 3
escalar2 <- 4
El motor de programacion R puede servir como una calculadora
escalar1 + escalar2
## [1] 7
escalar3 <- escalar1 + escalar2
escalar3<-escalar1+escalar2
escalar4 <- escalar3 * escalar2
escalar5 <- escalar4/escalar1
escalar5
## [1] 9.333333
summary(escalar5)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 9.333 9.333 9.333 9.333 9.333 9.333
table(escalar5)
## escalar5
## 9.33333333333333
## 1
Un vector es la estructura de datos mas sencilla en R. Es una colección ordenada de uno mas elementos del mismo tipo numérico, carácter o lógico
vect1 <- c(2,1.5,4) #vector numérico
vect2 <- c("Juan","Pedro","Sara")
vect3 <- c(5,6,2)
prd1 <- vect1 *escalar4
Un vector es la estructura de datos más básica en R. Es una secuencia o colección ordenada de elementos del mismo tipo (número, carácter o lógico) En R, incluso un solo número es considerado un vector de longitud 1
vect1[2]
## [1] 1.5
vect2[3]
## [1] "Sara"
objeto1 <- vect3[1]
objeto2 <- vect2[2:3]
objeto3 <- vect2[1:2]
objeto4 <- vect2[c(1,3)]
objeto4_f2 <- vect2[-2]
Una matriz es una estructura de datos bidimensional de filas y columnas que organiza elementos del mismo tipo al igual que un vector. En R, una matriz es conceptualmente un vector con dos atributos de dimensión: número de filas y número de columnas
vector1 <- c(1,2,3)
vector2 <- c(4,5,6)
vector3 <- c(7,8,9)
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 3 ### Cargar Librerias
#install.packages("readxl")
#install.packages("here")
library(readxl)
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
library(here)
## here() starts at C:/Users/Hp/Desktop/Proyecto curso R
base<- read_excel(here("insumos","pib_can_anual.xlsx"))
## New names:
## • `` -> `...20`
names(base)[6]<-"agricultura"
base[is.na(base)]<-0
table(base$year)
##
## 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020
## 221 221 221 221 221 221 221 221 221 221
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
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
base_santo<- base%>%
filter(dpa_prov=="23")
base_manabi<-base%>%
filter(prov=="MANABÍ")
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")
summary(base_manabi1$agricultura)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 80.46 4888.18 11260.08 29351.06 38616.46 234997.81
base_manabi1<-base_manabi1[,-7]
base_manabi1<-base_manabi1 %>%
mutate(tipo=ifelse(agricultura>29351,1,0))
base_manabi1<-base_manabi1 %>%
mutate(periodo=ifelse(year<2016,"pre","post"))
base_manabi_pre<-base_manabi1 %>%
filter(periodo=="pre")
base_manabi_post<-base_manabi1 %>%
filter(periodo=="post")
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))
Un modelo econométrico en R Studio es la aplicación de la econometría utilizando el lenguaje y entorno de programación. Es una representación matemática y estadistica de la relación que existe entre dos o mas variables económicas, permitiendo su cuantificación empirica y la realización de predicciones.
C = B1 + B2Yd + u
rm(list=ls())
library(here)
library(readr)
base<- read.csv(here("insumos","base_final.csv"))
base<-subset(base,base$anio>=1980)
base <- base %>%
mutate(ingreso_disponible = pib - impuestos)
options(scipen=999)
modelo<-lm(consumo~ingreso_disponible,data=base)
summary(modelo)
##
## Call:
## lm(formula = consumo ~ ingreso_disponible, data = base)
##
## 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
base <- base %>%
mutate(ln_consumo = log(consumo),
ln_ingreso_disponible = log(ingreso_disponible))
modelo2 <- lm(ln_consumo ~ ln_ingreso_disponible, data = base)
summary(modelo2)
##
## Call:
## lm(formula = ln_consumo ~ ln_ingreso_disponible, data = base)
##
## 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
rm(list=ls())
library(here)
library(readr)
base<- read.csv(here("insumos","datos_ecuador.csv"))
modelo_desempleo <- lm(TasaDesempleo_Porcentaje ~ PIB_MillonesUSD, data=base)
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
model_ied <- lm(IED_MillonesUSD ~ RiesgoPais, data=base)
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
library(dplyr)
base <- base %>%
mutate(ied_rezagado1= lag(IED_MillonesUSD,n=1),
rp_rezagado1 = lag(RiesgoPais,n=1),
rp_rezagado2 = lag(RiesgoPais,n=2))
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
## -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
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 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
El manejo y análisis de encuestas en R Studio es un proceso robusto y flexible que abarca desde la importación de datos hasta la aplicación de métodos estadisticos complejos, todo ello facilitado por el entorno interactivo de R Studio y las librerias ## Ejercicio ### Cargar librerias necesarias
rm(list=ls())
library(here)
library(readr)
library(srvyr)
##
## Adjuntando el paquete: 'srvyr'
## The following object is masked from 'package:stats':
##
## filter
library(rio)
library(import)
## The import package should not be attached.
## Use "colon syntax" instead, e.g. import::from, or import:::from.
##
## Adjuntando el paquete: 'import'
## The following object is masked from 'package:here':
##
## here
rm(list=ls())
library(here)
library(readr)
personas<- rio::import(here::here("insumos","1_BDD_ENS2018_f1_personas.dta"))
table(personas$dcronica_2)
##
## 0 1
## 5591 2210
dci <- 2210/(5591+2210)
dci*100
## [1] 28.3297
dm <- personas %>%
as_survey_design(ids=upm,
strata=estrato,
weights = fexp)
options(survey.lonely.psu = 'certainty')
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))
library(haven)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ stringr 1.5.2
## ✔ ggplot2 4.0.0 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.1.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ srvyr::filter() masks dplyr::filter(), stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(srvyr)
df<- read.csv2(here::here("insumos","enemdu_persona_2025_II_trimestre.csv"))
dm <- df %>%
as_survey_design(ids=upm,
strata=estrato,
weights = fexp)
Se trata de reproducir el proceso esto es crucial para generar un indicador específico, para la reproducibilidad cientifica y para validar resultados, especialmente y al replicar indicadores oficiales o complejos ## Tasa de desempleo Nacional
tasa_desempleo_nac <- dm %>%
filter(p03>=15) %>%
summarise(
tasa_desempleo = survey_ratio(
numerator= condact %in% c(7,8),
denominator=condact %in% 1:8,
vartype = c('se','ci')
)
) %>%
mutate(tasa_desempleo = round((tasa_desempleo*100),1))
print(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
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))
print(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>
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))
print(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
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))
print(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>