Introduction

Economic theory suggests that there should be convergence of per capital GDP as capital deepening in developing countries is driven by relatively high rates of capital marginal product. While this is what has been seen with Brazil, Russia, India and China, there are lots of developing countries that do not converge.

Give our production function:

\[Y = AK^{\alpha} L^{1-\alpha}\] It is assumed that capital deepening (more tools per person) will allow an increase in productivity and wages without higher unit labour costs.

The textbook reports the research on conditional convergence of OECD countries that takes account of the level of development or the state of supportive elements of A, representing total factor productivity. These include:

OECD convergence

OECD convergence

This will compare the GDP per capita position in 1950 with the growth in per capital GDP between 1950 and 1973.

Updating convergence research

In this session I would like to assess the performance in these countries since 1973. We start with the OECD data. This can be accessed from the here or from My Studies (under "Growth"). We will take data from 1970 and 2010 and carry out the same analysis.

  • First we need to download the data and save it to an appropriate place. We take a look at the data before we get the data in a format that can be more easily used.
da <- read.csv('OECDdata.csv')
head(da)
##   LOCATION   Country TRANSACT                                   Transaction
## 1      AUS Australia    B1_GE Gross domestic product (expenditure approach)
## 2      AUS Australia    B1_GE Gross domestic product (expenditure approach)
## 3      AUS Australia    B1_GE Gross domestic product (expenditure approach)
## 4      AUS Australia    B1_GE Gross domestic product (expenditure approach)
## 5      AUS Australia    B1_GE Gross domestic product (expenditure approach)
## 6      AUS Australia    B1_GE Gross domestic product (expenditure approach)
##   MEASURE                                                  Measure TIME Year
## 1  HVPVOB Per head, constant prices, constant PPPs, OECD base year 1970 1970
## 2  HVPVOB Per head, constant prices, constant PPPs, OECD base year 1971 1971
## 3  HVPVOB Per head, constant prices, constant PPPs, OECD base year 1972 1972
## 4  HVPVOB Per head, constant prices, constant PPPs, OECD base year 1973 1973
## 5  HVPVOB Per head, constant prices, constant PPPs, OECD base year 1974 1974
## 6  HVPVOB Per head, constant prices, constant PPPs, OECD base year 1975 1975
##   Unit.Code      Unit PowerCode.Code PowerCode Reference.Period.Code
## 1       USD US Dollar              0     Units                  2015
## 2       USD US Dollar              0     Units                  2015
## 3       USD US Dollar              0     Units                  2015
## 4       USD US Dollar              0     Units                  2015
## 5       USD US Dollar              0     Units                  2015
## 6       USD US Dollar              0     Units                  2015
##   Reference.Period    Value Flag.Codes Flags  X X.1 X.2
## 1             2015 22395.18                  NA  NA  NA
## 2             2015 22327.50                  NA  NA  NA
## 3             2015 22551.92                  NA  NA  NA
## 4             2015 23124.17                  NA  NA  NA
## 5             2015 23064.33                  NA  NA  NA
## 6             2015 23430.10                  NA  NA  NA

First we subset the data so that we only take the 1970 and 2010 data, then we calculate the percentage increase over those years and finally we change the data from long format to wide format.

countries <- unique(da$Country)
dat <- subset(da, subset = da$Year == 1970 | da$Year == 2010, select = 
                c("Country", "Year", "Value"))
head(dat)
##       Country Year    Value
## 1   Australia 1970 22395.18
## 41  Australia 2010 44478.99
## 42    Austria 1970 20426.53
## 82    Austria 2010 48907.74
## 83    Belgium 1970 20207.75
## 123   Belgium 2010 44813.02
# Need to calculate the percentage change 1970 to 2010 and then replace 2010 level with change
dat2 <- reshape(dat,  timevar = "Year", idvar = "Country", direction = 'wide')  
dat2$change <- dat2$Value.2010/dat2$Value.1970 - 1
head(dat2)
##            Country Value.1970 Value.2010    change
## 1        Australia   22395.18   44478.99 0.9860961
## 42         Austria   20426.53   48907.74 1.3943240
## 83         Belgium   20207.75   44813.02 1.2176148
## 124         Canada   21655.92   42169.96 0.9472719
## 185 Czech Republic         NA   31254.65        NA
## 186        Denmark   24753.03   47134.28 0.9041824
tail(dat2)
##              Country Value.1970 Value.2010   change
## 1189 Slovak Republic         NA   26446.34       NA
## 1190         Ireland   13410.01   51133.21 2.813064
## 1248         Estonia         NA   24420.88       NA
## 1264          Latvia         NA   19862.13       NA
## 1280       Lithuania         NA   22452.59       NA
## 1300      Costa Rica         NA   15564.54       NA

Now we plot the scatter gram and run a linear regression.

plot(dat2$Value.1970, dat2$change, main = "Convergence test", 
     xlab = "1970 GDP per capita", ylab = "Percenge change GDP 1970 to 2010")
eq1 <- lm(dat2$change ~ dat2$Value.1970)
summary(eq1)
## 
## Call:
## lm(formula = dat2$change ~ dat2$Value.1970)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1931 -0.7018 -0.3509 -0.0552  8.0404 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      4.1681443  1.0199722   4.087 0.000423 ***
## dat2$Value.1970 -0.0001286  0.0000487  -2.641 0.014320 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.917 on 24 degrees of freedom
##   (12 observations deleted due to missingness)
## Multiple R-squared:  0.2251, Adjusted R-squared:  0.1929 
## F-statistic: 6.973 on 1 and 24 DF,  p-value: 0.01432
abline(eq1, col = 'red', lwd = 2)

There is a negative relationship that appears to show conditional convergence. However, if we look at the scatter and the residuals to the regression, it appears that one element is very important.

plot(eq1$residuals)

Korea is an exception.

If we remove Korea, the convergence disappears.

plot(eq1$residuals)

subset(dat2, subset = dat2$change == max(dat2$change, na.rm = TRUE))
##     Country Value.1970 Value.2010   change
## 982   Korea   2608.058   33574.01 11.87318

Any other issues that you can see here?

subset(dat2, dat2$change > 10)
##     Country Value.1970 Value.2010   change
## 982   Korea   2608.058   33574.01 11.87318
dat3 <- subset(dat2, dat2$change < 10 & !is.na(dat2$change))
eq2 <- lm(dat3$change ~ dat3$Value.1970)
summary(eq2)
## 
## Call:
## lm(formula = dat3$change ~ dat3$Value.1970)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.73181 -0.25247 -0.09477  0.14289  1.44827 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      1.581e+00  2.843e-01   5.562 1.17e-05 ***
## dat3$Value.1970 -1.616e-05  1.332e-05  -1.213    0.237    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4715 on 23 degrees of freedom
## Multiple R-squared:  0.06016,    Adjusted R-squared:  0.0193 
## F-statistic: 1.472 on 1 and 23 DF,  p-value: 0.2373

We can also look at the growth countries.

dreorder <- dat3[order(dat3$change, decreasing = TRUE),]
barplot(dreorder$change, names.arg = dreorder$Country, cex.names = 0.7, 
        las = 2, col = 'lightblue', main = 'Per capital GDP growth, 1970:2010')
abline(h = mean(dreorder$change))
mymean <- round(mean(dreorder$change), 2)
text(x = 20, y = 1.4, labels = paste("Average growth is ", mymean, "%"), 
     cex = 0.8)