Packages

library(dplyr)
library(ggplot2)
library(WDI)

Variables

# NY.GDP.PCAP.CN - GDP per capita (current LCU)
WDI(
  country = "US",
  indicator = "NY.GDP.PCAP.CN",
  start = 1990,
  end = 2021,
  extra = FALSE,
  cache = NULL,
  latest = NULL,
  language = "en"
)
##          country iso2c iso3c year NY.GDP.PCAP.CN
## 1  United States    US   USA 2021       70219.47
## 2  United States    US   USA 2020       63528.63
## 3  United States    US   USA 2019       65120.39
## 4  United States    US   USA 2018       62823.31
## 5  United States    US   USA 2017       59907.75
## 6  United States    US   USA 2016       57866.74
## 7  United States    US   USA 2015       56762.73
## 8  United States    US   USA 2014       55123.85
## 9  United States    US   USA 2013       53291.13
## 10 United States    US   USA 2012       51784.42
## 11 United States    US   USA 2011       50065.97
## 12 United States    US   USA 2010       48650.64
## 13 United States    US   USA 2009       47194.94
## 14 United States    US   USA 2008       48570.05
## 15 United States    US   USA 2007       48050.22
## 16 United States    US   USA 2006       46302.00
## 17 United States    US   USA 2005       44123.41
## 18 United States    US   USA 2004       41724.63
## 19 United States    US   USA 2003       39490.27
## 20 United States    US   USA 2002       37997.76
## 21 United States    US   USA 2001       37133.62
## 22 United States    US   USA 2000       36329.96
## 23 United States    US   USA 1999       34515.39
## 24 United States    US   USA 1998       32853.68
## 25 United States    US   USA 1997       31459.14
## 26 United States    US   USA 1996       29967.71
## 27 United States    US   USA 1995       28690.88
## 28 United States    US   USA 1994       27694.85
## 29 United States    US   USA 1993       26387.29
## 30 United States    US   USA 1992       25418.99
## 31 United States    US   USA 1991       24342.26
## 32 United States    US   USA 1990       23888.60
# SL.TLF.ACTI.ZS - Labor force participation rate, total (% of total population ages 15-64) (modeled International Labour Organization estimate)
WDI(
  country = "US",
  indicator = "SL.TLF.ACTI.ZS",
  start = 1990,
  end = 2021,
  extra = FALSE,
  cache = NULL,
  latest = NULL,
  language = "en"
)
##          country iso2c iso3c year SL.TLF.ACTI.ZS
## 1  United States    US   USA 2021         72.073
## 2  United States    US   USA 2020         71.720
## 3  United States    US   USA 2019         72.865
## 4  United States    US   USA 2018         72.401
## 5  United States    US   USA 2017         72.128
## 6  United States    US   USA 2016         71.721
## 7  United States    US   USA 2015         71.366
## 8  United States    US   USA 2014         71.459
## 9  United States    US   USA 2013         71.571
## 10 United States    US   USA 2012         71.841
## 11 United States    US   USA 2011         71.883
## 12 United States    US   USA 2010         72.427
## 13 United States    US   USA 2009         73.108
## 14 United States    US   USA 2008         73.777
## 15 United States    US   USA 2007         73.797
## 16 United States    US   USA 2006         74.067
## 17 United States    US   USA 2005         73.972
## 18 United States    US   USA 2004         73.988
## 19 United States    US   USA 2003         74.324
## 20 United States    US   USA 2002         74.928
## 21 United States    US   USA 2001         75.354
## 22 United States    US   USA 2000         75.780
## 23 United States    US   USA 1999         75.842
## 24 United States    US   USA 1998         75.909
## 25 United States    US   USA 1997         75.980
## 26 United States    US   USA 1996         75.643
## 27 United States    US   USA 1995         75.438
## 28 United States    US   USA 1994         75.252
## 29 United States    US   USA 1993         75.052
## 30 United States    US   USA 1992         75.080
## 31 United States    US   USA 1991         74.712
## 32 United States    US   USA 1990         74.945

