library(readxl)Warning: package 'readxl' was built under R version 4.4.3
data <- read_excel("DATOS_PERU.xlsx")
View(data)Cargar librerías necesarias library(dplyr) # Para manipulación de datos library(ggplot2) # Para visualización de datos library(haven) # Para leer archivos .dta de Stata install.packages(“ggcorrplot”)(Ofrece una solución para reordenar la matriz de correlación y muestra el nivel de significancia en el correlograma) library(ggcorrplot) install.packages(“corrplot”)(es una herramienta para visualizar matrices de correlación de forma clara e intuitiva) library(corrplot) install.packages(“car”) library(car) install.packages(“glmnet”) library(glmnet) #Setear directorio de trabajo setwd(“C:/Users/LENOVO/Desktop/PERU”)
#Cargar la base de datos
library(readxl)Warning: package 'readxl' was built under R version 4.4.3
data <- read_excel("DATOS_PERU.xlsx")
View(data)head(data)# A tibble: 6 × 4
ANIOS EXPORTACIONES AGRICULTORES_VARONES OBREROS_VARONES
<dbl> <dbl> <dbl> <dbl>
1 1991 12.2 41.6 19.9
2 1992 12.5 41.8 19.8
3 1993 12.5 41.5 19.9
4 1994 12.8 40.2 20.3
5 1995 12.6 39.4 20.7
6 1996 13.3 39.2 20.8
sum(is.na(data$EXPORTACIONES))[1] 0
sum(is.na(data$AGRICULTORES_VARONES))[1] 0
sum(is.na(data$OBREROS_VARONES))[1] 0
#Ejemplo1: Análisis de Correlación # Calcular la correlación de Pearson entre Agricultores varones y obreros varones
correlacion <- cor(data$AGRICULTORES_VARONES, data$OBREROS_VARONES, use = "complete.obs")Como se puede apreciar, para los datos de Peru existe una correlación de -0,93; lo cual nos deja en claro que entre las variables de estudio existe una relación negativa excesivamente fuerte, ya que, al aumentar el número de varones agricultores en Perú, los varones obreros tienden a disminuir, considerablemente. # Mostrar el coeficiente de correlación
cat("El coeficiente de correlación de Pearson entre años de agricultores varones y obreros varones es:", correlacion)El coeficiente de correlación de Pearson entre años de agricultores varones y obreros varones es: -0.9325312
library(ggplot2)Warning: package 'ggplot2' was built under R version 4.4.3
ggplot(data, aes(x = ANIOS, y = EXPORTACIONES)) +
geom_point(color = "blue", alpha = 0.5) + # Puntos del gráfico
geom_smooth(method = "lm", color = "green", se = FALSE) + # Línea de regresión lineal
labs(title = "Variacion de las exportaciones",
x = "Años",
y = "Total de exportaciones") +
theme_minimal()`geom_smooth()` using formula = 'y ~ x'
Figura 1: Total de exportaciones.
Como se puede observar en la Figura 1, las exportaciones a nivel de Perú tiene una tendencia positiva fuertemente sostenible a lo largo del tiempo, alcanzando su pico alto en 2007, lo cual se debe primordialmente a la subida de la demanda y por consiguiente, de los precios de algunos productos extractivos como el oro o plata, lo cual, se reflejó en mejoras económicas para dicha nación. Posterior a ello, las exportaciones en cierta medida bajaron, sin embargo, pasado el 2015 se recuperaron gradualmente.
library(dplyr)Warning: package 'dplyr' was built under R version 4.4.3
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
datos_numericos <- select(data, EXPORTACIONES, AGRICULTORES_VARONES, OBREROS_VARONES)matriz_cor <- cor(datos_numericos, use = "complete.obs")print(matriz_cor) EXPORTACIONES AGRICULTORES_VARONES OBREROS_VARONES
EXPORTACIONES 1.0000000 -0.8272636 0.7369958
AGRICULTORES_VARONES -0.8272636 1.0000000 -0.9325312
OBREROS_VARONES 0.7369958 -0.9325312 1.0000000
cor_matriz_pval <- function(data) {
n <- ncol(data)
matriz_pval <- matrix(NA, n, n)
rownames(matriz_pval) <- colnames(data)
colnames(matriz_pval) <- colnames(data)
for (i in 1:n) {
for (j in 1:n) {
matriz_pval[i, j] <- cor.test(data[[i]], data[[j]], use = "complete.obs")$p.value
}
}
return(matriz_pval)
}p_values <- cor_matriz_pval(datos_numericos)print(p_values) EXPORTACIONES AGRICULTORES_VARONES OBREROS_VARONES
EXPORTACIONES 0.000000e+00 2.928186e-09 1.002583e-06
AGRICULTORES_VARONES 2.928186e-09 0.000000e+00 2.932228e-15
OBREROS_VARONES 1.002583e-06 2.932228e-15 0.000000e+00
library(ggcorrplot)Warning: package 'ggcorrplot' was built under R version 4.4.3
ggcorrplot(matriz_cor, lab = TRUE, hc.order = F, type = "lower",
lab_size = 2,tl.cex = 8)Figura 2: Matriz de correlaciones
De acuerdo con la Figura 2, se observa la matríz de correlaciones, en la cual, se aprecia la mayor correlación entre las exportaciones y los obreros varones, por lo que, al incrementarse las exportaciones, el número de obreros varones de Perú, tiende a crecer en una medida considerablemente fuerte. Sin embargo, entre los agricultores varones y las exportaciones, al igual que, entre obreros varones y agricultores varones, existe una correlacion fuertemente negativa. # Generar la matriz de correlaciones con corrplot
library(corrplot)Warning: package 'corrplot' was built under R version 4.4.3
corrplot 0.95 loaded
corrplot(matriz_cor, method = "color", type = "lower",
addCoef.col = "black", tl.col = "blue",number.cex = 0.5,
tl.cex = 0.4, cl.cex = 0.4)Figura 3: Correlación de variables.
La Figura 3 nos muestra la correlación de las variables, cuyos resultados, son idénticos a los expuestos en la Figura 2, donde, el grado de asociación entre exportaciones y obreros varones es el más alto, siendo de 0,74; mientras que, entre las demás variables, existe una asociación fuertemente negativa, es decir, al crecer una variable, la otra tiende a disminuir.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ####### Ejemplo 2: Análisis de regresión lineal ############## ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
modelo <- lm(EXPORTACIONES ~AGRICULTORES_VARONES, data = data)summary(modelo)
Call:
lm(formula = EXPORTACIONES ~ AGRICULTORES_VARONES, data = data)
Residuals:
Min 1Q Median 3Q Max
-5.3324 -2.6376 -0.8744 1.9650 8.9578
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 54.8311 4.0914 13.402 1.94e-14 ***
AGRICULTORES_VARONES -0.9910 0.1209 -8.198 2.93e-09 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3.693 on 31 degrees of freedom
Multiple R-squared: 0.6844, Adjusted R-squared: 0.6742
F-statistic: 67.21 on 1 and 31 DF, p-value: 2.928e-09
Tabla 1: Modelo econométrico.
De acuerdo con la Tabla 1, el presente modelo econométrico de regresión simple nos muestra la relación entre las exportaciones y los agricultores varones, donde, dicho modelo es estadísticamente significativo, cuya relación negativa es fuerte y significativa, de -0,99; indicando que por cada agricultor varon, se espera que las exportaciones disminuyan 0,99 unidades. # Usar el modelo para predecir el ingreso en estas edades
predicciones <- predict(modelo)data.frame(predicciones) predicciones
1 13.57727
2 13.38795
3 13.75202
4 14.96063
5 15.80812
6 16.00927
7 16.73819
8 16.50780
9 16.64400
10 16.84947
11 16.85058
12 17.67004
13 18.43873
14 19.24695
15 20.37465
16 21.57885
17 22.89592
18 24.29904
19 24.47707
20 25.56325
21 26.30708
22 27.43843
23 27.76069
24 27.28144
25 26.61971
26 26.65345
27 26.96736
28 26.89144
29 28.00604
30 20.59969
31 27.36560
32 29.01563
33 29.72623
#Modelo de regresión lineal multivariado
#(más complejo): EXPORTACIONES ~ AGRICULTORES_VARONES ~ OBREROS_VARONES
modelo2 <- lm(EXPORTACIONES ~ AGRICULTORES_VARONES+OBREROS_VARONES, data = data)summary(modelo2)
Call:
lm(formula = EXPORTACIONES ~ AGRICULTORES_VARONES + OBREROS_VARONES,
data = data)
Residuals:
Min 1Q Median 3Q Max
-4.9248 -2.5156 -0.9437 2.0142 8.6706
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 93.3555 41.0180 2.276 0.030154 *
AGRICULTORES_VARONES -1.2862 0.3353 -3.835 0.000599 ***
OBREROS_VARONES -1.3142 1.3923 -0.944 0.352745
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3.7 on 30 degrees of freedom
Multiple R-squared: 0.6935, Adjusted R-squared: 0.673
F-statistic: 33.93 on 2 and 30 DF, p-value: 1.982e-08
Tabla 2: Modelo de regresión múltiple.
De acuerdo con la Tabla 2, se muestra el modelo de regresión múltiple, en el cual, se observa una relación negativa entre las exportaciones y los agricultores varones de Perú, alcanzando el -1,28; lo que deja en claro que, existe una relación negativa y significativa para con las exportaciones. Por otro lado, la variable, obreros varones no es estadísticamente significativa dentro del análisis de este modelo.
Análisis:
library(car)Warning: package 'car' was built under R version 4.4.3
Cargando paquete requerido: carData
Warning: package 'carData' was built under R version 4.4.3
Adjuntando el paquete: 'car'
The following object is masked from 'package:dplyr':
recode
vif_values <- vif(modelo2); vif_valuesAGRICULTORES_VARONES OBREROS_VARONES
7.669562 7.669562
Multicolinealidad: mayor a 5 Por tanto, en este modelo, existe una correlación moderada entre las variables.
#Eliminar la variable altamente correlacionada.
modelo_final <- lm(EXPORTACIONES ~ AGRICULTORES_VARONES, data = data)
summary(modelo_final)
Call:
lm(formula = EXPORTACIONES ~ AGRICULTORES_VARONES, data = data)
Residuals:
Min 1Q Median 3Q Max
-5.3324 -2.6376 -0.8744 1.9650 8.9578
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 54.8311 4.0914 13.402 1.94e-14 ***
AGRICULTORES_VARONES -0.9910 0.1209 -8.198 2.93e-09 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3.693 on 31 degrees of freedom
Multiple R-squared: 0.6844, Adjusted R-squared: 0.6742
F-statistic: 67.21 on 1 and 31 DF, p-value: 2.928e-09
data$DIFERENCIA_VARONES <- data$AGRICULTORES_VARONES - data$OBREROS_VARONES
modelo_dif <- lm(EXPORTACIONES ~ DIFERENCIA_VARONES, data = data)
summary(modelo_dif)
Call:
lm(formula = EXPORTACIONES ~ DIFERENCIA_VARONES, data = data)
Residuals:
Min 1Q Median 3Q Max
-6.0545 -2.6380 -0.8558 2.0644 9.1306
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 30.9859 1.3424 23.08 < 2e-16 ***
DIFERENCIA_VARONES -0.7986 0.1007 -7.93 5.94e-09 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3.778 on 31 degrees of freedom
Multiple R-squared: 0.6698, Adjusted R-squared: 0.6592
F-statistic: 62.89 on 1 and 31 DF, p-value: 5.945e-09
X <- model.matrix(EXPORTACIONES ~ AGRICULTORES_VARONES + OBREROS_VARONES, data = data)[, -1]
Y <- data$EXPORTACIONESlibrary(glmnet)Warning: package 'glmnet' was built under R version 4.4.3
Cargando paquete requerido: Matrix
Loaded glmnet 4.1-8
modelo_ridge <- glmnet(X, Y, alpha = 0) # alpha = 0 para ridge
plot(modelo_ridge)predicciones2 <- predict(modelo2)data.frame(predicciones2) predicciones2
1 13.65007
2 13.59888
3 13.90551
4 14.93376
5 15.54998
6 15.65802
7 16.22534
8 16.21849
9 16.34063
10 17.08644
11 16.98065
12 17.86040
13 18.66621
14 19.58859
15 20.65562
16 21.86604
17 23.05121
18 24.30439
19 24.58069
20 25.49052
21 26.16844
22 26.48071
23 26.65641
24 26.54791
25 25.32481
26 26.38557
27 27.86774
28 27.92439
29 28.96391
30 20.99722
31 26.23559
32 29.26144
33 31.23701