library(readxl)
datos <- read_excel("datos_argentina.xlsx")
View(datos)Trabajo Autónomo II
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(“~/Autonomo 2/Guaicha_Thalia_AutonomoII_files”)
Cargar la base de datos (ajusta la ruta del archivo)
Ver las primeras filas del dataset
head(datos)# A tibble: 6 × 4
Años `PIB PERCAPITA (Y)` `IED (X)` `POBLACION ACTIVA (x)`
<chr> <dbl> <dbl> <dbl>
1 1995 2.17 9934. 61.5
2 1996 2.55 10352. 62.0
3 1997 3.13 11057. 62.8
4 1998 2.44 11348. 63.1
5 1999 8.46 10838. 62.6
6 2000 3.67 10632. 62.3
Comprobar si hay valores perdidos en las variables de interés
# Cargar paquetes necesarios
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
# Leer el archivo Excel
datos <- read_excel("datos_argentina.xlsx")
# Renombrar las columnas para facilitar el análisis
datos <- datos %>%
rename(
PIB = `PIB PERCAPITA (Y)`,
IED = `IED (X)`,
EMPLEO = `POBLACION ACTIVA (x)`
)::: {.cell}
```{.r .cell-code}
sum(is.na(datos))
[1] 0
::: # ANALISIS DE CORRELACIÓN
Calcular la correlación de Pearson entre PIB y IED
correlacion <- cor(datos$PIB, datos$IED, use = "complete.obs")
print(correlacion)[1] -0.1617778
Mostrar el coeficiente de correlación
cat(“El coeficiente de correlación de Pearson entre PIB y la IED es:”, correlacion)
Interpretación:
Si el valor está cerca de 1, hay una relación positiva fuerte.
Si está cerca de -1, hay una relación negativa fuerte.
Si está cerca de 0, no hay relación lineal entre las variables.
Análisis: Al calcular la correlación de Pearson entre el Producto Interno Bruto y la Inversión
Extranjera Directa, se observa que existe una correlación de -0.16, en este sentido, se
puede deducir que existe una relación negativa muy débil, ademas, ante un aumento de la
IED, el PIB tiende a disminuir.
La ecuación de Mincer sugiere que cada año adicional de estudios produce un índice de
rendimiento privado (es decir, individual) del 5-8 % anual.
library(ggplot2)
Crear un gráfico de dispersión con una línea de regresión
library (ggplot2)
ggplot(datos, aes(x = IED, y = PIB)) +
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 = "Relación entre PIB e IED",
x = "INVERSION EXTRANJERA DIRECTA",
y = "PRODUCTO INTERNO BRUTO") +
theme_minimal()`geom_smooth()` using formula = 'y ~ x'
Cargar ggplot2 library(ggplot2)
Supongamos que ya tienes un dataframe llamado datos con columnas PIB e IED ggplot(datos, aes(x = IED, y = PIB)) + geom_point() + geom_smooth(method = “lm”, se = TRUE) + labs(title = “Relación entre IED y PIB”, x = “Inversión Extranjera Directa (IED)”, y = “Producto Interno Bruto (PIB)”)
Seleccionar solo las variables numéricas library(dplyr)
datos_numericos <- select(datos, PIB, IED, EMPLEO)Calcular la matriz de correlaciones
matriz_cor <- cor(datos_numericos, use = "complete.obs")Mostrar la matriz de correlaciones
print(matriz_cor) PIB IED EMPLEO
PIB 1.0000000 -0.1617778 0.4890850
IED -0.1617778 1.0000000 -0.3867357
EMPLEO 0.4890850 -0.3867357 1.0000000
Analisis Con relación al PIB Y LA IED: Relación negativa muy débil, a mayor IED, el PIB tiende a
bajar ligeramente (casi sin relación).
Asi mismo con relación el PIB y el Empleo: Relación moderada positiva: A mayor empleo,
mayor PIB. Hay una conexión lineal apreciable.
Finalmente la relación entre LA IED y el empleo: Relación negativa débil/moderada: A
mayor IED, el empleo tiende a bajar. Puede ser estructural.
Función para calcular correlaciones y p-valores
library(Hmisc)
Adjuntando el paquete: 'Hmisc'
The following objects are masked from 'package:dplyr':
src, summarize
The following objects are masked from 'package:base':
format.pval, units
result <- rcorr(as.matrix(datos_numericos))
print(result) PIB IED EMPLEO
PIB 1.00 -0.16 0.49
IED -0.16 1.00 -0.39
EMPLEO 0.49 -0.39 1.00
n= 29
P
PIB IED EMPLEO
PIB 0.4018 0.0071
IED 0.4018 0.0382
EMPLEO 0.0071 0.0382
result$r PIB IED EMPLEO
PIB 1.0000000 -0.1617778 0.4890850
IED -0.1617778 1.0000000 -0.3867357
EMPLEO 0.4890850 -0.3867357 1.0000000
result$P PIB IED EMPLEO
PIB NA 0.40179370 0.007093116
IED 0.401793705 NA 0.038223814
EMPLEO 0.007093116 0.03822381 NA
Graficar la matriz de correlaciones con ggcorrplot
library (ggcorrplot)
ggcorrplot(matriz_cor, lab = TRUE, hc.order = F, type = "lower",
lab_size = 2,tl.cex = 8)library (corrplot)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)++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #Análisis de regresión lineal ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ajustar un modelo de regresión lineal bivariado
modelo <- lm(PIB ~ IED + EMPLEO, data = datos)summary(modelo)
Call:
lm(formula = PIB ~ IED + EMPLEO, data = datos)
Residuals:
Min 1Q Median 3Q Max
-1.8806 -0.6313 -0.2637 0.4384 5.3139
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.717e+01 1.174e+01 -2.314 0.0288 *
IED 3.018e-05 1.738e-04 0.174 0.8635
EMPLEO 4.794e-01 1.772e-01 2.705 0.0119 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.276 on 26 degrees of freedom
Multiple R-squared: 0.2401, Adjusted R-squared: 0.1816
F-statistic: 4.107 on 2 and 26 DF, p-value: 0.02818
Analisis
Como se observa en la tabla solo el empleo tiene un efecto estadísticamente significativo
sobre el PIB, además, el R(cuadrado) es de= 0.2957: Aproximadamente el 29.6% de la
variabilidad en el PIB se explica por el modelo.
El F-statistic = 5.458, p-value = 0.01049, en este sentido el modelo general es
significativo, es decir, al menos una variable tiene un efecto significativo sobre el
PIB.
El empleo es una variable significativa y positiva, es decir, ante un aumento del 1% en
el empleo, el PIB aumenta en 2,02%. La IED no es significativa, por lo que no hay
evidencia estadística suficiente para decir que tiene un efecto sobre el PIB en este
modelo.Finalmente el ajuste del modelo es moderado a bajo, por lo que puede haber otras
variables relevantes que no están incluidas.
Predicción
Es decir, va a predecir que cual es PIB con EMPLEO
Crear un nuevo conjunto de datos con EMPLEO
nuevo_dato <- data.frame(IED = 10, EMPLEO = 50)Usar el modelo para predecir el PIB en estas variables
predicciones <- predict(modelo, nuevo_dato)Mostrar predicciones
data.frame(nuevo_dato, predicciones) IED EMPLEO predicciones
1 10 50 -3.199484
Ejemplo 2.2: Modelo de regresión lineal multivariado
(más complejo): PIB ~ IED,EMPLEO,inversion_alta
modelo2 <- lm(PIB ~ IED+EMPLEO, data = datos)
summary(modelo2)
Call:
lm(formula = PIB ~ IED + EMPLEO, data = datos)
Residuals:
Min 1Q Median 3Q Max
-1.8806 -0.6313 -0.2637 0.4384 5.3139
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.717e+01 1.174e+01 -2.314 0.0288 *
IED 3.018e-05 1.738e-04 0.174 0.8635
EMPLEO 4.794e-01 1.772e-01 2.705 0.0119 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.276 on 26 degrees of freedom
Multiple R-squared: 0.2401, Adjusted R-squared: 0.1816
F-statistic: 4.107 on 2 and 26 DF, p-value: 0.02818
Calcular el VIF
library(car)Cargando paquete requerido: carData
Adjuntando el paquete: 'car'
The following object is masked from 'package:dplyr':
recode
vif_values <- vif(modelo2); vif_values IED EMPLEO
1.175868 1.175868
Multicolinealidad: mayor a 5
En el presente estudio no exite multicolinealidad debido a que es menor a 5, en este caso es:1.17
Crear un nuevo conjunto de datos con IED
nuevo_dato2<- data.frame(IED = 20, EMPLEO = 100)Usar el modelo para predecir el ingreso en estas condiciones
predicciones2 <- predict(modelo2, nuevo_dato2)Mostrar predicciones
data.frame(nuevo_dato2, predicciones2) IED EMPLEO predicciones2
1 20 100 20.77115