inst/doc/Modeler.R

### R code from vignette source 'Modeler.Rnw'

###################################################
### code chunk number 1: lib
###################################################
library(Modeler)


###################################################
### code chunk number 2: seed
###################################################
set.seed(234843)


###################################################
### code chunk number 3: params
###################################################
nFeatures <- 10000
nSignif <- 100
pB <- 0.4
delta <- 1
sigma <- 0.3
nTrain <- 100
nTest <- 100


###################################################
### code chunk number 4: paramlist
###################################################
paramlist <- c("nFeatures", "nSignif", "pB",
               "delta", "sigma", "nTrain", "nTest")


###################################################
### code chunk number 5: alpha.beta
###################################################
alpha <- 0.75
beta <- 0.95
round(100*pbeta(seq(0.1, 0.9, 0.1), alpha, beta), 1)
xx <- seq(0, 1, length=300)
yy <- dbeta(xx, alpha, beta)


###################################################
### code chunk number 6: Modeler.Rnw:81-82
###################################################
plot(xx, yy, type='l')


###################################################
### code chunk number 7: signed
###################################################
signed <- -1 + 2*rbinom(nSignif, 1, 0.5)


###################################################
### code chunk number 8: offsets
###################################################
offsets <- c(signed*rnorm(nSignif, delta, sigma), # can change in either direction
             rep(0, nFeatures - nSignif))         # but most don't change at all


###################################################
### code chunk number 9: out
###################################################
lp <- function(p) log(p/(1-p))
ea <- function(a) 1/(1+exp(-a))
pOut <- rbeta(nTrain, alpha, beta)
trainOutcome <- lp(pOut)


###################################################
### code chunk number 10: class
###################################################
# TODO: Fix this so it looks at correlation with the continuous outcome
# instead of just diferential expression between classes
trainClass <- factor(c("cyan", "magenta")[1 + 1*(pOut > 0.5)])
summary(trainClass)
isB <- trainClass=="magenta"
summary(isB)


###################################################
### code chunk number 11: train
###################################################
trainData <- matrix(rnorm(nFeatures*nTrain), ncol=nTrain) # pure noise
trainData[,isB] <- sweep(trainData[,isB], 1, offsets, "+")
trainData <- t(scale(t(trainData)))
dimnames(trainData) <- list(paste("gene", 1:nFeatures, sep=''),
                            paste("trainsamp", 1:nTrain, sep=''))



###################################################
### code chunk number 12: Modeler.Rnw:133-141
###################################################
K <- 3
truncData <- trainData[1:500,]
truncData[truncData < -K] <- -K
truncData[truncData > K] <- K
heatmap(truncData, col=redgreen(64),
        ColSideColors=as.character(trainClass), 
        scale='none', zlim=c(-K, K), main="Training Data")



###################################################
### code chunk number 13: test.out
###################################################
pOut <- rbeta(nTest, alpha, beta)
testOutcome <- lp(pOut)


###################################################
### code chunk number 14: test.class
###################################################
testClass <- factor(c("cyan", "magenta")[1 + 1*(pOut > 0.5)])
summary(testClass)
isB <- testClass=="magenta"
summary(isB)


###################################################
### code chunk number 15: testData
###################################################
testData <- matrix(rnorm(nFeatures*nTest), ncol=nTest) # pure noise
testData[,isB] <- sweep(testData[,isB], 1, offsets, "+")
testData <- t(scale(t(testData)))
dimnames(testData) <- list(paste("gene", 1:nFeatures, sep=''),
                            paste("testsamp", 1:nTest, sep=''))


###################################################
### code chunk number 16: Modeler.Rnw:167-174
###################################################
K <- 3
truncData <- testData[1:500,]
truncData[truncData < -K] <- -K
truncData[truncData > K] <- K
heatmap(truncData, col=redgreen(64),
        ColSideColors=as.character(testClass), 
        scale='none', zlim=c(-K, K), main="Test Data")


###################################################
### code chunk number 17: clean
###################################################
rm(list=paramlist)
rm(pOut, isB, signed, offsets)
rm(xx, yy, alpha, beta)
rm(paramlist)


###################################################
### code chunk number 18: t.tests
###################################################
library(ClassComparison)
mtt <- MultiTtest(trainData, trainClass)


###################################################
### code chunk number 19: Modeler.Rnw:194-198
###################################################
opar <- par(mfrow=c(2,1))
plot(mtt)
hist(mtt)
par(opar)


###################################################
### code chunk number 20: bum
###################################################
bum <- Bum(mtt@p.values)
countSignificant(bum, alpha=0.01, by="FDR")
countSignificant(bum, alpha=0.05, by="FDR")



###################################################
### code chunk number 21: Modeler.Rnw:209-210
###################################################
hist(bum)


