Qa

tfp <- df.ps4 %>%
  mutate(output.capita = rgdpo / pop,
         log.output.capita = log(output.capita),
         log.output.hour = log(rgdpo / (avh*emp)), #real output per hour 
         capital.output= cn / cgdpo, # nominal share
         log.capital.output = log(capital.output),
         log.hc = log(hc),
         log.tfp = log.output.hour - (1-labsh) * log.capital.output/labsh - log.hc # log TFP
         )

tfp %>%
  group_by(country, countrycode) %>%
summarise(log.tfp = mean(log.tfp))
## # A tibble: 60 x 3
## # Groups:   country [60]
##    country              countrycode log.tfp
##    <chr>                <chr>         <dbl>
##  1 Argentina            ARG          0.235 
##  2 Australia            AUS          1.69  
##  3 Austria              AUT          1.65  
##  4 Belgium              BEL          1.95  
##  5 Brazil               BRA          0.831 
##  6 Bulgaria             BGR          1.06  
##  7 Canada               CAN          1.93  
##  8 Chile                CHL          0.369 
##  9 China                CHN          0.0317
## 10 China, Hong Kong SAR HKG          1.23  
## # ... with 50 more rows

Qb

Comment:The relationship between them is positive correlated. I don’t think this can directly reflect the relationship between human capital and income. higher human capital can bring higher income, however, higher income can let people receive a better education etc, which is investment in human capital.

tfp %>%
    group_by(country, countrycode) %>%
    filter(year == 2017) %>%
    summarise_all(mean) %>%
    ggplot(aes(y = log.output.hour, x = log.tfp)) + 
    geom_point() + 
    geom_smooth() + 
    geom_text_repel(aes(label = countrycode)) + 
    theme_bw() + 
    labs(title = 'The Relationship Between TFP and log real output per labour hour',
         subtitle = 'Average of 2017', 
         y = 'Log of Output per Hour',
         x = 'Productivity')

tfp %>%
    group_by(country, countrycode) %>%
    filter(year == 2017) %>%
    summarise_all(mean) %>%
    ggplot(aes(y = log.output.hour, x = log.capital.output)) + 
    geom_point() + 
    geom_smooth() + 
    geom_text_repel(aes(label = countrycode)) + 
    theme_bw() + 
    labs(title = 'The Relationship Between log of the capital to output and log real output per labour hour',
         subtitle = 'Average of 2017', 
         y = 'Log of Output per hourl',
         x = 'log of the capital to output')

tfp %>%
    group_by(country, countrycode) %>%
    filter(year == 2017) %>%
    summarise_all(mean) %>%
    ggplot(aes(y = log.output.hour, x = log.hc)) + 
    geom_point() + 
    geom_smooth() + 
    geom_text_repel(aes(label = countrycode)) + 
    theme_bw() + 
    labs(title = 'The Relationship Between log of the human capital and log real output per labour hour',
         subtitle = 'Average of 2017', 
         y = 'Log of Output per hour',
         x = 'log of the human capital')

Qc

df.growth.rates <- df.ps4 %>%
    arrange(country, year) %>%
    mutate(log.output.hour = log(rgdpo / (avh * emp)),
           log.capital.output = log(cn/cgdpo),
           log.hc = log(hc),
           capsh = 0.35) %>%
    mutate(growth.output.hour = log.output.hour - lag(log.output.hour),
           growth.capital.output = log.capital.output - lag(log.capital.output),
           growth.hc = log.hc - lag(log.hc),
           growth.tfp = growth.output.hour - capsh * growth.capital.output / (1-capsh) -
               growth.hc) %>%
    filter(year > 1997) %>%
    select(country, year, countrycode, growth.output.hour, growth.capital.output, growth.hc,
           capsh, growth.tfp)


df.contrib <- df.growth.rates %>%
    mutate(contrib.tfp = 100*growth.tfp / growth.output.hour,
           contrib.hc  = 100*growth.hc  / growth.output.hour,
           contrib.ky  = 100*(capsh * growth.capital.output / 
                                  (1-capsh)) / growth.output.hour) %>%
    select(country, countrycode, year, contrib.tfp, contrib.hc, contrib.ky,
           capsh, growth.output.hour) %>%
    group_by(country, countrycode) %>%
    summarise(contrib.tfp = median(contrib.tfp),
              contrib.hc  = median(contrib.hc),
              contrib.ky  = median(contrib.ky),
              growth.yl   = 100*median(growth.output.hour),
              capsh       = median(capsh)) %>%
    filter(country != 'Taiwan')

top5 countries

head(df.contrib %>%
         select(-countrycode) %>%
    arrange(desc(contrib.hc)))
## # A tibble: 6 x 6
## # Groups:   country [6]
##   country  contrib.tfp contrib.hc contrib.ky growth.yl capsh
##   <chr>          <dbl>      <dbl>      <dbl>     <dbl> <dbl>
## 1 Portugal        4.07       28.6      73.6      0.789  0.35
## 2 Spain          46.7        26.0      22.7      1.68   0.35
## 3 Iceland        92.4        24.6     -10.5      1.94   0.35
## 4 Italy         143.         24.3     -36.1      1.52   0.35
## 5 Thailand      136.         23.4     -45.0      4.87   0.35
## 6 Croatia        82.8        22.3      -2.35     3.91   0.35

bottom5 countries

tail(df.contrib %>%
         select(-countrycode) %>%
    arrange(desc(contrib.hc)))
## # A tibble: 6 x 6
## # Groups:   country [6]
##   country     contrib.tfp contrib.hc contrib.ky growth.yl capsh
##   <chr>             <dbl>      <dbl>      <dbl>     <dbl> <dbl>
## 1 New Zealand       111.        1.78   -12.6        1.08   0.35
## 2 Indonesia          60.7       1.54    28.7        1.66   0.35
## 3 Peru              141.        1.07   -42.5        2.36   0.35
## 4 Sri Lanka          99.6      -1.35    -0.0402     2.89   0.35
## 5 Australia         133.       -6.89   -42.7        2.11   0.35
## 6 Brazil            165.      -35.2    -27.7       -0.211  0.35

Qd Human capital is a proximate cause of economic growth. The fundamental cause of economic growth is the development of technology. Human capital is positively correlated to economic growth since investment in human capital can let people get more skills or better education so on. It is improved productivity and efficiency which is a proximate case of economic growth.