ARGENTINA

Author

Jonathan Jimenez

Introducción al Análisis de Correlación y de Regresión Lineal

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)

#Setear directorio de trabajo setwd(“C:/Users/LENOVO/Desktop/ARGENTINA”)

#Cargar la base de datos

library(readxl)
Warning: package 'readxl' was built under R version 4.4.3
data <- read_excel("DATOS_ARGENTINA.xlsx")
View(data)

Ver las primeras filas del dataset

head(data)
# A tibble: 6 × 4
  ANIOS EXPORTACIONES AGRICULTORES_VARONES OBREROS_VARONES
  <dbl>         <dbl>                <dbl>           <dbl>
1  1991   11978000000                 1.78            40.6
2  1992   12235000000                 1.76            40.5
3  1993   13118000000                 1.70            37.9
4  1994   15659000000                 1.67            37.4
5  1995   20967000000                 1.65            34.5
6  1996   23811000000                 1.63            33.2

Comprobar si hay valores perdidos en las variables de interés

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")

Mostrar el coeficiente de correlación

cat("El coeficiente de correlación de Pearson entre años de escolaridad e ingreso es:", correlacion)
El coeficiente de correlación de Pearson entre años de escolaridad e ingreso es: 0.4204968
library(ggplot2)
Warning: package 'ggplot2' was built under R version 4.4.3

Crear un gráfico de dispersión con una línea de regresión

ggplot(data, aes(x = ANIOS, y = EXPORTACIONES)) +
  geom_point(color = "blue", alpha = 0.5) +  # Puntos del gráfico
  geom_smooth(method = "lm", color = "red", 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'

Seleccionar solo las variables numéricas

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, ANIOS, EXPORTACIONES, AGRICULTORES_VARONES, OBREROS_VARONES)

Calcular la matriz de correlaciones

matriz_cor <- cor(datos_numericos, use = "complete.obs")

Mostrar la matriz de correlaciones

print(matriz_cor)
                          ANIOS EXPORTACIONES AGRICULTORES_VARONES
ANIOS                 1.0000000     0.8871995           -0.9841811
EXPORTACIONES         0.8871995     1.0000000           -0.9230163
AGRICULTORES_VARONES -0.9841811    -0.9230163            1.0000000
OBREROS_VARONES      -0.4784961    -0.3168828            0.4204968
                     OBREROS_VARONES
ANIOS                     -0.4784961
EXPORTACIONES             -0.3168828
AGRICULTORES_VARONES       0.4204968
OBREROS_VARONES            1.0000000

Función para calcular correlaciones y p-valores

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)
}

Aplicar a las variables numéricas

p_values <- cor_matriz_pval(datos_numericos)

Mostrar la matriz de p-valores

print(p_values)
                            ANIOS EXPORTACIONES AGRICULTORES_VARONES
ANIOS                0.000000e+00  6.126893e-12         7.227935e-25
EXPORTACIONES        6.126893e-12 3.331048e-244         2.119353e-14
AGRICULTORES_VARONES 7.227935e-25  2.119353e-14         0.000000e+00
OBREROS_VARONES      4.850704e-03  7.236901e-02         1.482638e-02
                     OBREROS_VARONES
ANIOS                    0.004850704
EXPORTACIONES            0.072369010
AGRICULTORES_VARONES     0.014826376
OBREROS_VARONES          0.000000000

Graficar la matriz de correlaciones con ggcorrplot

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)

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)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ####### Ejemplo 2: Análisis de regresión lineal ############## ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

modelo <- lm(EXPORTACIONES ~OBREROS_VARONES + AGRICULTORES_VARONES, data = data)

Mostrar el resumen del modelo

summary(modelo)

Call:
lm(formula = EXPORTACIONES ~ OBREROS_VARONES + AGRICULTORES_VARONES, 
    data = data)

Residuals:
       Min         1Q     Median         3Q        Max 
-1.728e+10 -4.593e+09 -5.395e+08  3.914e+09  2.157e+10 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)           1.058e+11  1.977e+10   5.350 8.66e-06 ***
OBREROS_VARONES       7.396e+08  6.477e+08   1.142    0.263    
AGRICULTORES_VARONES -6.772e+10  5.350e+09 -12.658 1.45e-13 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 9.202e+09 on 30 degrees of freedom
Multiple R-squared:  0.8581,    Adjusted R-squared:  0.8487 
F-statistic: 90.73 on 2 and 30 DF,  p-value: 1.899e-13

Usar el modelo para predecir el ingreso en estas edades

predicciones <- predict(modelo)

Mostrar predicciones

data.frame(predicciones)
   predicciones
1   15275473067
2   16827631201
3   18568771244
4   20031527818
5   19496723338
6   19730461299
7   23628109420
8   25483511543
9   25574213657
10  26880508184
11  27155120631
12  25174726813
13  30628457333
14  36666568821
15  42428592299
16  47070531543
17  51395488813
18  54725775559
19  55548928274
20  59530340827
21  62476208658
22  63911272794
23  66405037238
24  68048965403
25  71220093834
26  71612728352
27  69679151941
28  69443842295
29  70504595474
30  72166791166
31  74020405237
32  72223100061
33  76296345864

#Modelo de regresión lineal multivariado