Learn R Programming

energy (version 1.6.2)

disco: distance components (DISCO)

Description

E-statistics DIStance COmponents and tests, analogous to variance components

Usage

disco(x, factors, distance, index=1.0, R=0, method=c("disco","discoB","discoF")) disco.between(x, factors, distance, index=1.0, R=0)

Arguments

x
data matrix or distance matrix
factors
matrix of factor labels or integers (not design matrix)
distance
logical, TRUE if x is distance matrix
index
exponent on Euclidean distance in (0,2]
R
number of replicates for a permutation test
method
test statistic

Value

When method="discoF", disco returns a class disco object, which is a list containing
call
call
method
method
statistic
vector of observed statistics
p.value
vector of p-values
k
number of factors
N
number of observations
between
between-sample distance components
withins
one-way within-sample distance components
within
within-sample distance component
total
total dispersion
Df.trt
degrees of freedom for treatments
Df.e
degrees of freedom for error
index
index (exponent on distance)
factor.names
factor names
factor.levels
factor levels
sample.sizes
sample sizes
stats
matrix containing decomposition
When method="discoB", disco passes the arguments to disco.between, which returns a class htest object.disco.between returns a class htest object, where the test statistic is the between-sample statistic (proportional to the numerator of the F ratio of the disco test.

Details

disco calculates the distance components decomposition of total dispersion and if R > 0 tests for significance using the test statistic disco "F" ratio (default method="disco"), or using the between component statistic (method="discoB"), each implemented by permutation test. In the current release disco computes the decomposition for one-way models only.

References

M. L. Rizzo and G. J. Szekely (2010). DISCO Analysis: A Nonparametric Extension of Analysis of Variance, Annals of Applied Statistics, Vol. 4, No. 2, 1034-1055. http://dx.doi.org/10.1214/09-AOAS245

See Also

edist eqdist.e eqdist.etest ksample.e

Examples

Run this code
      ## warpbreaks one-way decompositions
      data(warpbreaks)
      attach(warpbreaks)
      disco(breaks, factors=wool, R=99)
      
      ## When index=2 for univariate data, we get ANOVA decomposition
      disco(breaks, factors=tension, index=2.0, R=99)
      aov(breaks ~ tension)
      
      ## Multivariate response
      ## Example on producing plastic film from Krzanowski (1998, p. 381)
      tear <- c(6.5, 6.2, 5.8, 6.5, 6.5, 6.9, 7.2, 6.9, 6.1, 6.3,
                6.7, 6.6, 7.2, 7.1, 6.8, 7.1, 7.0, 7.2, 7.5, 7.6)
      gloss <- c(9.5, 9.9, 9.6, 9.6, 9.2, 9.1, 10.0, 9.9, 9.5, 9.4,
                 9.1, 9.3, 8.3, 8.4, 8.5, 9.2, 8.8, 9.7, 10.1, 9.2)
      opacity <- c(4.4, 6.4, 3.0, 4.1, 0.8, 5.7, 2.0, 3.9, 1.9, 5.7,
                   2.8, 4.1, 3.8, 1.6, 3.4, 8.4, 5.2, 6.9, 2.7, 1.9)
      Y <- cbind(tear, gloss, opacity)
      rate <- factor(gl(2,10), labels=c("Low", "High"))  
	  
	  ## test for equal distributions by rate
      disco(Y, factors=rate, R=99)     
	  disco(Y, factors=rate, R=99, method="discoB")
      
      ## Just extract the decomposition table
      disco(Y, factors=rate)$stats    
	  
	  ## Compare eqdist.e methods for rate
	  ## disco between stat is half of original when sample sizes equal
	  eqdist.e(Y, sizes=c(10, 10), method="original")
	  eqdist.e(Y, sizes=c(10, 10), method="discoB")

      ## The between-sample distance component
      disco.between(Y, factors=rate)	  

Run the code above in your browser using DataLab