set.seed(1)
n <- 10; Tn <- 4
X <- replicate(Tn, array(rnorm(n*n*2), c(n, n, 2)), simplify = FALSE)
beta_true <- rbind(seq(-1, 1, length.out = Tn), seq(0.5, -0.5, length.out = Tn))
Y <- vector("list", Tn)
for (t in seq_len(Tn)) {
Yt <- X[[t]][, , 1] * beta_true[1, t] + X[[t]][, , 2] * beta_true[2, t] +
matrix(rnorm(n*n, 0, 0.2), n, n)
diag(Yt) <- NA
Y[[t]] <- Yt
}
fit_als <- als_dynamic_beta(Y, X, lambda = 0) # per-period LS
fit_smooth <- als_dynamic_beta(Y, X, lambda = 10) # smoother path
Run the code above in your browser using DataLab