sharma.song.test {DiffXTables}R Documentation

Sharma-Song Test for Second-Order Difference Across Contingency Tables

Description

The test detects differential departure from independence via second-order difference in joint distributions underlying two or more contingency tables.

Usage

sharma.song.test(
  tables, null.table.marginal = c("observed", "uniform"), 
  compensated = FALSE
)

Arguments

tables

a list of at least two non-negative matrices or data frames representing contingency tables of the same dimensions.

null.table.marginal

a character string to specify marginal distributions of null tables. The options are "observed"(default) and "uniform".

compensated

a logical value to compensate for the Cochran's condition. It is only used if null.table.marginal="observed". Default is FALSE.

Details

The Sharma-Song test determines whether the patterns underlying multiple input contingency tables are second-order differential. The test statistic measures differential departure form independence. Its null test statistic is proved to asymptotically follow the chi-squared distribution. For full detail of the test, see (Sharma et al. 2021).

If null.table.marginal is set to "observed", the null hypothesis uses the observed marginals. The compensated parameter, if set to TRUE, adds a small constant to each entry of the tables to address the Cochran's condition that the expected count in any table entry is 5 or less.

If the null.table.marginal is set to "uniform", the null tables are set to have uniform marginals. No longer suffering from the Cochran's condition, it detects second-order differential patterns with additional robustness.

Value

A list with class "htest" containing the following components:

statistic

the Sharma-Song chi-squared test statistic.

parameter

degrees of freedom of the chi-squared test statistic.

p.value

p-value of the Sharma-Song test, computed using the chi-squared distribution.

Author(s)

Ruby Sharma and Joe Song

References

Sharma R, Kumar S, Song M (2021). “Fundamental gene network rewiring at the second order within and across mammalian systems.” Bioinformatics. doi: 10.1093/bioinformatics/btab240, https://doi.org/10.1093/bioinformatics/btab240.

See Also

cp.chisq.test, heterogeneity.test, strength.test, marginal.change.test, and type.analysis.

Examples

  # Two second-order differential tables:
  tables <- list(
    matrix(c(4,0,0,
             0,4,0,
             0,0,4), nrow=3),
    matrix(c(0,4,4,
             4,0,4,
             4,4,0), nrow=3)
  )
  sharma.song.test(tables)
  
  # Three tables differ in the first-order but not second-order:
  tables <- list(
    matrix(c(2, 4,  6,  8, 
             3, 6,  9, 12, 
             4, 8, 12, 16), nrow=4),
    matrix(c( 2, 1,  3,  7,
              2, 1,  3,  7,
             10, 5, 15, 35), nrow=4),
    matrix(c(40, 16, 72, 16, 
             45, 18, 81, 18,
             25, 10, 45, 10), nrow=4)
  )
  sharma.song.test(tables, null.table.marginal = "uniform")

[Package DiffXTables version 0.1.3 Index]