Nothing
## -----------------------------------------------------------------------------
library(piar)
set.seed(12345)
# Make quarterly elemental indexes for two baskets with a 1 year overlap.
elementals1 <- matrix(
runif(5 * 8, 0.8, 1.2),
nrow = 5,
dimnames = list(paste0("B", 1:5), NULL)
)|>
as_index()
elementals2 <- matrix(
runif(6 * 8, 0.8, 1.2),
nrow = 6,
dimnames = list(paste0("B", 1:6), 5:12)
) |>
as_index()
# Make aggregation weights for basket 1.
# 1
# |-----+-----|
# 11 12
# |---+---| |---+---|
# B1 B2 B3 B4 B5
weights1 <- data.frame(
level1 = 1,
level2 = c(11, 11, 11, 12, 12),
ea = levels(elementals1),
weights = runif(5, 100, 200)
)
# Make aggregation weights for basket 2.
# 1
# |-----+-----|
# 11 12
# |---+---| |---+---|
# B1 B2 B3 B4 B5 B6
weights2 <- data.frame(
level1 = 1,
level2 = c(11, 11, 11, 12, 12, 12),
ea = levels(elementals2),
weights = runif(6, 100, 200)
)
## -----------------------------------------------------------------------------
index <- Map(
aggregate,
list(elementals1, elementals2),
list(weights1, weights2),
include_ea = FALSE
)
## -----------------------------------------------------------------------------
stack(index[[1]], window(index[[2]], start = "9")) |>
chain()
## -----------------------------------------------------------------------------
link_factor <- chain(index[[1]])|>
window(start = end(index[[1]])) |>
as.numeric()
stack(
chain(index[[1]]),
chain(window(index[[2]], start = "9"), link = link_factor)
)
## -----------------------------------------------------------------------------
index <- index |>
lapply(chain) |>
lapply(\(x) rebase(x, mean(x[, 1:4])))
## -----------------------------------------------------------------------------
link_factor <- window(index[[1]], start = "5") |>
mean() |>
as.numeric()
stack(
index[[1]],
rebase(window(index[[2]], start = "9"), base = 1 / link_factor)
)
## -----------------------------------------------------------------------------
index[[1]] <- rebase(index[[1]], mean(window(index[[1]], start = "5")))
link_factor = as.numeric(index[[1]][, "8"]) / as.numeric(index[[2]][, "8"])
stack(
index[[1]],
rebase(window(index[[2]], start = "9"), base = 1 / link_factor)
)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.