Dataframe

dat<-(WDI(indicator = c("gdp_percap"="NY.GDP.PCAP.CN","lf_partR.per"="SL.TLF.ACTI.ZS"),country=c("USA","CAN","AUS","GBR","ESP","DEU","FRA","ITA","DNK","FIN","SWE","NOR"), start = 1990, end = 2021))
summary(dat)
##    country             iso2c              iso3c                year     
##  Length:384         Length:384         Length:384         Min.   :1990  
##  Class :character   Class :character   Class :character   1st Qu.:1998  
##  Mode  :character   Mode  :character   Mode  :character   Median :2006  
##                                                           Mean   :2006  
##                                                           3rd Qu.:2013  
##                                                           Max.   :2021  
##    gdp_percap      lf_partR.per  
##  Min.   :  8457   Min.   :57.98  
##  1st Qu.: 25010   1st Qu.:71.81  
##  Median : 34106   Median :75.55  
##  Mean   :112379   Mean   :74.17  
##  3rd Qu.:102600   3rd Qu.:78.12  
##  Max.   :778730   Max.   :84.33

Descriptive statistics

options(scipen=10)
options(digits=3)

dat%>%
  select(gdp_percap,lf_partR.per)%>%
  group_by()%>%
  summarise_all(.funs=c(mean, sd) ,na.rm=T)
## # A tibble: 1 × 4
##   gdp_percap_fn1 lf_partR.per_fn1 gdp_percap_fn2 lf_partR.per_fn2
##            <dbl>            <dbl>          <dbl>            <dbl>
## 1        112379.             74.2        156242.             5.53

Graphics

cor(dat$gdp_percap ,dat$lf_partR.per)
## [1] 0.495
hist(dat$gdp_percap )

hist(dat$lf_partR.per )

ggplot(dat,  aes(x = lf_partR.per, y = gdp_percap,color=country)) + 
  geom_smooth(size=.5)+
  #geom_point()+
  labs(title = "Covariation") +
  xlab("Labor force part. rate, total (% of total population ages 15-64)") +  
  ylab("GDP per capita (current LCU)") +
  scale_x_continuous() +
  theme_minimal() +
  theme()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'

ggplot(dat, aes(x = year, y =gdp_percap ,  color=country)) + 
  geom_smooth(size=.25) +
  geom_point()+
  labs(title = "Time Series") +
  xlab("year") +
  ylab("GDP per capita (current LCU)") +
  scale_x_continuous()+
  theme_minimal() +
  theme(panel.grid.minor.x = element_blank())
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'

ggplot(dat, aes(x = year, y = lf_partR.per,color=country)) + 
  geom_smooth(size=.25) +
  geom_point()+
  labs(title = "Time Series") +
  xlab("year") +
  ylab("LFPR (%)") +
  scale_x_continuous()+
  theme_minimal() +
  theme(panel.grid.minor.x = element_blank())
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'

OLS regression

fit.0<-lm(gdp_percap~lf_partR.per, dat)
summary(fit.0)
## 
## Call:
## lm(formula = gdp_percap ~ lf_partR.per, data = dat)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -153094  -97716  -50062   71322  586442 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   -925163      93418    -9.9   <2e-16 ***
## lf_partR.per    13988       1256    11.1   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 136000 on 382 degrees of freedom
## Multiple R-squared:  0.245,  Adjusted R-squared:  0.243 
## F-statistic:  124 on 1 and 382 DF,  p-value: <2e-16
plot(gdp_percap ~ lf_partR.per, data = dat)

fit.0graph<-ggplot(dat, aes(x=lf_partR.per, y=gdp_percap,color=country))+
             geom_point()+
            labs(title = "Regression Line") +
  
             geom_smooth(method="lm", col="black",lwd=.25)
           
             
             
fit.0graph
## `geom_smooth()` using formula = 'y ~ x'