| randtest.dispRity {dispRity} | R Documentation |
Random (permutation) test
Description
Performs a random test (aka permutation test) on a matrix or a dispRity object.
Usage
## S3 method for class 'dispRity'
randtest(
xtest,
subsets,
metric,
replicates = 100,
resample = TRUE,
alter = "two-sided",
...
)
Arguments
xtest |
The |
subsets |
A |
metric |
A |
replicates |
A |
resample |
|
alter |
The alternative hypothesis. Can be |
... |
optional arguments to be passed to |
Details
This test checks whether the metric calculated on a given subset of the data is significantly different from the metric calculated on any random subset of the same size. In other words: does the given subset have a clearly different disparity value than the rest of the data?
First, the metric (statistic) is applied to the subset sampled from the data (population).
Second, the metric is applied to random equally sized subsets from the data.
If the observed difference falls out of the random differences distribution, the differences are significant.
This algorithm is based on a similar procedure than in link[ade4]{rantest}.
If data is a dispRity object, the subsets, metric and replicates can be left missing and are automatically inherited from the dispRity if it contains respectively subsets (from chrono.subsets or custom.subsets) a metric (from dispRity) and bootstrap draws (from boot.matrix).
If data is a dispRity object subsets can be a list of subsets to compare for example list(c("A", "B"), c("B", "A")) will run two tests comparing respectively sample A to B and B to A. Note that it will only compare these two samples and use their combined size as the population size, if you want to compare a subset to all the subsets you can use list(c("A") or write down the specific subsets to be used.
Value
This function returns a "randtest" object that can be passed to the generic S3 functions print.randtest or plot.randtest.
The output also contains to extra elements output$observed and output$random containing the raw results of respectively the observed and random tests.
Author(s)
Thomas Guillerme
See Also
Examples
## Simple example
dummy_matrix <- matrix(rnorm(500), 100, 5)
## Testing whether the mean of a random subset
## is different than the means of 100 subsets
dummy_test <- randtest.dispRity(dummy_matrix,
subset = sample(1:100, 20),
metric = mean)
dummy_test ; plot(dummy_test)
## Applying this on dispRity objects
data(disparity)
test_disparity <- test.dispRity(disparity,
test = randtest.dispRity)
## The summarised results
summary(test_disparity)
## Plotting the results
plot(test_disparity)
## Applying this on a dispRity object with specific subset comparisons
test_disparity2 <- randtest.dispRity(disparity, subsets = list(
## Comparing subset 90 to the whole population (traitspace)
c(observed = "90"),
## Comparing subset "70" to "90", "70" and "30"
c(observed = "70", random = c("90", "70", "30"))))
## Summarising and plotting the results
summary(test_disparity2)
plot(test_disparity2)