classifyTests {limma} | R Documentation

## Treat Simultaneous T-Tests as Classification Problem

### Description

Classify a series of related t-statistics as up, down or not significant.

### Usage

    classifyTestsF(object, cor.matrix=NULL, df=Inf, p.value=0.01, fstat.only=FALSE)
    classifyTestsT(object, t1=4, t2=3)
    classifyTestsP(object, df=Inf, p.value=0.05, method="holm")
    FStat(object, cor.matrix=NULL)

### Arguments

`object` | numeric matrix of t-statistics or an `MArrayLM` object from which the t-statistics may be extracted.
`cor.matrix` | covariance matrix of each row of t-statistics. Defaults to the identity matrix.
`df` | numeric vector giving the degrees of freedom for the t-statistics. May have length 1 or length equal to the number of rows of `tstat`.
`p.value` | numeric value between 0 and 1 giving the desired size of the test
`fstat.only` | logical, if `TRUE` then return the overall F-statistic as for `FStat` instead of classifying the test results
`t1` | first critical value for absolute t-statistics
`t2` | second critical value for absolute t-statistics
`method` | character string specifying p-value adjustment method. See `p.adjust` for possible values.

### Details

These functions implement multiple testing procedures for determining whether each statistic in a matrix of t-statistics should be considered significantly different from zero. Rows of `tstat` correspond to genes and columns to coefficients or contrasts. The adjustment for multiple testing is across the contrasts rather than the more usual control across genes.

`FStat` computes the gene-wise F-statistics for testing all the contrasts equal to zero. It is equivalent to `classifyTestsF` with `fstat.only=TRUE`.

`classifyTestsF` uses a nested F-test approach giving particular attention to correctly classifying genes which have two or more significant t-statistics, i.e., are differential expressed under two or more conditions. For each row of `tstat`, the overall F-statistics is constructed from the t-statistics as for `FStat`. At least one constrast will be classified as significant if and only if the overall F-statistic is significant. If the overall F-statistic is significant, then the function makes a best choice as to which t-statistics contributed to this result. The methodology is based on the principle that any t-statistic should be called significant if the F-test is still significant for that row when all the larger t-statistics are set to the same absolute size as the t-statistic in question.

`classifyTestsT` and `classifyTestsP` implement simpler classification schemes based on threshold or critical values for the individual t-statistics in the case of `classifyTestsT` or p-values obtained from the t-statistics in the case of `classifyTestsP`. For `classifyTestsT`, classifies any t-statistic with absolute greater than `t2` as significant provided that at least one t-statistic for that gene is at least `t1` in absolute value. `classifyTestsP` applied p-value adjustment from `p.adjust` to the p-values for each gene.

If `tstat` is an `MArrayLM` object, then all arguments except for `p.value` are extracted from it.

`cor.matrix` is the same as the correlation matrix of the coefficients from which the t-statistics are calculated. If `cor.matrix` is not specified, then it is calculated from `design` and `contrasts` if at least `design` is specified or else defaults to the identity matrix. In terms of `design` and `contrasts`, `cor.matrix` is obtained by standardizing the matrix `t(contrasts) %*% solve(t(design) %*% design) %*% contrasts` to a correlation matrix.

### Value

An object of class `TestResults`. This is essentially a numeric matrix with elements `-1`, `0` or `1` depending on whether each t-statistic is classified as significantly negative, not significant or significantly positive respectively.
`FStat` produces a numeric vector of F-statistics with attributes `df1` and `df2` giving the corresponding degrees of freedom.

### Author(s)

Gordon Smyth

### See Also

An overview of linear model functions in limma is given by 5.LinearModels.

### Examples

    tstat <- matrix(c(0,5,0, 0,2.5,0, -2,-2,2, 1,1,1), 4, 3, byrow=TRUE)
    classifyTestsF(tstat)

    # See also the examples for contrasts.fit and vennDiagram

[Package limma version 1.9.6 Index]