The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
Combining the type
and parallel
options of
alphaci
yields a total of \(6\) different asymptotic variance
estimates. In this file we informally verify the computations of these
estimates.
Distribution | Parallel |
---|---|
Normal | Yes |
Normal | No |
Elliptical | Yes |
Elliptical | No |
Arbitrary | Yes |
Arbitrary | No |
In our setup we have \(n = 1,000,000\), which should suffice. We use \(k = 5\) across the board.
library("future.apply")
plan(multisession)
avar <- alphaci:::avar
avar_std <- alphaci:::avar_std
set.seed(313)
k <- 5
n <- 10 ** 6
print_table <- function(x) {
table <- rbind(
c("normal" = avar(x, sigma_mat, type = "normal", parallel = FALSE),
"adf" = avar(x, sigma_mat, type = "adf", parallel = FALSE),
"elliptical" = avar(x, sigma_mat, type = "elliptical", parallel = FALSE),
"normal_par" = avar(x, sigma_mat, type = "normal", parallel = TRUE),
"adf_par" = avar(x, sigma_mat, type = "adf", parallel = TRUE),
"elliptical_par" = avar(x, sigma_mat, type = "elliptical", parallel = TRUE)),
c("normal" = avar_std(x, sigma_mat, type = "normal", parallel = FALSE),
"adf" = avar_std(x, sigma_mat, type = "adf", parallel = FALSE),
"elliptical" = avar_std(x, sigma_mat, type = "elliptical", parallel = FALSE),
"normal_par" = avar_std(x, sigma_mat, type = "normal", parallel = TRUE),
"adf_par" = avar_std(x, sigma_mat, type = "adf", parallel = TRUE),
"elliptical_par" = avar_std(x, sigma_mat, type = "elliptical", parallel = TRUE))
)
rownames(table) <- c("alpha", "alpha_std")
knitr::kable(round(table, 3))
}
First we simulate from a normal model that isn’t parallel. Then the normal model should not be equal to the normal parallel method. Moreover, the adf method should be approximately equal to the normal method, but the adpf paralell model should not be equal to the adf model. The table below confirms these points.
lambda <- 1/(5:1)^2
sigma <- 1/(1:5)^2
x <- alphaci:::simulate_congeneric(n, k, sigma, lambda)
sigma_mat <- cov(x)
print_table(x)
normal | adf | elliptical | normal_par | adf_par | elliptical_par | |
---|---|---|---|---|---|---|
alpha | 0.666 | 0.665 | 0.665 | 0.865 | 0.019 | 0.865 |
alpha_std | 0.187 | 0.187 | 0.187 | 0.233 | 0.153 | 0.233 |
If the normal parallel model is true, all of the methods should yield approximately the same result. Again, this is the case.
lambda <- 1
sigma <- 2
x <- alphaci:::simulate_congeneric(n, k, sigma, lambda)
sigma_mat <- cov(x)
print_table(x)
normal | adf | elliptical | normal_par | adf_par | elliptical_par | |
---|---|---|---|---|---|---|
alpha | 0.495 | 0.494 | 0.495 | 0.495 | 0.494 | 0.495 |
alpha_std | 0.495 | 0.494 | 0.495 | 0.495 | 0.494 | 0.495 |
We simulate from an elliptical model, the multivariate Laplace, that is neither parallel nor normal. Then the elliptical model should not be equal to the elliptical parallel method, the normal models should not equal the elliptical models. Moreover, the adf method should be approximately equal to the elliptical method, but the adpf paralell model should not be equal to the adf model. The table below confirms these points.
lambda <- 1/(5:1)^2
sigma <- 1/(1:5)^2
mat <- lambda %*% t(lambda) + diag(sigma)
x <- LaplacesDemon::rmvl(n, mu = 0, Sigma = mat)
sigma_mat <- cov(x)
print_table(x)
normal | adf | elliptical | normal_par | adf_par | elliptical_par | |
---|---|---|---|---|---|---|
alpha | 0.851 | 1.700 | 1.696 | 1.005 | 0.335 | 2.002 |
alpha_std | 0.611 | 1.219 | 1.218 | 0.679 | 0.983 | 1.352 |
Finally, we check the eliptical parallel model. The adfs and elliptical should be equal, but not equal to the normal. The table below confirms this.
lambda <- 1
sigma <- 2
mat <- rep(1, k) %*% t(rep(1, k)) * lambda^2 + diag(sigma, nrow = k)
x <- LaplacesDemon::rmvl(n, mu = 0, Sigma = mat)
sigma_mat <- cov(x)
print_table(x)
normal | adf | elliptical | normal_par | adf_par | elliptical_par | |
---|---|---|---|---|---|---|
alpha | 0.205 | 0.405 | 0.408 | 0.205 | 0.405 | 0.408 |
alpha_std | 0.205 | 0.405 | 0.408 | 0.205 | 0.405 | 0.408 |
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.