load("/Users/gerhard/msc-thesis-data/concept.rdata")
rs <- numeric(nrow(time.evolution))
for(i in 1:nrow(time.evolution)){
rs[i] <- sum(time.evolution[i,])
}
zeros <- which(rs==0)
pid <- ifelse(pid=="electron",1,0)
pid <- as.numeric(unlist(pid))
pid <- pid[-zeros]
p <- p[-zeros]
dedX <- dedX[-zeros]
time.evolution <- time.evolution[-zeros,]
pads[zeros] <- NULL
p.le.t.2 <- which(p<=2)
pid <- pid[p.le.t.2]
dont.keep <- 1:length(pads)
dont.keep <- dont.keep[-p.le.t.2]
pads[dont.keep] <- NULL
dedX <- dedX[p.le.t.2]
p <- p[p.le.t.2]
pid <- pid[p.le.t.2]
time.evolution <- time.evolution[p.le.t.2,]
rm(rs,zeros,i,dont.keep)
rolled.out.pads <- sapply(pads,rbind)
rolled.out.pads <- t(rolled.out.pads)
if(dim(pads[[1]])[1]==17 && dim(pads[[1]])[2]==24){
17*24==ncol(rolled.out.pads)&&nrow(rolled.out.pads)==length(pads)
}
## [1] TRUE
rolled.out.pca <- prcomp(rolled.out.pads)
dimnames(rolled.out.pads) <- NULL
require(pander)
## Loading required package: pander
pander(head(rolled.out.pca$rotation[,1:6]))
| 9.107e-05 |
-0.0007042 |
0.002044 |
-0.0002213 |
0.0006307 |
-0.0006643 |
| 9.784e-05 |
-0.001001 |
0.002679 |
-0.0001765 |
0.0007875 |
-0.001012 |
| 0.0002565 |
-0.0009057 |
0.002736 |
-0.0002299 |
0.001617 |
-0.001285 |
| 0.0008672 |
-0.001709 |
0.006119 |
-1.639e-05 |
0.003548 |
-0.002757 |
| 0.00579 |
-0.0006067 |
0.01902 |
0.00356 |
0.017 |
-0.009926 |
| 0.02947 |
0.007603 |
0.05127 |
0.01347 |
0.04457 |
-0.03087 |
save(pads,file="/Users/gerhard/msc-thesis-data/pads")
save(rolled.out.pads,file="/Users/gerhard/msc-thesis-data/rolled.out.pads")
save(rolled.out.pca,file="/Users/gerhard/msc-thesis-data/rolled.out.pca")
save(time.evolution,file="/Users/gerhard/msc-thesis-data/time.evolution")
save(dedX,file="/Users/gerhard/msc-thesis-data/dedX")
save(p,file="/Users/gerhard/msc-thesis-data/p")
save(pid,file="/Users/gerhard/msc-thesis-data/pid")
rm(p.le.t.2)
#//TODO: load...
biplot(rolled.out.pca, scale = 0)
std.dev <- rolled.out.pca$sdev
var <- std.dev^2
prop.var.ex <- var/sum(var)
plot(cumsum(prop.var.ex), xlab = "Principal Component",
ylab = "Cumulative Proportion of Variance Explained",
type = "b")
abline(v=min(which(cumsum(prop.var.ex)>=0.9)),col="blue")
text("90%",x=min(which(cumsum(prop.var.ex)>=0.9)+20),y=0.2,col="blue")
text(as.character(min(which(cumsum(prop.var.ex)>=0.9))),x=min(which(cumsum(prop.var.ex)>=0.9)+15),y=0.3,col="blue")
abline(v=min(which(cumsum(prop.var.ex)>=0.95)),col="purple")
text("95%",x=min(which(cumsum(prop.var.ex)>=0.95)+20),y=0.2,col="purple")
text(as.character(min(which(cumsum(prop.var.ex)>=0.95))),x=min(which(cumsum(prop.var.ex)>=0.95)+15),y=0.3,col="purple")
abline(v=min(which(cumsum(prop.var.ex)>=0.99)),col="red")
text("99%",x=min(which(cumsum(prop.var.ex)>=0.99)+20),y=0.2,col="red")
text(as.character(min(which(cumsum(prop.var.ex)>=0.99))),x=min(which(cumsum(prop.var.ex)>=0.99)+15),y=0.3,col="red")

#function for new data that needs to use these principal component loadings to exist in the same feature space
load.pca <- function(new.data){
pca.loaded <- predict(rolled.out.pca, newdata = new.data)
}
pca.dat <- load.pca(rolled.out.pads)
#pca.dat <- pca.dat[,1:183]
rm(var,std.dev,prop.var.ex,rolled.out.pads,rolled.out.pca)
Do the same for integrated charge deposit over time bins
time.evol.pca <- prcomp(time.evolution)
biplot(time.evol.pca, scale = 0)
std.dev <- time.evol.pca$sdev
var <- std.dev^2
prop.var.ex <- var/sum(var)
plot(cumsum(prop.var.ex), xlab = "Principal Component",
ylab = "Cumulative Proportion of Variance Explained",
type = "b")
abline(v=min(which(cumsum(prop.var.ex)>=0.9)),col="blue")
abline(v=min(which(cumsum(prop.var.ex)>=0.95)),col="purple")
abline(v=min(which(cumsum(prop.var.ex)>=0.99)),col="red")

