The Solow model leads to the following testable implications.
The equilibrium growth given by a steady state level of capital per unit of effective labor; determined by savings, population growth, rate of technological progress and depreciation.
Convergence to the steady state.
Convergence of countries with similar technological progress and other fundamentals.
These hypotheses were tested by Mankiw, Romer, and Weil in their article “A Contribution to the Empirics of Economic Growth”, published in Quarterly Journal of Economics in 1992. This session provides replication of this paper.
The Cross-country Growth Regression
The approach by Mankiw, Romer, and Weil is based on:
Derivation of the equilibrium level of output per capita
Formulation of the cross-country growth regression by linearizing the equilibrium output per capita.
Estimation and testing of hypotheses
The Cross-country Growth Regression
Derivation of the equilibrium level of output per capita
The equilibrium output per effective labour is given by:
The dataset used by Mankiw, Romer, and Weil (1992) is included within the AER package.
The AER package calls almost all other packages needed for estimation, i.e. packages lmtest, car, etc., so it is not necessary to load them necessarily.
Load the data:
#install.packages("AER")library(AER)data("GrowthDJ") #these are the MRW data extended for variable "literacy"
Before the estimation, we restrict the sample to extend over the non-oil-producing countries only, using the dummy variable oil.
dj <-subset(GrowthDJ, oil =="no")
Note that Mankiw, Romer and Weil restrict the data for countries with low quality data as well, this can be done in a similar way using variable intermediate. The results remain robust, therefore we stick with the larger sample.
Data
Now, it might be useful to investigate the data, either using print(dj) or by double-clicking on dj in the Global environment.
#print(dj)head(dj,20)
oil inter oecd gdp60 gdp85 gdpgrowth popgrowth invest school literacy60
1 no yes no 2485 4371 4.8 2.6 24.1 4.5 10
2 no no no 1588 1171 0.8 2.1 5.8 1.8 5
3 no no no 1116 1071 2.2 2.4 10.8 1.8 5
4 no yes no 959 3671 8.6 3.2 28.3 2.9 NA
5 no no no 529 857 2.9 0.9 12.7 0.4 2
6 no no no 755 663 1.2 1.7 5.1 0.4 14
7 no yes no 889 2190 5.7 2.1 12.8 3.4 19
8 no no no 838 789 1.5 1.7 10.5 1.4 7
9 no no no 908 462 -0.9 1.9 6.9 0.4 6
10 no no no 1009 2624 6.2 2.4 28.8 3.8 16
11 no no no 907 2160 6.0 2.5 16.3 7.0 26
12 no yes no 533 608 2.8 2.3 5.4 1.1 15
15 no no no 1009 727 1.0 2.3 9.1 4.7 27
17 no yes no 1386 1704 5.1 4.3 12.4 2.3 5
18 no yes no 944 1329 4.8 3.4 17.4 2.4 20
20 no no no 863 944 3.3 3.0 21.5 2.5 9
21 no yes no 1194 975 1.4 2.2 7.1 2.6 50
22 no yes no 455 823 4.8 2.4 13.2 0.6 25
23 no yes no 737 710 2.1 2.2 7.3 1.0 3
24 no no no 777 1038 3.3 2.2 25.6 1.0 5
Therefore, we need to generate log of GDP in 1985 and logs of other variables. These new variables are created within the object dj that contains our restricted dataset.
Call:
lm(formula = dj$l_gdp85 ~ dj$sk + dj$ngd)
Residuals:
Min 1Q Median 3Q Max
-1.79144 -0.39367 0.04124 0.43368 1.58046
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.4299 1.5839 3.428 0.000900 ***
dj$sk 1.4240 0.1431 9.951 < 2e-16 ***
dj$ngd -1.9898 0.5634 -3.532 0.000639 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.6891 on 95 degrees of freedom
Multiple R-squared: 0.6009, Adjusted R-squared: 0.5925
F-statistic: 71.51 on 2 and 95 DF, p-value: < 2.2e-16
These results are equivalent to MRW, 1992, Table 1, column 1.
Estimation of the cross-country growth regression
Test of the linear restriction on coefficients at s and ngd implied by the Solow model.
linearHypothesis(mrwmodel,"dj$sk + dj$ngd = 0")
Linear hypothesis test
Hypothesis:
dj$sk + dj$ngd = 0
Model 1: restricted model
Model 2: dj$l_gdp85 ~ dj$sk + dj$ngd
Res.Df RSS Df Sum of Sq F Pr(>F)
1 96 45.504
2 95 45.108 1 0.39612 0.8343 0.3634
Estimation of the cross-country growth regression
Test of the linear restriction on coefficients at s and ngd implied by the Solow model.
linearHypothesis(mrwmodel,"dj$sk + dj$ngd = 0")
It is also possible to estimate the restricted model directly.
Call:
lm(formula = dj$l_gdp85 ~ I(dj$sk - dj$ngd))
Residuals:
Min 1Q Median 3Q Max
-1.87388 -0.43133 0.03757 0.51698 1.49645
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6.8724 0.1206 56.99 <2e-16 ***
I(dj$sk - dj$ngd) 1.4880 0.1247 11.93 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.6885 on 96 degrees of freedom
Multiple R-squared: 0.5974, Adjusted R-squared: 0.5932
F-statistic: 142.4 on 1 and 96 DF, p-value: < 2.2e-16
The formula contains I(…) - this implies that the operation shall be considered as numerical, and not as logical. In that case - would imply elimination of some term.
Estimation of the cross-country growth regression
OLS assumption tests
#library(lmtest) #when AER package not usedlibrary(skedastic)#Heteroscedasticity testsbptest(mrwmodel)white(mrwmodel, interactions =TRUE)#Autocorrelation testdwtest(mrwmodel)bgtest(mrwmodel, order =1)#Normality testshapiro.test(mrwmodel$residuals)#Specification testreset(mrwmodel)
studentized Breusch-Pagan test
data: mrwmodel
BP = 4.6109, df = 2, p-value = 0.09971
# A tibble: 1 × 5
statistic p.value parameter method alternative
<dbl> <dbl> <dbl> <chr> <chr>
1 5.71 0.335 5 White's Test greater
Durbin-Watson test
data: mrwmodel
DW = 1.4532, p-value = 0.00223
alternative hypothesis: true autocorrelation is greater than 0
Breusch-Godfrey test for serial correlation of order up to 1
data: mrwmodel
LM test = 7.5346, df = 1, p-value = 0.006053
Shapiro-Wilk normality test
data: mrwmodel$residuals
W = 0.98409, p-value = 0.2854