sign.change {supclust}R Documentation

Sign-flipping of Predictor Variables to Obtain Equal Polarity

Description

Computes the empirical correlation for each predictor variable (gene) in the x-Matrix with the response y, and multiplies its values with (-1) if the empirical correlation has a negative sign. For gene expression data, this amounts to treating under- and overexpression symmetrically. After the sign.change, low (expression) values point towards response class 0 and high (expression) values point towards class 1.

Usage

sign.change(x, y)

Arguments

x Numeric matrix of explanatory variables (p variables in columns, n cases in rows). For example, these can be microarray gene expression data which should be sign-flipped and then grouped.
y Numeric vector of length n containing the class labels of the individuals. These labels have to be coded by 0 and 1.

Value

Returns a list containing:

x.new The sign-flipped x-matrix.
signs Numeric vector of length p, which for each predictor variable indicates whether it was sign-flipped (coded by -1) or not (coded by +1).

Author(s)

Marcel Dettling, dettling@stat.math.ethz.ch

References

Marcel Dettling (2003) Finding Groups of Predictive Genes from Microarray Data, see http://stat.ethz.ch/~dettling/supervised.html

Marcel Dettling and Peter Bühlmann (2004). Finding Predictive Gene Groups from Microarray Data. To appear in the Journal of Multivariate Analysis.

See Also

pelora, as well as for older methodology, wilma and sign.flip.

Examples

data(leukemia, package="supclust")

op <- par(mfrow=c(1,3))
plot(leukemia.x[,69],leukemia.y)
title(paste("Margin = ", round(margin(leukemia.x[,69], leukemia.y),2)))

## Sign-flipping is very important
plot(leukemia.x[,161],leukemia.y)
title(paste("Margin = ", round(margin(leukemia.x[,161], leukemia.y),2)))
x <- sign.change(leukemia.x, leukemia.y)$x.new
plot(x[,161],leukemia.y)
title(paste("Margin = ", round(margin(x[,161], leukemia.y),2)))
par(op)

[Package supclust version 1.0-5 Index]