Example with R: Stratified index
Calculating a stratified index is straightforward in practice. One neat way to do it is with a simple linear regression.
Consider the following data with transactions over two periods for two groups of goods.
# Make some data
<- data.frame(period = c(0, 0, 0, 1, 1, 1, 1, 1),
df group = letters[1:2],
price = 1:8)
df
## period group price
## 1 0 a 1
## 2 0 b 2
## 3 0 a 3
## 4 1 b 4
## 5 1 a 5
## 6 1 b 6
## 7 1 a 7
## 8 1 b 8
The indices for each group can be calculated with a single linear regression, and then aggregated with an average.
# Bring in gpindex library
library(gpindex)
# Calculate strata-level indices with a linear regression
<- lm(log(price) ~ group + group:period - 1, df)
mdl
# Turn regression coefficients into indices
<- exp(coef(mdl)[-seq_len(length(unique(mdl$model$group)))])
index
# Aggregate, assuming both strata have equal weight
geometric_mean(index) * 100
## [1] 313.886