title: “Guia de Estudio - Mishel Calapaqui” author: “Mishel Calapaqui” date: ” 2025-09-18`” output: pdf_document: toc: true number_sections: true html_document: toc: true toc_float: true theme: united dfprint: kable
CLASE 1
rm(list = ls())
utilizar siempre minusculas, sin tildes, ni con caracteres especiales
# <- simbolo para asignacion
teclado en idioma original (ingles)
creacion de objetos
ejecutar codigo (alt+enter)
nombre de variables: escalar
(.) separa los decimales
(,) separa los objetos
NUMEROS
numero en R son tratados como objetos numericos con dobele presicion
en R cuando se escribe (4) R lo guarda como NUMERICO O NUMERIC, o sea en un NUMERO REAL CON DOBLEPRESICON
Ejemplo x <- 4 typeof(x)
Si quieres que R lo guarde especificamente como entero (integer), de debe poner la letra L despues del numero y <- 4L typeof(y)
En R existe el valor especial (Inf) que representa (infinito) se utiliza el signo (/)
10/0
-10/0
El valor de NaN representa un valor no definido (not a number) 0/0 Inf - Inf*
#Se puede acceder a los atributos de un objeto con la función
attributes()
Variables
escalar1 <- 3
escalar2 <- 4
operaciones
escalar1 + escalar2
escalar3 <- escalar1 + escalar2
escalar4 <- escalar3 * escalar2
escalar5 <- escalar4 / escalar1
escalar5
summary(escalar5)
table(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
vectores
(Casi) todo en R es un objeto
• El objeto más básico en R es un vector
• Vector: Colección ordenada elementos del mismo tipo.
vect1 <- c(2,1.5,4) #este es un vector numerico
vect2 <- c("Juan", "Pedro", "Sara") #este es un vector de caracteres
vect3 <- c(5,6,2)
prd1 <- vect1 * escalar4
prd1
ubicacion
se utiliza esto para saber donde esta cada uno de los vectores
vect1 [2]
vect2 [3]
objeto1 <- vect3 [1]
objeto2 <- vect2 [2:3]
objeto3 <- vect2 [1:2]
objeto4 <- vect2 [c(1,3)]
objeto4_f2 <- vect2 [-2] #este es un codigo mas corto en el que solo se elimina un vector y los otros salen en la consola
matrices
vector1 <- c(1,2,3)
vector2 <- c(4,5,6)
vector3 <- c(7,8,9)
matrizA <- cbind(vector1, vector2, vector3)
matrizA #la matriz esta en el orden de 1, 4, 7,......
matrizB <- rbind(vector1, vector2, vect3)
matrizB #la matriz esta en el orden de 1, 2, 3,......
matrizA [,] #codigo corto en que se puede saber com oesta la matriz de A
vectorA <- matrizA [1,2:3]
vectorA
vectorB <- matrizA [3,]
vectorB
vectorC <- matrizB [1:3,2]
vectorC
vectorD <- matrizB [-2,1]
vectorD
base de datos (dataframe)
base1 <- as.data.frame(matrizA)
base2 <- as.data.frame(matrizB)
base1$vector1
cambiar de nombre las variables
nombre_vectores <- c('variable1', 'variable2', 'variable3')
names(base1) <- nombre_vectores
filtros
rm(list = ls())
base <- mtcars
??mtcars
vehiculos con mas de cuatro cilindros
primera forma subset
base1 <- subset(base,base$cyl>4)
base1_f2 <- base[base%cyl>4]
install.packages('dplyr')
library(dplyr)
base_f3 <- base %>%
filter(cyl>4)
library(wooldridge)
segundo filtro
#vehiculo con 4 cilindros o mas
base1 <- subset(base,base$cyl >= 4)
tercer filtro
##vehiculo con menos de 4 cilindros o mas de 6 cilindros
base3_f1 <- subset(base,base$cyl<4 | base$cyl>6 )
base3 <- base[base$cyl<4 | base$cyl>6,]
base3_f3 <- base %>%
filter(cyl<4 | cyl>6)
####vehiculos con un numero de cilindors entre 4 y 6
### (4:6)
base4_f1 <- subset(base, base$cyl>4 & base$cyl<6)
base4_f2 <- base[base$cyl>4 & base$cyl<6,]
base4_f3 <- base %>%
filter(cyl>4 & cyl<6)
##
base3 <- base[base$cyl<4 | base$cyl>6,]
#promedio mean()
mean(base3$wt)
[1] 3.999214
###
base3_f1 <- subset(base,base$hp<100 | base$hp>200)
base3 <- base[base$hp<100 | base$hp>200,]
base4_f3 <- base %>%
filter(hp>100 & hp<200)
base3 <- base[base$hp<100 | base$hp>200,]
mean(base3$mpg)
[1] 20.9625
intalar el paquete rmarkdown
install.packages('rmarkdown')
library(rmarkdown)
creacion de objetos
##escalares
Es la represtancion mas siemple de un numero real (R^1$)
escalar1<-3
escalar2 <- 4
creacion de objetos
Antes de la ejecucion de codigo necesitamos cargar las librerias ```
``` r
library (dplyr)
sumary(carst)ds
library(readxl)
CLASE 2
UTILIZACION DE R MARKDOWN
R Markdown se utiliza para crear documentos que combinan texto, código R, resultados de análisis, imágenes y gráficos en un solo archivo reproducible. Su principal utilidad es generar informes dinámicos, artículos, presentaciones, sitios web o incluso libros que se pueden exportar a formatos como HTML, PDF y Word. Permite documentar el trabajo, compartir resultados con públicos técnicos y no técnicos, y facilita la colaboración al hacer el análisis y el código totalmente reproducibles.
CLASE 3
rm(list =ls())
librerias
install.packages('readxl')
library(readxl)
library(dplyr)
cargar base de datos
library(readxl)
base <- read_excel("insumos1/pib_can_anual.xlsx")
Cambiar de nombre a variables
names(base)[6] <-'agricultura'
Reemplazar los NA con 0
base[is.na(base)] <- 0
Ver cuantas observaciones tengo por variable
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
base_santo <- base %>%
filter(dpa_prov == "23")
base_manabi <- base %>%
filter(prov== "MANABÍ")
Quedarme solo con las variables necesarias
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\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"
base_manabi1 <- base_manabi %>%
select(year,prov,dpa_prov,canton,dpa_can,agricultura,"Explotacion de minas y canteras")
VIsta resumen de una variables
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)
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*
rm(list= ls())
library(readr)
base<- read_csv("insumos1/base_final - base_final.csv")
base_final_base_final <- read_csv("insumos1/base_final - base_final.csv")
View(base_final_base_final)
librerias
library(dplyr)
desde 1980 hasta 2024
base<- base_final_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
options(scipen = 999)
* B2 :En el incremento en 1$ el ingreso disponible en promedio el consumo aumenta*
El resultado queda en 0,68 centavos manteniendo lo demas constante
*creamos variables logaritmicas*
Residuals:
Min 1Q Median 3Q Max
-0.113225 -0.021156 0.005125 0.031844 0.124035
Coefficients:
Estimate Std. Error t value
(Intercept) 6.70498 0.45862 14.62
ln_ingreso_disponible 0.72715 0.01852 39.26
Pr(>|t|)
(Intercept) <0.0000000000000002 ***
ln_ingreso_disponible <0.0000000000000002 ***
CLASE 5
rm(list = ls())
base <- read.csv('insumos/datos_ecuador.xlsx')
base <- datos_ecuador <- read_excel("C:/Users/MEGAPC/OneDrive/Downloads/Curso en R/insumos/datos_ecuador.xlsx")
Modelo : desempleo = B1 + B2 *PIB + u*
#como influye el pib en el desempleo
names(base)
modelo_desempleo <- lm(TasaDesempleo_Porcentaje ~ PIB_MillonesUSD, data = base) #primera forma
modelo_desempleo2 <- lm(base$TasaDesempleo_Porcentaje ~ base$PIB_MillonesUSD) #segunda forma
options(scipen = 999)
summary(modelo_desempleo)
summary(modelo_desempleo2)
modelo : IED = B1 + B2 RP + u*
names(base)
modelo_ied <- lm(IED_MillonesUSD ~ RiesgoPais, data = base)
summary(modelo_ied)
Cremos el riesgo pais resagado
library(dplyr)
base <- base %>%
mutate(ied_rezagado1 = lag(IED_MillonesUSD, n= 1)
rp_rezagado1 = lag("RiesgoPais", n=1)
modelo rezagado
names(base)
model_ied_lag1 <- lm(IED_MillonesUSD ~ rp_rezagado1, data = base)
summary(model_ied_lag1)
model_ied_lag2 <- lm(IED_MillonesUSD ~ rp_rezagado2, data = base)
summary(model_ied_lag2)
CLASE 6
rm(list = ls())
library(dplyr)
install.packages("rio")
library("rio")
install.packages("import")
library(import)
install.packages("srvyr")
library(srvyr)
cargamos datos
library(haven)
personas <- read_dta("insumos1/1_BDD_ENS2018_f1_personas.dta")
View(X1_BDD_ENS2018_f1_personas)
identificamos la variable
table(personas$dcronica_2)
0 1
5591 2210
dci <- 2210/(5591+2210)
dci*100
[1] 28.3297
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 el muestreo sea igual
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))
ENEMU II TRIMESTRE 2025
rm(list = ls())
library(dplyr)
library(srvyr)
library(rio)
cargamos la base de datos
library(readr)
df<- read.csv2('insumos1/enemdu_persona_2025_II_trimestre.csv')
df2 <- read.csv('insumos1/enemdu_persona_2025_II_trimestre.csv',sep = ';')
dm <- df %>%
as_survey_design(ids=upm, #unidad primaria de muestreo
strata=estrato, #estrato
weights = fexp) #f
#### Replicar indicadores
#installed.packages('haven')
library(haven)
#installed.packages('tidyverse')
library(tidyverse)
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_empleo_adecuado <- 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_subempleo_nac<- dm %>%
filter(p03>=15) %>%
summarise(
tasa_subempleo_nac= survey_ratio(
numerator=( condact == 2,condact == 3)
denominator=(condact %in% 1:8),
vartype = c('se','ci')
)
) %>%
mutate(tasa_subempleo_nac = round((tasa_subempleo_nac*100),digits = 1))
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))