#install.packages("WDI")
library(WDI)
#install.packages("wbstats")
library(wbstats)
#install.packages("ggplot2", dependencies = TRUE, repos = "https://cloud.r-project.org")
#install.packages("tidyverse")
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
#install.packages("gplot2")
library(gplots)
##
## Attaching package: 'gplots'
##
## The following object is masked from 'package:stats':
##
## lowess
#install.packages("plm")
library(plm)
##
## Attaching package: 'plm'
##
## The following objects are masked from 'package:dplyr':
##
## between, lag, lead
#Obtener información de 1 país
gdp_data <- wb_data(country=c("MX","EC","CA"), indicator="NY.GDP.PCAP.CD", start_date=2013, end_date=2023)
gdp_data
## # A tibble: 30 × 9
## iso2c iso3c country date NY.GDP.PCAP.CD unit obs_status footnote
## <chr> <chr> <chr> <dbl> <dbl> <chr> <chr> <chr>
## 1 CA CAN Canada 2013 52635. <NA> <NA> <NA>
## 2 CA CAN Canada 2014 50956. <NA> <NA> <NA>
## 3 CA CAN Canada 2015 43596. <NA> <NA> <NA>
## 4 CA CAN Canada 2016 42316. <NA> <NA> <NA>
## 5 CA CAN Canada 2017 45129. <NA> <NA> <NA>
## 6 CA CAN Canada 2018 46549. <NA> <NA> <NA>
## 7 CA CAN Canada 2019 46374. <NA> <NA> <NA>
## 8 CA CAN Canada 2020 43562. <NA> <NA> <NA>
## 9 CA CAN Canada 2021 52515. <NA> <NA> <NA>
## 10 CA CAN Canada 2022 55522. <NA> <NA> <NA>
## # ℹ 20 more rows
## # ℹ 1 more variable: last_updated <date>
Tarea 2 #Generar un conjunto de datos de panel
panel <- select(gdp_data,country,date,NY.GDP.PCAP.CD)
#panel 2 infraestructura
#Infraestructura basada en la produccion de electricidad a partir de fuenets hidroelectricas
#Variables utilizadas para explicar la produccion de electricidad a partir de fuenets hidroelectricas (Consumo de energia renovable,produccion de energia renovable, gasto en investigacion y desarrollo
gdp_infraestructura <- wb_data(country = c("FR", "MX", "JP", "US"), indicator = c("EG.ELC.HYRO.ZS", "EG.FEC.RNEW.ZS", "EG.ELC.RNEW.ZS", "GB.XPD.RSDV.GD.ZS"), start_date =1950 , end_date=2023)
gdp_infraestructura
## # A tibble: 252 × 8
## iso2c iso3c country date EG.ELC.HYRO.ZS EG.ELC.RNEW.ZS EG.FEC.RNEW.ZS
## <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 FR FRA France 1960 54.5 NA NA
## 2 FR FRA France 1961 48.5 NA NA
## 3 FR FRA France 1962 41.6 NA NA
## 4 FR FRA France 1963 47.7 NA NA
## 5 FR FRA France 1964 35.6 NA NA
## 6 FR FRA France 1965 44.2 NA NA
## 7 FR FRA France 1966 47.1 NA NA
## 8 FR FRA France 1967 38.8 NA NA
## 9 FR FRA France 1968 40.9 NA NA
## 10 FR FRA France 1969 38.5 NA NA
## # ℹ 242 more rows
## # ℹ 1 more variable: GB.XPD.RSDV.GD.ZS <dbl>
#generar un conjunto de datos de panel
panel2 <- select(gdp_infraestructura,country,date,EG.ELC.HYRO.ZS,EG.FEC.RNEW.ZS,EG.ELC.RNEW.ZS,GB.XPD.RSDV.GD.ZS)
panel2 <- subset(panel2, date== 1990 | date == 2000 | date == 2010 | date == 2020)
#se ponen el país y después el año
panel2 <- pdata.frame(panel2, index = c("country","date"))
plotmeans(EG.ELC.HYRO.ZS ~ country, main="Heterogeneidad entre países", data=panel2)
plotmeans(EG.ELC.HYRO.ZS ~ date, main="Heterogeneidad entre años", data=panel2)
#Modelo 1 Regresión agrupada (pooled)
pooled <- plm(EG.ELC.HYRO.ZS ~ EG.FEC.RNEW.ZS + EG.ELC.RNEW.ZS + GB.XPD.RSDV.GD.ZS, data = panel2, model = "pooling")
summary(pooled)
## Pooling Model
##
## Call:
## plm(formula = EG.ELC.HYRO.ZS ~ EG.FEC.RNEW.ZS + EG.ELC.RNEW.ZS +
## GB.XPD.RSDV.GD.ZS, data = panel2, model = "pooling")
##
## Balanced Panel: n = 4, T = 2, N = 8
##
## Residuals:
## France-2000 France-2010 Japan-2000 Japan-2010
## 2.0588074 0.0077576 1.0080584 -0.6035035
## Mexico-2000 Mexico-2010 United States-2000 United States-2010
## -0.2866760 -0.3049080 -0.0636541 -1.8158818
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## (Intercept) 1.177496 7.959627 0.1479 0.8896
## EG.FEC.RNEW.ZS 0.053758 0.328744 0.1635 0.8780
## EG.ELC.RNEW.ZS 0.742560 0.494155 1.5027 0.2073
## GB.XPD.RSDV.GD.ZS -0.461782 1.479540 -0.3121 0.7705
##
## Total Sum of Squares: 98.436
## Residual Sum of Squares: 9.0958
## R-Squared: 0.9076
## Adj. R-Squared: 0.83829
## F-statistic: 13.0962 on 3 and 4 DF, p-value: 0.015507
#Modelo 2 Efectos fijos (within)
within <- plm(EG.ELC.HYRO.ZS ~ EG.FEC.RNEW.ZS + EG.ELC.RNEW.ZS + GB.XPD.RSDV.GD.ZS, data = panel2, model = "within")
summary(within)
## Oneway (individual) effect Within Model
##
## Call:
## plm(formula = EG.ELC.HYRO.ZS ~ EG.FEC.RNEW.ZS + EG.ELC.RNEW.ZS +
## GB.XPD.RSDV.GD.ZS, data = panel2, model = "within")
##
## Balanced Panel: n = 4, T = 2, N = 8
##
## Residuals:
## France-2000 France-2010 Japan-2000 Japan-2010
## -0.035091 0.035091 -0.072650 0.072650
## Mexico-2000 Mexico-2010 United States-2000 United States-2010
## 0.041138 -0.041138 0.138824 -0.138824
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## EG.FEC.RNEW.ZS -0.63529 0.17961 -3.5372 0.1754
## EG.ELC.RNEW.ZS 0.98380 0.19577 5.0253 0.1250
## GB.XPD.RSDV.GD.ZS -6.29008 1.00696 -6.2466 0.1011
##
## Total Sum of Squares: 4.5243
## Residual Sum of Squares: 0.054947
## R-Squared: 0.98786
## Adj. R-Squared: 0.91499
## F-statistic: 27.1128 on 3 and 1 DF, p-value: 0.14003
#Prueba pF
pFtest(within,pooled)
##
## F test for individual effects
##
## data: EG.ELC.HYRO.ZS ~ EG.FEC.RNEW.ZS + EG.ELC.RNEW.ZS + GB.XPD.RSDV.GD.ZS
## F = 54.845, df1 = 3, df2 = 1, p-value = 0.09886
## alternative hypothesis: significant effects
#Modelo 3 Efectos aleatorios (random) - Métodos walhus
walhus <- plm(EG.ELC.HYRO.ZS ~ EG.FEC.RNEW.ZS + EG.ELC.RNEW.ZS + GB.XPD.RSDV.GD.ZS, data = panel2, model = "random", random.method="walhus")
summary(walhus)
## Oneway (individual) effect Random Effect Model
## (Wallace-Hussain's transformation)
##
## Call:
## plm(formula = EG.ELC.HYRO.ZS ~ EG.FEC.RNEW.ZS + EG.ELC.RNEW.ZS +
## GB.XPD.RSDV.GD.ZS, data = panel2, model = "random", random.method = "walhus")
##
## Balanced Panel: n = 4, T = 2, N = 8
##
## Effects:
## var std.dev share
## idiosyncratic 1.234 1.111 1
## individual 0.000 0.000 0
## theta: 0
##
## Residuals:
## France-2000 France-2010 Japan-2000 Japan-2010
## 2.0588074 0.0077576 1.0080584 -0.6035035
## Mexico-2000 Mexico-2010 United States-2000 United States-2010
## -0.2866760 -0.3049080 -0.0636541 -1.8158818
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 1.177496 7.959627 0.1479 0.8824
## EG.FEC.RNEW.ZS 0.053758 0.328744 0.1635 0.8701
## EG.ELC.RNEW.ZS 0.742560 0.494155 1.5027 0.1329
## GB.XPD.RSDV.GD.ZS -0.461782 1.479540 -0.3121 0.7550
##
## Total Sum of Squares: 98.436
## Residual Sum of Squares: 9.0958
## R-Squared: 0.9076
## Adj. R-Squared: 0.83829
## Chisq: 39.2886 on 3 DF, p-value: 1.5077e-08
#Modelo 4 Efectos aleatorios (random) - Métodos amemiya
amemiya <- plm(EG.ELC.HYRO.ZS ~ EG.FEC.RNEW.ZS + EG.ELC.RNEW.ZS + GB.XPD.RSDV.GD.ZS, data = panel2, model = "random", random.method="amemiya")
summary(amemiya)
## Oneway (individual) effect Random Effect Model
## (Amemiya's transformation)
##
## Call:
## plm(formula = EG.ELC.HYRO.ZS ~ EG.FEC.RNEW.ZS + EG.ELC.RNEW.ZS +
## GB.XPD.RSDV.GD.ZS, data = panel2, model = "random", random.method = "amemiya")
##
## Balanced Panel: n = 4, T = 2, N = 8
##
## Effects:
## var std.dev share
## idiosyncratic 0.01374 0.11720 0
## individual 29.20262 5.40394 1
## theta: 0.9847
##
## Residuals:
## France-2000 France-2010 Japan-2000 Japan-2010
## 0.0214204 0.0760619 -0.0015358 0.1100157
## Mexico-2000 Mexico-2010 United States-2000 United States-2010
## -0.0754871 -0.2015017 0.1786512 -0.1076246
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 15.29623 4.19256 3.6484 0.0002639 ***
## EG.FEC.RNEW.ZS -0.63252 0.12582 -5.0273 4.976e-07 ***
## EG.ELC.RNEW.ZS 0.97733 0.13712 7.1273 1.023e-12 ***
## GB.XPD.RSDV.GD.ZS -6.12682 0.69544 -8.8100 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 4.5464
## Residual Sum of Squares: 0.10815
## R-Squared: 0.97621
## Adj. R-Squared: 0.95837
## Chisq: 164.15 on 3 DF, p-value: < 2.22e-16
#Modelo 5 Efectos aleatorios (random) - Métodos nerlove
nerlove <- plm(EG.ELC.HYRO.ZS ~ EG.FEC.RNEW.ZS + EG.ELC.RNEW.ZS + GB.XPD.RSDV.GD.ZS, data = panel2, model = "random", random.method="nerlove")
summary(nerlove)
## Oneway (individual) effect Random Effect Model
## (Nerlove's transformation)
##
## Call:
## plm(formula = EG.ELC.HYRO.ZS ~ EG.FEC.RNEW.ZS + EG.ELC.RNEW.ZS +
## GB.XPD.RSDV.GD.ZS, data = panel2, model = "random", random.method = "nerlove")
##
## Balanced Panel: n = 4, T = 2, N = 8
##
## Effects:
## var std.dev share
## idiosyncratic 0.006868 0.082876 0
## individual 38.945982 6.240672 1
## theta: 0.9906
##
## Residuals:
## France-2000 France-2010 Japan-2000 Japan-2010
## -0.0021803 0.0620711 -0.0320368 0.1003209
## Mexico-2000 Mexico-2010 United States-2000 United States-2010
## -0.0370044 -0.1360483 0.1629142 -0.1180364
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 15.46539 5.37957 2.8748 0.004042 **
## EG.FEC.RNEW.ZS -0.63425 0.10507 -6.0362 1.578e-09 ***
## EG.ELC.RNEW.ZS 0.98134 0.11452 8.5688 < 2.2e-16 ***
## GB.XPD.RSDV.GD.ZS -6.22749 0.58592 -10.6285 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 4.5326
## Residual Sum of Squares: 0.0753
## R-Squared: 0.98339
## Adj. R-Squared: 0.97093
## Chisq: 236.773 on 3 DF, p-value: < 2.22e-16