View source: R/permutation_test.R
| permutation | R Documentation |
Compares two networks estimated by build_network using a
permutation test. Works with all built-in methods (transition and
association) as well as custom registered estimators. The test shuffles
which observations belong to which group, re-estimates networks, and tests
whether observed edge-wise differences exceed chance.
For transition methods ("relative", "frequency",
"co_occurrence"), uses a fast pre-computation strategy: per-sequence
count matrices are computed once, and each permutation iteration only
shuffles group labels and computes group-wise colSums.
For association methods ("cor", "pcor", "glasso",
and custom estimators), the full estimator is called on each permuted
group split.
If either transition network contains only one sequence, the function warns that such a network is not recommended for permutation or other confirmatory testing.
permutation() also accepts two net_edge_betweenness
objects. In that case it permutes the source networks, recomputes edge
betweenness for each shuffled split, and tests edge-betweenness differences.
The two edge-betweenness objects must come from the same source method and
use the same invert setting.
permutation(
x,
y = NULL,
iter = 1000L,
alpha = 0.05,
paired = FALSE,
adjust = "none",
measures = NULL,
nlambda = 50L,
seed = NULL
)
x |
A |
y |
A |
iter |
Integer. Number of permutation iterations (default: 1000). |
alpha |
Numeric. Significance level (default: 0.05). |
paired |
Logical. If |
adjust |
Character. p-value adjustment method passed to
|
measures |
Character vector of centrality measures to permutation-test
in addition to the edges, or |
nlambda |
Integer. Number of lambda values for the |
seed |
Integer or NULL. RNG seed for reproducibility. |
An object of class "net_permutation" containing:
The first netobject.
The second netobject.
Observed difference matrix (x - y).
Observed difference where p < alpha, else 0.
P-value matrix (adjusted if adjust != "none").
Effect size matrix (observed diff / SD of permutation diffs).
Long-format data frame of edge-level results.
The network estimation method.
For edge-betweenness tests, the source network method.
Number of permutation iterations.
Significance level used.
Whether paired permutation was used.
p-value adjustment method used.
Present only when measures is supplied. A list
with stats (one row per state-by-measure: state,
centrality, diff_true, effect_size, p_value),
diffs_true (wide observed differences), and diffs_sig
(observed differences where p < alpha, else 0).
bayes_compare for the Bayesian complement: instead of
"is this difference more extreme than chance?" it answers "how probable is
a difference, and how large?";
build_network, bootstrap_network,
print.net_permutation,
summary.net_permutation
s1 <- data.frame(V1 = c("A","B","C"), V2 = c("B","C","A"))
s2 <- data.frame(V1 = c("A","C","B"), V2 = c("C","B","A"))
n1 <- build_network(s1, method = "relative")
n2 <- build_network(s2, method = "relative")
perm <- permutation(n1, n2, iter = 10)
set.seed(1)
d1 <- data.frame(V1 = sample(LETTERS[1:4], 20, TRUE),
V2 = sample(LETTERS[1:4], 20, TRUE),
V3 = sample(LETTERS[1:4], 20, TRUE))
d2 <- data.frame(V1 = sample(LETTERS[1:4], 20, TRUE),
V2 = sample(LETTERS[1:4], 20, TRUE),
V3 = sample(LETTERS[1:4], 20, TRUE))
net1 <- build_network(d1, method = "relative")
net2 <- build_network(d2, method = "relative")
perm <- permutation(net1, net2, iter = 100, seed = 42)
print(perm)
summary(perm)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.