Latent variable methods and applications (2011)
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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")