# LIBRERÍAS NECESARIAS PARA TODO EL SCRIPT
library(dplyr) # Manipulación de datos
## Warning: package 'dplyr' was built under R version 4.4.2
##
## 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(ggplot2) # Gráficos
## Warning: package 'ggplot2' was built under R version 4.4.2
library(modelsummary) # Tablas de regresión
## Warning: package 'modelsummary' was built under R version 4.4.2
library(kableExtra) # Mejorar visualización de tablas en HTML/LaTeX
## Warning: package 'kableExtra' was built under R version 4.4.3
##
## Adjuntando el paquete: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
library(lm.beta) # Coeficientes estandarizados en regresión lineal
## Warning: package 'lm.beta' was built under R version 4.4.3
library(sjPlot) # Gráficos de modelos
## Warning: package 'sjPlot' was built under R version 4.4.3
library(magrittr) # Pipes %>% y estilo de código
library(knitr) # Para generar tablas con kable()
library(lmtest) # Test estadísticos como Breusch-Pagan y LR Test
## Cargando paquete requerido: zoo
##
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(DescTools) # Para VIF y otros diagnósticos
## Warning: package 'DescTools' was built under R version 4.4.2
##
## Adjuntando el paquete: 'DescTools'
## The following objects are masked from 'package:modelsummary':
##
## Format, Mean, Median, N, SD, Var
library(AER) # Para test de sobre/infra dispersión
## Warning: package 'AER' was built under R version 4.4.2
## Cargando paquete requerido: car
## Warning: package 'car' was built under R version 4.4.3
## Cargando paquete requerido: carData
##
## Adjuntando el paquete: 'car'
## The following object is masked from 'package:DescTools':
##
## Recode
## The following object is masked from 'package:dplyr':
##
## recode
## Cargando paquete requerido: sandwich
## Cargando paquete requerido: survival
## Warning: package 'survival' was built under R version 4.4.2
library(MASS) # Para regresión binomial negativa (glm.nb)
## Warning: package 'MASS' was built under R version 4.4.2
##
## Adjuntando el paquete: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
library(dotwhisker) # Para graficar coeficientes (dwplot)
## Warning: package 'dotwhisker' was built under R version 4.4.2
library(margins) # Para efectos marginales promedio en logística
## Warning: package 'margins' was built under R version 4.4.3
library(survival) # Para regresión Cox
library(survminer) # Para gráficos Kaplan-Meier y forest plot en Cox
## Warning: package 'survminer' was built under R version 4.4.3
## Cargando paquete requerido: ggpubr
## Warning: package 'ggpubr' was built under R version 4.4.2
##
## Adjuntando el paquete: 'survminer'
## The following object is masked from 'package:survival':
##
## myeloma
library (rio)
youth= read.csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vRd4xjF3rFwMzpvOQ00NW-GlMwqaDR-TpLtIyD-pjPWZnc6lW2XP5JpFVoQikSn9W7hr4KZqhKd2nd2/pub?output=csv")
t_mobile= read.csv ("https://docs.google.com/spreadsheets/d/e/2PACX-1vQDtSZ27auUI2kmuDOSXjwdCzuTJ5zC1kVK3G0TQaluOW757c1QWKaoky1vpxnHT7HPnWqDIrXbtluH/pub?gid=2007480666&single=true&output=csv")
t_fixed= read.csv ("https://docs.google.com/spreadsheets/d/e/2PACX-1vSTyvoKzYxo2hqLFX5PZhAZa5FcBd2dkDU5m5CIk0yoJf0s7zua3u3DyH3vRIu4oSshHeEtF1mJ8Fqn/pub?output=csv")
public_debt= read.csv ("https://docs.google.com/spreadsheets/d/e/2PACX-1vQHIFncMGb6i26UzQ-1l96zHEM8C6cbqEgm1LpZKkwsMUjXmBVSF2ePqzvWhOWlBNFk84JQ6Z20n9kw/pub?output=csv")
inflation= read.csv ("https://docs.google.com/spreadsheets/d/e/2PACX-1vQHGQUCWvV9OOdkvCpI0jrMvH7iz86R-5qdWNbn3oNNZZPQXCOhgdPL2QaoMNCHTh0O_sxPMjWyi6wF/pub?output=csv")
energycon= read.csv ("https://docs.google.com/spreadsheets/d/e/2PACX-1vTHaTfQNDqohM4q0KOCHWd2jtxmUobQIQfpE2SCNaGr-tfYcN9ifwnalMhFcQ00YaBPLgc8V5u7rVhb/pub?output=csv")
electri= read.csv ("https://docs.google.com/spreadsheets/d/e/2PACX-1vQDIyHLBbEnFXiqtztGG7uC3PLIw5KcNyAlgzU8d9Vm1emqxA_SshO28_UgFuNJ3O3L8gUoidjCNfMM/pub?output=csv")
debt_ext= read.csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vTJdxsH8fhPSrB2LAH4We52E2sEnEUysJ2LuXwa8DUv4OM7-uDpgNABaWn0BngG66IJU9BO4vBvYFiT/pub?output=csv")
co2= read.csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vRWq2gYjO7F2H91Uugh7ffEIi1sukKyxZVVUNxwqTGDj2Ujw8NsG3IXqGhIc7cKyL2kewK2K_xgC7Q9/pub?output=csv")
broad= read.csv ("https://docs.google.com/spreadsheets/d/e/2PACX-1vTRCTnX64ZyF_KOec0o-ibFzLDD6BLPoRQmxPVCt5ggKG9_rg5AbTSCuf5ktv3mks7WkPULlOiKtR6t/pub?output=csv")
library(dplyr)
library(purrr)
##
## Adjuntando el paquete: 'purrr'
## The following object is masked from 'package:car':
##
## some
## The following object is masked from 'package:magrittr':
##
## set_names
# Lista de data frames
listas_df <- list(youth, t_mobile, t_fixed, public_debt, inflation,
energycon, electri, debt_ext, co2, broad)
# Usamos inner_join para conservar solo las coincidencias comunes
merged_all <- reduce(listas_df, inner_join, by = "name")
str(merged_all)
## 'data.frame': 119 obs. of 11 variables:
## $ name : chr "Djibouti" "South Africa" "Eswatini" "Botswana" ...
## $ youth : num 76.3 60.9 58.2 43.9 41.7 41.4 40.1 40 37.5 36 ...
## $ mobile : chr "574,00" "108,000,000" "1,520,000" "4,440,000" ...
## $ value : chr "29,00" "1,353,000" "42,00" "90,00" ...
## $ X..of.GDP : chr "45.900,00" "76.2" "36.2" "45.827,00" ...
## $ inflation : chr "45.778,00" "45.751,00" "45.810,00" "45.871,00" ...
## $ Btu.person: chr "10,428,000" "86,197,000" "18,823,000" "32,443,000" ...
## $ kW : chr "210,00" "65,989,000" "285,00" "758,00" ...
## $ Debt : chr "2,531,000,000" "93,879,000,000" "923,266,000" "1,761,000,000" ...
## $ CO2 : chr "685,00" "446,704,000" "1,326,000" "5,897,000" ...
## $ broad : chr "17,00" "2,150,000" "34,00" "85,00" ...
# Lista de columnas a convertir
cols_to_convert <- c("mobile", "value", "X..of.GDP", "inflation",
"Btu.person", "kW", "Debt", "CO2", "broad")
# Aplicamos limpieza y conversión a numérica
merged_all[cols_to_convert] <- lapply(merged_all[cols_to_convert], function(x) {
x <- gsub(",", "", x) # Quitamos comas
as.numeric(x) # Convertimos a numérico
})
str(merged_all)
## 'data.frame': 119 obs. of 11 variables:
## $ name : chr "Djibouti" "South Africa" "Eswatini" "Botswana" ...
## $ youth : num 76.3 60.9 58.2 43.9 41.7 41.4 40.1 40 37.5 36 ...
## $ mobile : num 5.74e+04 1.08e+08 1.52e+06 4.44e+06 7.73e+06 1.03e+04 1.64e+07 5.87e+06 7.32e+06 3.00e+06 ...
## $ value : num 2900 1353000 4200 9000 45100 ...
## $ X..of.GDP : num 45.9 76.2 36.2 45.8 103.1 ...
## $ inflation : num 45.8 45.8 45.8 45.9 45.7 ...
## $ Btu.person: num 10428000 86197000 18823000 32443000 32909000 ...
## $ kW : num 21000 65989000 28500 75800 6891000 ...
## $ Debt : num 2.53e+09 9.39e+10 9.23e+08 1.76e+09 2.11e+10 ...
## $ CO2 : num 6.85e+04 4.47e+08 1.33e+06 5.90e+06 2.24e+07 ...
## $ broad : num 1700 2150000 3400 8500 80500 3100 1730000 7800 3500 8000 ...
summary(merged_all)
## name youth mobile value
## Length:119 Min. : 0.30 Min. :6.400e+03 Min. : 0
## Class :character 1st Qu.: 6.45 1st Qu.:3.570e+06 1st Qu.: 4000
## Mode :character Median :11.90 Median :1.180e+07 Median : 27800
## Mean :16.12 Mean :5.915e+07 Mean : 3437271
## 3rd Qu.:22.90 3rd Qu.:3.975e+07 3rd Qu.: 1393500
## Max. :76.30 Max. :1.810e+09 Max. :173326000
## X..of.GDP inflation Btu.person kW
## Min. : 31.40 Min. : -6.60 Min. : 64900 Min. :2.900e+03
## 1st Qu.: 45.71 1st Qu.: 45.69 1st Qu.: 6538000 1st Qu.:4.885e+04
## Median : 55.60 Median : 45.78 Median : 19999000 Median :2.853e+06
## Mean : 803.59 Mean : 87.80 Mean : 33587050 Mean :4.394e+07
## 3rd Qu.: 82.10 3rd Qu.: 45.87 3rd Qu.: 46783500 3rd Qu.:8.410e+06
## Max. :11100.00 Max. :1700.00 Max. :261142000 Max. :2.949e+09
## Debt CO2 broad
## Min. :1.593e+08 Min. :1.460e+04 Min. : 0
## 1st Qu.:2.641e+09 1st Qu.:2.648e+06 1st Qu.: 3200
## Median :6.759e+09 Median :8.694e+06 Median : 37700
## Mean :2.955e+10 Mean :2.015e+08 Mean : 8375214
## 3rd Qu.:2.557e+10 3rd Qu.:3.588e+07 3rd Qu.: 1870000
## Max. :4.881e+11 Max. :1.220e+10 Max. :636000000
str(merged_all)
## 'data.frame': 119 obs. of 11 variables:
## $ name : chr "Djibouti" "South Africa" "Eswatini" "Botswana" ...
## $ youth : num 76.3 60.9 58.2 43.9 41.7 41.4 40.1 40 37.5 36 ...
## $ mobile : num 5.74e+04 1.08e+08 1.52e+06 4.44e+06 7.73e+06 1.03e+04 1.64e+07 5.87e+06 7.32e+06 3.00e+06 ...
## $ value : num 2900 1353000 4200 9000 45100 ...
## $ X..of.GDP : num 45.9 76.2 36.2 45.8 103.1 ...
## $ inflation : num 45.8 45.8 45.8 45.9 45.7 ...
## $ Btu.person: num 10428000 86197000 18823000 32443000 32909000 ...
## $ kW : num 21000 65989000 28500 75800 6891000 ...
## $ Debt : num 2.53e+09 9.39e+10 9.23e+08 1.76e+09 2.11e+10 ...
## $ CO2 : num 6.85e+04 4.47e+08 1.33e+06 5.90e+06 2.24e+07 ...
## $ broad : num 1700 2150000 3400 8500 80500 3100 1730000 7800 3500 8000 ...
reg1=lm( youth~mobile+value+Btu.person+kW+CO2+broad,data=merged_all)
summary(reg1)
##
## Call:
## lm(formula = youth ~ mobile + value + Btu.person + kW + CO2 +
## broad, data = merged_all)
##
## Residuals:
## Min 1Q Median 3Q Max
## -19.033 -9.610 -3.545 6.856 59.923
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.616e+01 1.849e+00 8.743 2.59e-14 ***
## mobile -3.261e-08 2.602e-08 -1.253 0.213
## value -1.423e-08 4.103e-07 -0.035 0.972
## Btu.person 2.069e-08 3.700e-08 0.559 0.577
## kW 1.141e-07 1.059e-07 1.077 0.284
## CO2 -2.481e-09 1.538e-08 -0.161 0.872
## broad -3.911e-07 3.151e-07 -1.241 0.217
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 13.45 on 112 degrees of freedom
## Multiple R-squared: 0.02933, Adjusted R-squared: -0.02267
## F-statistic: 0.564 on 6 and 112 DF, p-value: 0.7582
reg2=lm( X..of.GDP~mobile+value+Btu.person+kW+CO2+broad,data=merged_all)
summary(reg2)
##
## Call:
## lm(formula = X..of.GDP ~ mobile + value + Btu.person + kW + CO2 +
## broad, data = merged_all)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1452.7 -737.9 -710.0 -644.8 10380.6
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.986e+02 3.057e+02 2.613 0.0102 *
## mobile -5.697e-07 4.304e-06 -0.132 0.8949
## value 1.799e-05 6.784e-05 0.265 0.7913
## Btu.person -1.381e-06 6.118e-06 -0.226 0.8218
## kW 3.998e-06 1.751e-05 0.228 0.8198
## CO2 -5.329e-07 2.543e-06 -0.210 0.8344
## broad -5.389e-06 5.211e-05 -0.103 0.9178
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2225 on 112 degrees of freedom
## Multiple R-squared: 0.02758, Adjusted R-squared: -0.02451
## F-statistic: 0.5295 on 6 and 112 DF, p-value: 0.7849
reg3=lm( inflation ~mobile+value+Btu.person+kW+CO2+broad,data=merged_all)
summary(reg3)
##
## Call:
## lm(formula = inflation ~ mobile + value + Btu.person + kW + CO2 +
## broad, data = merged_all)
##
## Residuals:
## Min 1Q Median 3Q Max
## -182.00 -47.54 -35.05 -26.86 1629.12
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.910e+01 2.706e+01 2.554 0.012 *
## mobile 1.538e-07 3.809e-07 0.404 0.687
## value -4.605e-06 6.005e-06 -0.767 0.445
## Btu.person 5.071e-07 5.416e-07 0.936 0.351
## kW 1.020e-06 1.550e-06 0.658 0.512
## CO2 -4.439e-08 2.251e-07 -0.197 0.844
## broad -3.280e-06 4.613e-06 -0.711 0.479
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 196.9 on 112 degrees of freedom
## Multiple R-squared: 0.03833, Adjusted R-squared: -0.01319
## F-statistic: 0.744 on 6 and 112 DF, p-value: 0.6154
RPTA: Cuando usa inflacion como dependiente, fixlines y CO2 tienen efecto inverso sobre ésta.