OECDGrowth | R Documentation |

Cross-section data on OECD countries, used for growth regressions.

`data("OECDGrowth")`

A data frame with 22 observations on the following 6 variables.

- gdp85
real GDP in 1985 (per person of working age, i.e., age 15 to 65), in 1985 international prices.

- gdp60
real GDP in 1960 (per person of working age, i.e., age 15 to 65), in 1985 international prices.

- invest
average of annual ratios of real domestic investment to real GDP (1960–1985).

- school
percentage of the working-age population that is in secondary school.

- randd
average of annual ratios of gross domestic expenditure on research and development to nominal GDP (of available observations during 1960–1985).

- popgrowth
annual population growth 1960–1985, computed as

`log(pop85/pop60)/25`

.

Appendix 1 Nonneman and Vanhoudt (1996), except for one bad misprint:
The value of `school`

for Norway is given as 0.01, the correct value is 0.1
(see Mankiw, Romer and Weil, 1992). `OECDGrowth`

contains the corrected data.

Mankiw, N.G., Romer, D., and Weil, D.N. (1992). A Contribution to the Empirics of Economic Growth.
*Quarterly Journal of Economics*, **107**, 407–437.

Nonneman, W., and Vanhoudt, P. (1996). A Further Augmentation of the Solow Model
and the Empirics of Economic Growth. *Quarterly Journal of Economics*, **111**, 943–953.

Zaman, A., Rousseeuw, P.J., and Orhan, M. (2001). Econometric Applications of
High-Breakdown Robust Regression Techniques. *Economics Letters*, **71**, 1–8.

`GrowthDJ`

, `GrowthSW`

```
data("OECDGrowth")
## Nonneman and Vanhoudt (1996), Table II
cor(OECDGrowth[, 3:6])
cor(log(OECDGrowth[, 3:6]))
## textbook Solow model
## Nonneman and Vanhoudt (1996), Table IV, and
## Zaman, Rousseeuw and Orhan (2001), Table 2
so_ols <- lm(log(gdp85/gdp60) ~ log(gdp60) + log(invest) + log(popgrowth+.05),
data = OECDGrowth)
summary(so_ols)
## augmented and extended Solow growth model
## Nonneman and Vanhoudt (1996), Table IV
aso_ols <- lm(log(gdp85/gdp60) ~ log(gdp60) + log(invest) +
log(school) + log(popgrowth+.05), data = OECDGrowth)
eso_ols <- lm(log(gdp85/gdp60) ~ log(gdp60) + log(invest) +
log(school) + log(randd) + log(popgrowth+.05), data = OECDGrowth)
## determine unusual observations using LTS
library("MASS")
so_lts <- lqs(log(gdp85/gdp60) ~ log(gdp60) + log(invest) + log(popgrowth+.05),
data = OECDGrowth, psamp = 13, nsamp = "exact")
## large residuals
nok1 <- abs(residuals(so_lts))/so_lts$scale[2] > 2.5
residuals(so_lts)[nok1]/so_lts$scale[2]
## high leverage
X <- model.matrix(so_ols)[,-1]
cv <- cov.rob(X, nsamp = "exact")
mh <- sqrt(mahalanobis(X, cv$center, cv$cov))
nok2 <- mh > 2.5
mh[nok2]
## bad leverage
nok <- which(nok1 & nok2)
nok
## robust results without bad leverage points
so_rob <- update(so_ols, subset = -nok)
summary(so_rob)
## This is similar to Zaman, Rousseeuw and Orhan (2001), Table 2
## but uses exact computations (and not sub-optimal results
## for the robust functions lqs and cov.rob)
```