Learn R Programming

supclust (version 1.1-1)

sign.change: 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).

See Also

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

Examples

Run this code
# NOT RUN {
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)
# }

Run the code above in your browser using DataLab