#function for new data that needs to use these principal component loadings to exist in the same feature space
load.pca2 <- function(new.data){
pca.loaded <- predict(time.evol.pca, newdata = new.data)
}
pca.dat2 <- load.pca2(time.evolution)
#pca.dat2 <- pca.dat2[,1:min(which(cumsum(prop.var.ex)>=0.99))]
pca.dat <- cbind(pca.dat,pca.dat2)
rm(pca.dat2)
rm(time.evol.pca)
rm(p.le.t.2)
rm(prop.var.ex,std.dev,var,load.pca,load.pca2)
time.2.chunks <- matrix(ncol=2,nrow=nrow(time.evolution))
time.2.chunks[,1] <- time.evolution[,1] + time.evolution[,2] +
time.evolution[,3] + time.evolution[,4] +
time.evolution[,5] + time.evolution[,6] +
time.evolution[,7] + time.evolution[,8] +
time.evolution[,9] + time.evolution[,10] +
time.evolution[,11] + time.evolution[,12]
time.2.chunks[,2] <- time.evolution[,13] + time.evolution[,14] +
time.evolution[,15] + time.evolution[,16] +
time.evolution[,17] + time.evolution[,18] +
time.evolution[,19] + time.evolution[,20] +
time.evolution[,21] + time.evolution[,22] +
time.evolution[,23] + time.evolution[,24]
time.3.chunks <- matrix(ncol=3,nrow=nrow(time.evolution))
time.3.chunks[,1] <- time.evolution[,1] + time.evolution[,2] +
time.evolution[,3] + time.evolution[,4] +
time.evolution[,5] + time.evolution[,6] +
time.evolution[,7] + time.evolution[,8]
time.3.chunks[,2] <-
time.evolution[,9] + time.evolution[,10] +
time.evolution[,11] + time.evolution[,12] +
time.evolution[,13] + time.evolution[,14] +
time.evolution[,15] + time.evolution[,16]
time.3.chunks[,3] <-
time.evolution[,17] + time.evolution[,18] +
time.evolution[,19] + time.evolution[,20] +
time.evolution[,21] + time.evolution[,22] +
time.evolution[,23] + time.evolution[,24]
time.6.chunks <- matrix(ncol=6,nrow=nrow(time.evolution))
time.6.chunks[,1] <- time.evolution[,1] + time.evolution[,2] +
time.evolution[,3] + time.evolution[,4]
time.6.chunks[,2] <-
time.evolution[,5] + time.evolution[,6] +
time.evolution[,7] + time.evolution[,8]
time.6.chunks[,3] <-
time.evolution[,9] + time.evolution[,10] +
time.evolution[,11] + time.evolution[,12]
time.6.chunks[,4] <-
time.evolution[,13] + time.evolution[,14] +
time.evolution[,15] + time.evolution[,16]
time.6.chunks[,5] <-
time.evolution[,17] + time.evolution[,18] +
time.evolution[,19] + time.evolution[,20]
time.6.chunks[,6] <-
time.evolution[,21] + time.evolution[,22] +
time.evolution[,23] + time.evolution[,24]
time.2.chunks <- data.frame(time.2.chunks)
time.2.chunks$diff <- time.2.chunks[,2] - time.2.chunks[,1]
time.3.chunks <- data.frame(time.3.chunks)
time.3.chunks$diff1 <- time.3.chunks[,2] - time.2.chunks[,1]
time.3.chunks$diff2 <- time.3.chunks[,3] - time.2.chunks[,2]
time.6.chunks <- data.frame(time.6.chunks)
time.6.chunks$diff1 <- time.6.chunks[,2] - time.6.chunks[,1]
time.6.chunks$diff2 <- time.6.chunks[,3] - time.6.chunks[,2]
time.6.chunks$diff3 <- time.6.chunks[,4] - time.6.chunks[,3]
time.6.chunks$diff4 <- time.6.chunks[,5] - time.6.chunks[,4]
time.6.chunks$diff5 <- time.6.chunks[,6] - time.6.chunks[,5]
time.cumsum <- matrix(nrow=nrow(time.evolution),ncol=ncol(time.evolution))
for(i in 1:nrow(time.evolution)){
time.cumsum[i,] <- cumsum(time.evolution[i,])/dedX[i]
}
time.and.charge <- cbind(dedX,time.2.chunks,time.3.chunks,time.6.chunks,time.cumsum)
rm(time.2.chunks,time.3.chunks,time.6.chunks,time.cumsum,dedX)
fluct <- matrix(nrow=nrow(time.evolution),
ncol=ncol(time.evolution))
for(i in 1:nrow(fluct)){
fluct[i,] <- scale(time.evolution[i,])
}
fluct <- data.frame(fluct)
fluct$mean <- rowMeans(fluct)
time.and.charge <- cbind(time.and.charge,fluct)
rm(fluct)
rm(pads)
# require(pracma)
#
# moving.av <- matrix(ncol=ncol(time.evolution),nrow=nrow(time.evolution))
#
# for(i in 1:nrow(moving.av)){
# moving.av[i,] <- as.numeric(unlist(movavg(time.evolution[i,],n=4)))
# }
rm(time.evolution,i)
time.and.charge.pca <- prcomp(time.and.charge)
load.pca3 <- function(new.data){
pca.loaded <- predict(time.and.charge.pca, newdata = new.data)
}
pca3 <- load.pca3(time.and.charge)
pca.dat <- cbind(pca.dat,pca3)
save(pca.dat,file="pca.dat.rdata")
save(pid,file="pid.rdata")