This post provides a short theoretical introduction to the concept of growth accounting and uses data from the Penn World Tables (8.1) to calculate TFP growth rates for a series of countries using the simple Solow-method.
Based on neoclassical growth theory the economic discipline of growth accounting as suggested by Solow (1957) tries to assess the relative contribution of labour, capital and technology to the growth rate of the economy. As presented in the textbook by Aghion and Howitt (2009) it departs from the idea that the economy can be described by a single production function of the form Y=AKαL1-α, which in per-capita terms becomes y=Akα, where y=Y/L is output per capita, k=K/L is capital per capita and A is total factor productivity (TFP). Taking logs and differentiating with respect to time gives an expression of the economy’s growth rate g, which depends on the percentage change of TFP Δ and capital over time δk
Δy=ΔA + α Δk.
Since output, capital and labour can be observed, but not A and α, latter have to be inferred somehow. The first approach is the so-called primal method which assumes that α is equal to the share of capital income in national income. Once this value is obtained the TFP growth rate can be calculated with
ΔA =Δy – α Δk.
Note that since TFP growth is the residual value after the contribution of capital growth was subtracted from output growth, TFP growth is also called the Solow residual.
Applying this method in R is straightforward and very easy, since the necessary sample can be downloaded from CRAN via
install.packages("pwt8") and activated with
Next define which country and time period you want to analyse. I chose the period from 1960 to 2000, because this is also done in Aghion and Howitt (2009) and I want to reproduce the results.
i <- "AUS" dat<-pwt8.1[pwt8.1$isocode==i & pwt8.1[,"year"]>=1960 & pwt8.1[,"year"]<=2000,]
Then calculate the real output and capital per worker (in national currency), take logs and the first difference to obtain percentage changes. $alpha; is one minus the share of labour compensation in GDP at current national prices. You have to omit the first observation so that you have the same amount of observations as of output and capital growth.
dy <- diff(log(dat[,"rgdpna"]/dat[,"emp"]))*100 dk <- diff(log(dat[,"rkna"]/dat[,"emp"]))*100 a <- 1-dat[-1,"labsh"]
Finally, calculate the Solow residual and let you display everything with a data frame.
dtfp <- dy-a*dk data.frame("country"=i,"g"=mean(dy),"tfp"=mean(dtfp),"k"=mean(a*dk),"tfp.share"=mean(dtfp)/mean(dy),"capital.share"=mean(dk)/mean(dy))
This result is very similar to the numbers in table 5.1 in Aghion and Howitt (2009). However, the results differ from the table when you perform the exercise for other countries.
Aghion, Philippe; Howitt, Peter (2009): The Economics of Growth: The MIT Press (MIT Press Books).
Solow, Robert M. (1957): Technical Change and the Aggregate Production Function. In The Review of Economics and Statistics 39 (3), pp. 312–320. Available online at http://www.jstor.org/stable/1926047.