p0 <- price6[[2]]
p1 <- price6[[3]]
q0 <- quantity6[[2]]
q1 <- quantity6[[3]]
pb <- price6[[1]]
qb <- quantity6[[1]]
#---- Making the weights for different indexes ----
# Explicit calculation for each of the different weights
# Carli/Jevons/Coggeshall
all.equal(index_weights("Carli")(p1), rep(1, length(p0)))
# Dutot
all.equal(index_weights("Dutot")(p0), p0)
# Laspeyres / Lloyd-Moulton
all.equal(index_weights("Laspeyres")(p0, q0), p0 * q0)
# Hybrid Laspeyres
all.equal(index_weights("HybridLaspeyres")(p1, q0), p1 * q0)
# Paasche / Palgrave
all.equal(index_weights("Paasche")(p1, q1), p1 * q1)
# Hybrid Paasche
all.equal(index_weights("HybridPaasche")(p0, q1), p0 * q1)
# Tornqvist / Unnamed
all.equal(
index_weights("Tornqvist")(p1, p0, q1, q0),
0.5 * p0 * q0 / sum(p0 * q0) + 0.5 * p1 * q1 / sum(p1 * q1)
)
# Drobisch
all.equal(
index_weights("Drobisch")(p1, p0, q1, q0),
0.5 * p0 * q0 / sum(p0 * q0) + 0.5 * p0 * q1 / sum(p0 * q1)
)
# Walsh-I
all.equal(
index_weights("Walsh1")(p0, q1, q0),
p0 * sqrt(q0 * q1)
)
# Marshall-Edgeworth
all.equal(
index_weights("MarshallEdgeworth")(p0, q1, q0),
p0 * (q0 + q1)
)
# Geary-Khamis
all.equal(
index_weights("GearyKhamis")(p0, q1, q0),
p0 / (1 / q0 + 1 / q1)
)
# Montgomery-Vartia / Vartia-I
all.equal(
index_weights("MontgomeryVartia")(p1, p0, q1, q0),
logmean(p0 * q0, p1 * q1) / logmean(sum(p0 * q0), sum(p1 * q1))
)
# Sato-Vartia / Vartia-II
all.equal(
index_weights("SatoVartia")(p1, p0, q1, q0),
logmean(p0 * q0 / sum(p0 * q0), p1 * q1 / sum(p1 * q1))
)
# Walsh-II
all.equal(
index_weights("Walsh2")(p1, p0, q1, q0),
sqrt(p0 * q0 * p1 * q1)
)
# Theil
all.equal(index_weights("Theil")(p1, p0, q1, q0), {
w0 <- scale_weights(p0 * q0)
w1 <- scale_weights(p1 * q1)
(w0 * w1 * (w0 + w1) / 2)^(1 / 3)
})
# Rao
all.equal(index_weights("Rao")(p1, p0, q1, q0), {
w0 <- scale_weights(p0 * q0)
w1 <- scale_weights(p1 * q1)
w0 * w1 / (w0 + w1)
})
# Lowe
all.equal(index_weights("Lowe")(p0, qb), p0 * qb)
# Young
all.equal(index_weights("Young")(pb, qb), pb * qb)
# Hybrid CSWD (to approximate a CSWD index)
all.equal(index_weights("HybridCSWD")(p1, p0), sqrt(p0 / p1))
Run the code above in your browser using DataLab