Generates a new array \(\mathbf{X}'\) under the permutation null and then returns the \(V\) statistic computed for \(\mathbf{X}'\).
naiveBlockPermute2(X, block_boundaries, p)
The \(N \times P\) binary or real matrix
A vector of length at most P, whose entries indicate positions at which to demarcate blocks
The power p of \(l_p^p\), i.e., \(||x||_p^p = (x_1^p+...x_n^p)\)
\(V(\mathbf{X}')\), where \(\mathbf{X}'\) is a resampled by permutation of entries blockwise
This is Version 2, which takes in the block boundaries. It is suitable for use when the features are already arranged such that the block memberships are determined by index delimiters. Given original \(\mathbf{X}\) and a list denoting labels of each feature, independently permutes the rows within each block of \(\mathbf{X}\) and returns resulting \(V\). If block labels are not specified, then features are assumed independent, which is to say that block_labels is set to 1:ncol(\(\mathbf{X}\)).
Dependencies: getBinVStat, getRealVStat
X <- matrix(nrow = 5, ncol = 10, rnorm(50)) # real matrix example
naiveBlockPermute2(X, block_boundaries = c(4,7,9), p = 2) # use Euclidean distance
#> [1] 9.315348
X <- matrix(nrow = 5, ncol = 10, rbinom(50, 1, 0.5)) # binary matrix example
naiveBlockPermute2(X, block_boundaries = c(4,7,9))
#> [1] 0.1377778