## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup-------------------------------------------------------------------- library(moderncor) ## ----setup-data--------------------------------------------------------------- set.seed(123) x <- runif(100, -1, 1) y <- x^2 + rnorm(100, sd = 0.1) ## ----pearson------------------------------------------------------------------ moderncor(x, y, method = "pearson") ## ----modern, eval = requireNamespace("energy", quietly = TRUE)---------------- # Distance Correlation (captures non-linear dependencies) moderncor(x, y, method = "dcor") ## ----xi, eval = requireNamespace("XICOR", quietly = TRUE)--------------------- # Chatterjee's Xi (captures functional dependence) moderncor(x, y, method = "xi") ## ----classical---------------------------------------------------------------- moderncor(x, y, method = "spearman") moderncor(x, y, method = "kendall") ## ----matrix-input------------------------------------------------------------- # Compute Spearman correlation matrix for iris dataset res_mat <- moderncor(iris[, 1:4], method = "spearman") res_mat ## ----as-data-frame------------------------------------------------------------ # Convert correlation matrix to tidy data frame df <- as.data.frame(res_mat) head(df) ## ----no-pvalue, eval = requireNamespace("energy", quietly = TRUE)------------- # Compute only the estimate, without p-values moderncor(x, y, method = "dcor", p_value = FALSE) ## ----biweight----------------------------------------------------------------- set.seed(42) x_out <- c(rnorm(95), rnorm(5, mean = 10)) # 5% outliers y_out <- c(rnorm(95), rnorm(5, mean = 10)) moderncor(x_out, y_out, method = "biweight") ## ----biweight-vs-pearson------------------------------------------------------ moderncor(x_out, y_out, method = "pearson") ## ----percentage-bend, eval = requireNamespace("WRS2", quietly = TRUE)--------- moderncor(x_out, y_out, method = "percentage_bend") ## ----winsorized, eval = requireNamespace("WRS2", quietly = TRUE)-------------- moderncor(x_out, y_out, method = "winsorized") ## ----polychoric, eval = requireNamespace("psych", quietly = TRUE)------------- # Simulate ordinal data (e.g., Likert scale responses) set.seed(1) z1 <- rnorm(200) z2 <- 0.7 * z1 + rnorm(200, sd = sqrt(1 - 0.7^2)) x_ord <- cut(z1, breaks = c(-Inf, -1, 0, 1, Inf), labels = FALSE) y_ord <- cut(z2, breaks = c(-Inf, -1, 0, 1, Inf), labels = FALSE) moderncor(x_ord, y_ord, method = "polychoric") ## ----tetrachoric, eval = requireNamespace("psych", quietly = TRUE)------------ x_bin <- as.integer(z1 > 0) y_bin <- as.integer(z2 > 0) moderncor(x_bin, y_bin, method = "tetrachoric") ## ----partial, eval = requireNamespace("ppcor", quietly = TRUE)---------------- set.seed(7) z <- rnorm(100) x_p <- 0.6 * z + rnorm(100, sd = 0.8) # x correlates with z y_p <- 0.6 * z + rnorm(100, sd = 0.8) # y correlates with z # Raw correlation (inflated by shared z) moderncor(x_p, y_p, method = "pearson") ## ----partial-controlled, eval = requireNamespace("ppcor", quietly = TRUE)----- # Partial correlation controlling for z moderncor(x_p, y_p, method = "partial", z = z) ## ----semi-partial, eval = requireNamespace("ppcor", quietly = TRUE)----------- moderncor(x_p, y_p, method = "semi_partial", z = z) ## ----partial-spearman, eval = requireNamespace("ppcor", quietly = TRUE)------- moderncor(x_p, y_p, method = "partial", z = z, method_partial = "spearman") ## ----ball, eval = requireNamespace("Ball", quietly = TRUE)-------------------- moderncor(x, y, method = "ball") ## ----tau-star, eval = requireNamespace("TauStar", quietly = TRUE)------------- moderncor(x, y, method = "tau_star") ## ----available-methods-------------------------------------------------------- available_methods() ## ----method-info-------------------------------------------------------------- method_info("dcor") ## ----categorical-preview, eval = requireNamespace("DescTools", quietly = TRUE)---- # Quick preview: Cramér's V for two factor variables moderncor_cat(factor(mtcars$cyl), factor(mtcars$gear), method = "cramers_v")