###################################################
### code chunk number 22: geneset
###################################################
geneset <- rownames(trainData)[selectSignificant(bum, alpha=0.05, by="FDR")]
length(geneset)
trainSubset <- trainData[geneset,]
testSubset  <- testData[geneset,]


###################################################
### code chunk number 23: 3nn
###################################################
knnFitted <- learn(modeler3NN, trainSubset, trainClass)
knnPredictions <- predict(knnFitted, testSubset)
table(knnPredictions, testClass)



###################################################
### code chunk number 24: 5nn
###################################################
knnFitted <- learn(modeler5NN, trainSubset, trainClass)
knnPredictions <- predict(knnFitted, testSubset)
table(knnPredictions, testClass)


###################################################
### code chunk number 25: cart
###################################################
rpartFitted <- learn(modelerRPART, trainSubset, trainClass)
rpartPredictions <- predict(rpartFitted, testSubset, type='class')
table(rpartPredictions, testClass)


###################################################
### code chunk number 26: cart.reg
###################################################
rpartFitted <- learn(modelerRPART, trainSubset, trainOutcome)
rpartPredictions <- predict(rpartFitted, testSubset)
table(rpartPredictions > 0, testClass)
cor(rpartPredictions, testOutcome)
temp <- lm(testOutcome ~ rpartPredictions)


###################################################
### code chunk number 27: Modeler.Rnw:256-258
###################################################
plot(rpartPredictions, testOutcome)
abline(coef(temp))


###################################################
### code chunk number 28: lr (eval = FALSE)
###################################################
## # takes too long for the vignette, because of the "step"
## # across glm fits.
## lrFitted <- learn(modelerLR, trainSubset, trainClass)
## lrPredictions <- predict(lrFitted, testSubset)
## table(lrPredictions, testClass)


###################################################
### code chunk number 29: lr.reg
###################################################
lrFitted <- learn(modelerLR, trainSubset, trainOutcome)
lrPredictions <- predict(lrFitted, testSubset)
table(lrPredictions > 0, testClass)
cor(lrPredictions, testOutcome)
temp <- lm(testOutcome ~ lrPredictions)


###################################################
### code chunk number 30: Modeler.Rnw:281-283
###################################################
plot(lrPredictions, testOutcome)
abline(coef(temp))


###################################################
### code chunk number 31: ccp
###################################################
ccpFitted <- learn(modelerCCP, trainSubset, trainClass)
ccpPredictions <- predict(ccpFitted, testSubset)
table(ccpPredictions, testClass)


###################################################
### code chunk number 32: svm
###################################################
# takes too long for the vignette, because of the "step"
# across glm fits.
svmFitted <- learn(modelerSVM, trainSubset, trainClass)
svmPredictions <- predict(svmFitted, testSubset)
table(svmPredictions, testClass)


###################################################
### code chunk number 33: svm.reg
###################################################
svmFitted <- learn(modelerSVM, trainSubset, trainOutcome)
svmPredictions <- predict(svmFitted, testSubset)
table(svmPredictions > 0, testClass)
cor(svmPredictions, testOutcome)
temp <- lm(testOutcome ~ svmPredictions)


###################################################
### code chunk number 34: Modeler.Rnw:314-316
###################################################
plot(svmPredictions, testOutcome)
abline(coef(temp))


###################################################
### code chunk number 35: nnet
###################################################
nnetFitted <- learn(modelerNNET, trainSubset, trainClass)
nnetPredictions <- predict(nnetFitted, testSubset)
table(nnetPredictions, testClass)


###################################################
### code chunk number 36: nnet.reg
###################################################
nnetFitted <- learn(modelerNNET, trainSubset, trainOutcome)
nnetPredictions <- predict(nnetFitted, testSubset)
table(nnetPredictions > 0, testClass)
cor(nnetPredictions, testOutcome)
temp <- lm(testOutcome ~ nnetPredictions)


###################################################
### code chunk number 37: Modeler.Rnw:337-339
###################################################
plot(nnetPredictions, testOutcome)
#abline(coef(temp))


###################################################
### code chunk number 38: rf
###################################################
rfFitted <- learn(modelerRF, trainSubset, trainClass)
rfPredictions <- predict(rfFitted, testSubset)
table(rfPredictions, testClass)


###################################################
### code chunk number 39: rf.reg
###################################################
rfFitted <- learn(modelerRF, trainSubset, trainOutcome)
rfPredictions <- predict(rfFitted, testSubset)
table(rfPredictions > 0, testClass)
cor(rfPredictions, testOutcome)
temp <- lm(testOutcome ~ rfPredictions)


###################################################
### code chunk number 40: Modeler.Rnw:360-362
###################################################
plot(rfPredictions, testOutcome)
abline(coef(temp))

Try the Modeler package in your browser

Any scripts or data that you put into this service are public.

Modeler documentation built on May 7, 2019, 1:03 a.m.