Skip to contents

Peter Neary published an important paper in the AER (2004) comparing different approaches to calculating real income indices using the 1980 International Comparison Project (ICP) data – the same data used in the Penn World Table (PWT). Neary proposes an improvement on the PWT use of the Geary-Khamis method for calculating real income. I use Neary’s data to illustrate how to use the functions I provide.

The data and implied indices

Neary uses a set of 11 goods for 60 countries. I have assembled his data into the Neary2004 data set available with the pppindexr package. In addition to prices and “quantites” (expenditure at US prices), there are country names and population, all for the ICP baseline year 1980.

I can use the implemented quantity index functions to add the indices to the data. I scale all observations in the minimum (Ethiopia), the same way that Neary does for his Table 1 and Figure 1.

First I extract the price and quantity matrices (or, in fact, dataframes):

P <- Neary2004[, c("p1","p2","p3","p4","p5","p6","p7","p8","p9","p10","p11")]
Q <- Neary2004[, c("q1","q2","q3","q4","q5","q6","q7","q8","q9","q10","q11")]

Then I add the indices to the Neary2004 dataset. I enter two different Geary-Khamis numbers: one with and one without weighting by population size.

Neary2004$eks = eks(P,Q)
Neary2004$ccd = ccd(P,Q)
Neary2004$gk =  ygk(P,Q, min_scale = TRUE)
Neary2004$gk_pop =  ygk(P,Q, pop=Neary2004$pop1980, min_scale = TRUE)

Now I list the data to compare it to Table 1 of Neary:

Neary2004[,c("country","eks","ccd","gk","gk_pop")] |> knitr::kable(digits=3)
country eks ccd gk gk_pop
Germany 30.017 29.859 25.503 25.594
Denmark 28.995 28.645 24.699 25.052
Belgium 29.085 28.982 24.851 25.072
France 29.338 29.319 25.021 25.393
USA 36.120 35.653 30.624 30.603
Luxembourg 30.066 30.016 26.114 26.098
Netherlands 28.265 28.013 23.993 24.305
Norway 23.571 23.445 20.591 20.781
Austria 26.636 26.607 22.905 23.267
Canada 34.171 34.033 29.230 29.280
UK 25.304 25.251 21.614 22.085
Finland 22.089 22.000 19.061 19.351
Japan 21.630 21.597 19.102 19.719
Italy 24.784 24.755 21.596 21.861
Spain 21.070 21.196 18.226 18.295
Ireland 16.978 17.217 14.638 14.951
Argentina 11.752 11.903 10.451 10.301
Israel 18.791 18.685 16.525 16.981
Hong Kong 22.450 22.530 20.783 21.103
Greece 16.531 16.601 14.297 14.269
Uruguay 14.497 14.645 13.226 13.313
Venezuela 14.085 14.161 12.566 12.621
Portugal 13.741 13.887 12.340 12.450
Yugoslavia 11.011 10.876 9.821 9.983
Chile 10.755 10.811 9.396 9.469
Poland 12.156 12.198 10.545 10.694
Brazil 11.347 11.297 10.045 10.082
Costa Rica 10.270 10.264 9.115 9.238
Hungary 13.285 13.152 12.017 12.289
Panama 8.026 8.066 7.142 7.212
Paraguay 7.576 7.554 6.686 6.687
Korea 6.679 6.834 6.491 6.429
Dominican Rep 7.635 7.561 6.820 6.875
Columbia 9.813 9.862 8.758 8.709
Ecuador 7.161 7.172 6.719 6.787
Tunisia 6.201 6.149 5.583 5.582
Guatemala 8.624 8.470 8.077 8.227
Cote d’Ivoire 3.410 3.396 2.924 2.888
Peru 7.685 7.592 7.065 7.047
Bolivia 4.464 4.493 4.172 4.140
Nigeria 2.355 2.375 2.120 2.100
Botswana 3.658 3.676 3.285 3.283
Morocco 3.896 3.870 3.520 3.501
Cameroon 2.803 2.804 2.509 2.507
El Salvador 4.804 4.824 4.413 4.403
Philippines 5.891 5.907 5.096 5.184
Honduras 4.079 4.051 3.642 3.663
Zimbabwe 2.674 2.711 2.371 2.341
Senegal 2.442 2.438 2.266 2.229
Zambia 1.620 1.629 1.421 1.414
Indonesia 2.958 2.946 2.802 2.735
Madagascar 1.974 1.963 1.862 1.829
Pakistan 4.175 3.983 3.624 3.645
Kenya 2.052 2.055 1.938 1.946
Sri Lanka 4.377 4.402 4.246 4.229
Tanzania 1.186 1.187 1.135 1.138
India 1.716 1.730 1.602 1.587
Mali 1.187 1.128 1.073 1.036
Malawi 1.260 1.282 1.208 1.193
Ethiopia 1.000 1.000 1.000 1.000

Inspecting the table, the eks, the ccd, and the gk columns replicate exactly the corresponding columns in Table 1 of Neary (2004), The population weighted Geary Khamis (gk_pop) numbers are slightly different from the ones reported by Neary (gk). This means that Neary calculated Geary-Khamis quantities without population weighting, which I believe is contrary to standard practice - it means that subdividing gdp by region within a country (with uniform within-country prices) will lead to different world prices, and hence also different real income indices.

The Geary Khamis world prices are calculated as follows:

prices <- data.frame(N = 1:11,
                 p_gk = pgk(P,Q),
                 p_gk_pop = pgk(P,Q, pop=Neary2004$pop1980))
prices |>  knitr::kable(digits=3)
N p_gk p_gk_pop
1 1.452 1.303
2 1.432 1.244
3 1.427 1.302
4 1.439 1.307
5 0.971 0.961
6 1.769 1.428
7 1.383 1.245
8 0.669 0.724
9 1.472 1.227
10 0.930 0.932
11 1.000 1.000

References