Présentation

On cherche aujourd’hui à reproduire la méthode présentée dans l’article de Mankiw, Romer, and Weil (1990). Les auteurs cherchent à estimer le modèle de Solow (1988). Les deux hypothèses que l’ont cherche à tester sont:

Nous allons ici nous limiter à l’estimation du modèle de Solow standard et laisser de côté le modèle augmenté du capital humain, je vous invite à lire l’article pour avoir plus d’informations à ce sujet.

L’équation que nous souhaitons estimer est la suivante:

\[ \ln\left[\frac{Y}{L}\right] = c + \frac{\alpha}{1-\alpha}\ln(s) - \frac{\alpha}{1-\alpha}\ln(n+e+\delta) + \epsilon\] Avec:

La méthode se déroule en trois parties:

  1. Créer notre base de données.
  2. Visualiser nos données à travers des graphiques
  3. Estimer l’équation du modèle

Création de notre base de données

Je commence par déclarer quelques variables utiles pour la suite.

> startDate <- 1970
> middleDate <- 1985
> endDate   <- 2014
> 
> # Je mets ici la liste des pays de l'OCDE, j'en aurai besoin plus tard
> OECD_list <- c("BRA", "CHN", "COL", "CRI", "HUN", "IDN", "IND", "ISL", "LUX", "ZAF", "ARG", "AUS", "AUT", "BEL", "CAN", "CHE", "CHL", "DEU", "DNK", "ESP", "FIN", "FRA", "GBR", "GRC", "IRL", "ISR", "ITA", "JPN", "KOR", "MEX", "NLD", "NOR", "NZL", "POL", "PRT", "SWE", "TUR")

Je télécharge ensuite les données.

url <- getURL('http://mayerowitz.io/download/pwt90.csv')
data <- read.csv(text = url, sep=";")

On isole les variables qui nous intéressent:

df <- as.data.frame(data) %>%
  select(countrycode, country, year, rgdpo, cgdpo, ccon, csh_i, pop, delta, hc)

On crée les variables dont on a besoin

df <- df %>% 
  mutate(s_proxy = (csh_i*cgdpo)/cgdpo, # Taux d'épargne
         rgdpoPop= rgdpo/pop,           # PIB/hab
         cconPop = ccon/pop,            # Conso/hab
         OECD    = ifelse(countrycode %in% OECD_list,1,0)) # Variable indicatrice pour les pays de l'OCDE

On supprime également les données qui précèdent 1970 et les pays pour lesquelles il y a une absence d’observations.

df <- df %>%
  group_by(countrycode) %>%
  filter(!is.na(rgdpo),
         !is.na(delta),
         year >= startDate) %>%
  filter(min(year) == startDate)

On construit 2 bases de données pour les 2 horizons temporels différents : 1970-2014, 1970-1985. On veut donc pour chaque pays avoir la moyenne des variables sur l’horizon temporel choisi.

df_7014 <- df %>%
  group_by(country, countrycode) %>%
  mutate(firstPop  = first(pop),
         lastPop   = last(pop),
         firstGdp  = first(rgdpo),
         lastGdp   = last(rgdpo),
         n = (lastPop/firstPop)^(1/(endDate-startDate)) -1,     #Taux de croissance annuel de la pop
         g = (lastGdp/firstGdp)^(1/(endDate-startDate)) -1) %>% #Taux de croissance annuel du PIB
  # On ne garde que la moyenne sur la période (puisque notre estimation est faire sur des données en coupe):
  summarise_all(mean) %>% 
  mutate(lrgdpoPop = log(rgdpoPop),                   # log(Y/L)
         ls        = log(s_proxy),                    # log(s)
         lngd      = log(n+0.015+delta),              # log(n+e+delta)
         contr     = ls-lngd,                         # log(s)-log(n+g+delta) pour le modèle contraint
         oecd15K      = ifelse(OECD==1,ifelse(rgdpoPop >= 15000,1,0),0),
         lGdpPopFirst = log(firstGdp/firstPop),
         lGdpPopLast  = log(lastGdp/lastPop))

df_7085 <- df %>%
  group_by(country, countrycode) %>%
  filter(year <= middleDate) %>%
  mutate(firstPop  = first(pop),
         lastPop   = last(pop),
         firstGdp  = first(rgdpo),
         lastGdp   = last(rgdpo),
         n = (lastPop/firstPop)^(1/(middleDate-startDate)) -1,
         g = (lastGdp/firstGdp)^(1/(middleDate-startDate)) -1) %>%
  summarise_all(mean) %>%
  mutate(lrgdpoPop = log(rgdpoPop),
         ls        = log(s_proxy),
         lngd      = log(n+0.02+delta),
         contr     = ls-lngd,
         oecd15K   = ifelse(OECD==1,ifelse(rgdpoPop >= 15000,1,0),0))

Un petit apperçu de la base:

df_7014 %>% select(country, rgdpoPop, cconPop, n, g, s_proxy)

Quelques graphs

On commence par observer notre base de données pour comprendre la relation entre nos variables avant de passer à l’estimation.