Estimating the Solow Growth Model

Jaromír Baxa & Eva Hromádková

IES FSV UK

Introduction

The Solow model leads to the following testable implications.

  1. 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.

  2. Convergence to the steady state.

  3. 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:

  1. Derivation of the equilibrium level of output per capita

  2. Formulation of the cross-country growth regression by linearizing the equilibrium output per capita.

  3. Estimation and testing of hypotheses

The Cross-country Growth Regression

  1. Derivation of the equilibrium level of output per capita
  • The equilibrium output per effective labour is given by:

\[ y^*= (\frac {s} {n+g+\delta}) ^ { \frac {\alpha} {(1-\alpha)}} \]

  • The data are available for GDP per capita and not for GDP per effective labour, therefore the equilibrium output needs to be multiplied by A(t).

\[ \frac {Y} {L}= (\frac {s} {n+g+\delta}) ^ { \frac {\alpha} {(1-\alpha)}} A(t) \]

  • This can be rewritten using \(A(t) = A(0) e^{gt}\) :

\[ \frac {Y} {L}= (\frac {s} {n+g+\delta}) ^ { \frac {\alpha} {(1-\alpha)}} A_0 e^{gt} \]

The Cross-country Growth Regression

  1. Linearizing by taking logarithm of both sides of the equation:

\[ \frac {Y} {L}= (\frac {s} {n+g+\delta}) ^ { \frac {\alpha} {(1-\alpha)}} A_0 e^{gt} \]

\[ log (\frac {Y} {L}) = log A_0 + g.t + \frac {\alpha} {(1-\alpha)} log (s) - \frac {\alpha} {(1-\alpha)} log (n+g+\delta) \]

The Cross-country Growth Regression

  1. Linearizing by taking logarithm of both sides of the equation:

\[ \frac {Y} {L}= (\frac {s} {n+g+\delta}) ^ { \frac {\alpha} {(1-\alpha)}} A_0 e^{gt} \]

\[ log (\frac {Y} {L}) = log A_0 + g.t + \frac {\alpha} {(1-\alpha)} log (s) - \frac {\alpha} {(1-\alpha)} log (n+g+\delta) \]

Then, after rewriting the elements \(log A_0 + g.t\) into intercept and stochastic term, the cross country growth regression is derived:

\[ log (\frac {Y_i} {L_i}) = \beta_0 + \beta_1 log s_i + \beta_2 log (n_i+g+\delta) + u_i \]

Data

  • 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

Transformation of variables

  • Our regression equation is formulated as: \(log (\frac {Y_i} {L_i}) = \beta_0 + \beta_1 log (s_i) + \beta_2 log (n_i+g+\delta) + u_i\)
  • 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.
dj$l_gdp85 <- log(dj$gdp85)
dj$sk <- log(dj$invest/100)
dj$ngd <- log(dj$popgrowth/100+0.05)

head(dj, 5)
  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
   l_gdp85        sk       ngd
1 8.382747 -1.422958 -2.577022
2 7.065613 -2.847312 -2.645075
3 6.976348 -2.225624 -2.603690
4 8.208219 -1.262308 -2.501036
5 6.753438 -2.063568 -2.830218

Estimation of the cross-country growth regression

  • We can run the cross-country growth regression now:
#regression
mrwmodel <- lm(dj$l_gdp85 ~ dj$sk + dj$ngd)
summary(mrwmodel)

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.
mrwmodel2 <- lm(dj$l_gdp85 ~ I(dj$sk - dj$ngd))
summary(mrwmodel2)

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 used
library(skedastic)
#Heteroscedasticity tests
bptest(mrwmodel)
white(mrwmodel, interactions = TRUE)
#Autocorrelation test
dwtest(mrwmodel)
bgtest(mrwmodel, order = 1)
#Normality test
shapiro.test(mrwmodel$residuals)
#Specification test
reset(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

    RESET test

data:  mrwmodel
RESET = 1.8272, df1 = 2, df2 = 93, p-value = 0.1666

Estimation of the cross-country growth regression

  • While all these results look reasonable, it is necessary to check, whether the estimated coefficients at s and ngd make sense.

  • To do so, we estimate \(\alpha\) from the regression coefficients:

\[ log (\frac {Y} {L}) = log A_0 + g.t + \frac {\alpha} {(1-\alpha)} log (s) - \frac {\alpha} {(1-\alpha)} log (n+g+\delta) \]

  • The estimated coefficient at \(log(s)\) of the restricted model is 1.48. This implies value of \(\alpha\) 0.6.

  • However, the value 0.6 is two-times higher than the share of capital on GDP observed in the data.

  • Therefore, the empirical verification of the Solow model is only partially successful.

Summary

  • We have derived the cross-country growth regression from the equilibrium output of the Solow growth model.

  • We estimated the cross-country growth regression using the data from 1960 to 1985 - replication of the AER paper by Mankiw, Romer, and Weil.

  • While the qualitative implications of the model are in line with the theory, the sizes of the regression coefficients is not.

Next time:

  • We will attempt to improve the model to account for more variables determining economic growth.

  • We will estimate whether the convergence hypothesis is supported by the data.