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:
institutions: infrastructure, legal institutions.
culture: ways of doing things, entrepreneurial spirit.
endowments: initial resources, path-dependence.
OECD convergence
This will compare the GDP per capita position in 1950 with the growth in per capital GDP between 1950 and 1973.
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.
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)