The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
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[@]dogado.de.

wdm

R-CMD-check CRAN status CRAN downloads

R interface to the wdm C++ library, which provides efficient implementations of weighted dependence measures and related independence tests:

All measures are computed in O(n log n) time, where n is the number of observations.

For a detailed description of the functionality, see the API documentation.

Installation

install.packages("wdm")
# install.packages("devtools")
install_submodule_git <- function(x, ...) {
  install_dir <- tempfile()
  system(paste("git clone --recursive", shQuote(x), shQuote(install_dir)))
  devtools::install(install_dir, ...)
}
install_submodule_git("https://github.com/tnagler/wdm-r")

Cloning

This repo contains wdm as a submodule. For a full clone use

git clone --recurse-submodules <repo-address>

Examples

library(wdm)
Dependence between two vectors
x <- rnorm(100)
y <- rpois(100, 1)
w <- runif(100)
wdm(x, y, method = "kendall")               # unweighted
#> [1] 0.04547414
wdm(x, y, method = "kendall", weights = w)  # weighted
#> [1] 0.07764891
Dependence in a matrix
x <- matrix(rnorm(100 * 3), 100, 3)
wdm(x, method = "spearman")               # unweighted
#>             [,1]        [,2]        [,3]
#> [1,]  1.00000000  0.10045005 -0.03279928
#> [2,]  0.10045005  1.00000000 -0.02744674
#> [3,] -0.03279928 -0.02744674  1.00000000
wdm(x, method = "spearman", weights = w)  # weighted
#>             [,1]       [,2]        [,3]
#> [1,]  1.00000000 0.22080359 -0.05369922
#> [2,]  0.22080359 1.00000000  0.01192067
#> [3,] -0.05369922 0.01192067  1.00000000

Chatterjee’s xi measures the dependence of the second argument on the first, so reversing the arguments can change the result:

wdm(x[, 1], x[, 2], method = "chatterjee")
#> [1] 0.01740174
wdm(x[, 2], x[, 1], method = "chatterjee")
#> [1] 0.03510351
Independence test
x <- rnorm(100)
y <- rpois(100, 1)
w <- runif(100)
indep_test(x, y, method = "kendall")               # unweighted
#>     estimate statistic   p_value n_eff  method alternative
#> 1 0.02140979 0.2799245 0.7795354   100 kendall   two-sided
indep_test(x, y, method = "kendall", weights = w)  # weighted
#>     estimate statistic   p_value   n_eff  method alternative
#> 1 0.04616801 0.5015067 0.6160145 71.2503 kendall   two-sided

For Chatterjee’s xi, x is the predictor and y is the response. Its natural one-sided alternative is "greater":

indep_test(x, y, method = "chatterjee", alternative = "greater")
#>      estimate statistic   p_value n_eff     method alternative
#> 1 -0.04496517 -0.576012 0.7176965   100 chatterjee     greater

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.
Health stats visible at Monitor.