## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 4, message = FALSE, warning = FALSE ) ## ----setup-------------------------------------------------------------------- library(dcorBSS) ## ----distance-correlation----------------------------------------------------- set.seed(1) n <- 200 x <- rnorm(n) y_dep <- x^2 + 0.25 * rnorm(n) y_ind <- rnorm(n) c( dependent = dcor_large(x, y_dep), independent = dcor_large(x, y_ind) ) ## ----multivariate-dcor-------------------------------------------------------- X <- cbind(rnorm(n), rnorm(n)) Y <- cbind(X[, 1]^2 + 0.2 * rnorm(n), rnorm(n)) dcor_large(X, Y) ## ----blockwise-dcor----------------------------------------------------------- r_full <- dcor_large(X, Y) r_block <- dcor_large(X, Y, block_size = 64L) c(full = r_full, blockwise = r_block) all.equal(r_full, r_block, tolerance = 1e-10) ## ----lagged-dcor-------------------------------------------------------------- set.seed(1) x <- arima.sim(n = 500, list(ma = c(0.8))) dacor_large(x, lag = 1) dacor_large(x, lag = 2) ## ----bowl-transform----------------------------------------------------------- set.seed(2) X_heavy <- cbind(rt(100, df = 3), rnorm(100)) head(bowl_transform(X_heavy, do_scale = TRUE)) dim(bowl_transform(X_heavy, do_scale = TRUE)) ## ----biloop-transform--------------------------------------------------------- z <- rt(100, df = 3) z_biloop <- biloop_transform(z, do_scale = TRUE) head(z_biloop) dim(z_biloop) ## ----transformed-dependence--------------------------------------------------- set.seed(3) x <- rt(200, df = 3) y <- x^2 + 0.3 * rnorm(200) x_b <- biloop_transform(x, do_scale = TRUE) y_b <- biloop_transform(y, do_scale = TRUE) dcor_large(x_b, y_b) ## ----dcorica-simulation------------------------------------------------------- set.seed(4) n <- 300 S <- cbind( uniform = runif(n, -1, 1), normal = rnorm(n), chisq = rchisq(n, df = 3) ) A <- matrix(rnorm(9), 3, 3) X <- tcrossprod(S, A) fit <- dcorICA(X, seed = 1, sweeps = 2) str(fit, max.level = 1) head(fit$S) ## ----dcorica-result----------------------------------------------------------- fit$W pairs(fit$S, main = "Estimated components from dcorICA()") ## ----dcorica-blockwise, eval = FALSE------------------------------------------ # fit_block <- dcorICA(X, seed = 1, sweeps = 2, block_size = 128L) ## ----dcorica-robust, eval = FALSE--------------------------------------------- # if (requireNamespace("robustbase", quietly = TRUE)) { # mcd <- robustbase::covMcd(X) # # fit_robust <- dcorICA( # X, # mu = mcd$center, # scatter = mcd$cov, # transform = "bowl", # seed = 1, # sweeps = 2 # ) # # head(fit_robust$S) # } ## ----dacf-curve--------------------------------------------------------------- data(Nile) curve <- dacf_curve(Nile, lags = 1:12, measure = "dcor") curve$estimate plot(curve, type = "line") ## ----dcor-serial-test--------------------------------------------------------- test_dcor <- dcor_serial_test( Nile, type = "FP", measure = "dcor", lags = 1:6, B = 99, seed = 1 ) test_dcor plot(test_dcor) ## ----hsic-serial-test--------------------------------------------------------- test_hsic <- hsic_serial_test( Nile, lags = 1:6, type = "H96", B = 99, seed = 1 ) test_hsic plot(test_hsic, type = "line") ## ----nhsic-------------------------------------------------------------------- set.seed(6) x <- matrix(rnorm(200), ncol = 1) y <- x^2 + 0.3 * rnorm(200) z <- matrix(rnorm(200), ncol = 1) c( dependent = nHSIC(x, y), independent = nHSIC(x, z) )