This function creates a list of hat matrices and the corresponding parameters. It is used in online() to create the hat matrices for penalized smoothing.
ndiff: Sets the degree of the differencing matrix for creating the penalty
lambda: Penalty parameter (higher values lead to higher penalty)
periodic: Create periodic penalty
idx: make_hat_mats() will create a grid containing all combinations of the parameters. If idx is set, this grid will be subsetted to the rows specified by idx.
params: Instead of the arguments above, a grid (data.frame or named matrix) of parameters can be passed directly.