Latent variable methods and applications (2011)
Revision as of 18:27, 21 September 2018 by Kevin Dunn (talk | contribs)
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Video timing |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Video timing |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Video timing |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Course notes
Course notes - Chapter 6.
Projector overheads
A high-level overview of latent variable methods
A more complete 1-semester course on latent variable methods was taught at McMaster in 2011.
Audio recordings of 2011 classes
Date | Material covered | Audio file |
---|---|---|
30 March 2011 | Latent variable methods: an overview of what these methods are, and how they are used | Class 31 |
31 March 2011 | Latent variable methods: further applications of latent variable methods | Class 32 |
Thanks to the various students responsible for recording and making these files available
Code for the rotating cube
Created using R with this code, then converted to a video file using http://ffmpeg.org/
temps<- read.csv('http://datasets.connectmv.com/file/room-temperature.csv')
summary(temps)
X <- data.frame(x1=temps$FrontLeft, x2=temps$FrontRight, x3=temps$BackLeft)
# To colour-code sub-groups of outliers
library(lattice)
grouper = c(numeric(length=50)+1, numeric(length=10)+2, numeric(length=144-50-10)+1)
grouper[131] = 3
cube <- function(angle){
# Function to draw the cube at a certain viewing ``angle``
xlabels = 0
ylabels = 0
zlabels = 0
lattice.options(panel.error=NULL)
print(cloud(
X$x3 ~ X$x1 * X$x2,
cex = 1,
type="p",
groups = grouper,
pch=20,
col=c("black", "blue", "blue"),
main="",
screen = list(z = angle, x = -70, y = 0),
par.settings = list(axis.line = list(col = "transparent")),
scales = list(
col = "black", arrows=TRUE,
distance=c(0.5,0.5,0.5)
),
xlab="x1",
ylab="x2",
zlab="x3",
zoom = 1.0
)
)
}
angles = seq(0, 360, 1)
for(i in angles){
if (i<10) {
filename <- paste("00", as.character(i), ".jpg", sep="")
} else if (i<100) {
filename <- paste("0", as.character(i), ".jpg", sep="")
} else {
filename <- paste("", as.character(i), ".jpg", sep="")
}
jpeg(file=filename, height = 1000, width = 1000, quality=100, res=300)
cube(i)
dev.off()
}
system("ffmpeg -r 20 -b 1800 -i %03d.jpg animated-spinning-cube.mp4")