# NOT RUN {
library(penaltyLearning)
library(data.table)
data(neuroblastomaProcessed, envir=environment())
## The BIC model selection criterion is lambda = log(n), where n is
## the number of data points to segment. This implies log(lambda) =
## log(log(n)), which is the log2.n feature.
row.name.vec <- grep(
"^(4|520)[.]",
rownames(neuroblastomaProcessed$feature.mat),
value=TRUE)
feature.mat <- neuroblastomaProcessed$feature.mat[row.name.vec, ]
target.mat <- neuroblastomaProcessed$target.mat[row.name.vec, ]
pred.dt <- data.table(
row.name=row.name.vec,
target.mat,
feature.mat[, "log2.n", drop=FALSE])
pred.dt[, pred.log.lambda := log2.n ]
pred.dt[, residual := targetIntervalResidual(
cbind(min.L, max.L),
pred.log.lambda)]
library(ggplot2)
limits.dt <- pred.dt[, data.table(
log2.n,
log.penalty=c(min.L, max.L),
limit=rep(c("min", "max"), each=.N))][is.finite(log.penalty)]
ggplot()+
geom_abline(slope=1, intercept=0)+
geom_point(aes(
log2.n,
log.penalty,
fill=limit),
data=limits.dt,
shape=21)+
geom_segment(aes(
log2.n, pred.log.lambda,
xend=log2.n, yend=pred.log.lambda-residual),
data=pred.dt,
color="red")+
scale_fill_manual(values=c(min="white", max="black"))
# }
Run the code above in your browser using DataLab