Learn R Programming

superpc (version 1.12)

superpc.predict: Form principal components predictor from a trained superpc object

Description

Computes supervised principal components, using scores from "object"

Usage

superpc.predict(object, 
                    data, 
                    newdata, 
                    threshold, 
                    n.components=3, 
                    prediction.type=c("continuous","discrete","nonzero"), 
                    n.class=2)

Arguments

object

Obect returned by superpc.train

data

List of training data, of form described in superpc.train documentation,

newdata

List of test data; same form as training data

threshold

Threshold for scores: features with abs(score) > threshold are retained.

n.components

Number of principal components to compute. Should be 1,2 or 3.

prediction.type

"continuous" for raw principal component(s); "discrete" for principal component categorized in equal bins; "nonzero" for indices of features that pass the threshold

n.class

Number of classes into which predictor is binned (for prediction.type="discrete"

Value

v.pred

Supervised principal componients predictor

u

U matrix from svd of feature matrix x

d

singual values from svd of feature matrix x

which.features

Indices of features exceeding threshold

n.components

Number of supervised principal components requested

call

calling sequence

References

  • E. Bair and R. Tibshirani (2004). "Semi-supervised methods to predict patient survival from gene expression data." PLoS Biol, 2(4):e108.

  • E. Bair, T. Hastie, D. Paul, and R. Tibshirani (2006). "Prediction by supervised principal components." J. Am. Stat. Assoc., 101(473):119-137.

Examples

Run this code
# NOT RUN {
set.seed(332)

#generate some data
x <- matrix(rnorm(50*30), ncol=30)
y <- 10 + svd(x[1:50,])$v[,1] + .1*rnorm(30)
ytest <- 10 + svd(x[1:50,])$v[,1] + .1*rnorm(30)
censoring.status <- sample(c(rep(1,20), rep(0,10)))
censoring.status.test <- sample(c(rep(1,20), rep(0,10)))

featurenames <- paste("feature", as.character(1:50), sep="")
data <- list(x=x, 
             y=y, 
             censoring.status=censoring.status, 
             featurenames=featurenames)
data.test <- list(x=x, 
                  y=ytest, 
                  censoring.status=censoring.status.test, 
                  featurenames=featurenames)

a <- superpc.train(data, type="survival")
fit <- superpc.predict(a, 
                       data, 
                       data.test, 
                       threshold=1.0, 
                       n.components=1)
plot(fit$v.pred, ytest)
# }

Run the code above in your browser using DataLab