Difference between revisions of "Least squares modelling (2013)"
Jump to navigation
Jump to search
Kevin Dunn (talk | contribs) |
Kevin Dunn (talk | contribs) m |
||
Line 8: | Line 8: | ||
| vimeoID5 = 60862565 | | vimeoID5 = 60862565 | ||
| vimeoID6 = 61138805 | | vimeoID6 = 61138805 | ||
| vimeoID7 = | | vimeoID7 = 61211690 | ||
| vimeoID8 = | | vimeoID8 = | ||
| course_notes_PDF = 2013-4C3-Overheads-Least-squares-modelling.pdf | | course_notes_PDF = 2013-4C3-Overheads-Least-squares-modelling.pdf | ||
Line 33: | Line 33: | ||
| video_download_link6_MP4_size = 372 M | | video_download_link6_MP4_size = 372 M | ||
| video_notes6 = | | video_notes6 = | ||
| video_download_link7_MP4 = | | video_download_link7_MP4 = http://learnche.mcmaster.ca/media/4C3-2013-Class-08B.mp4 | ||
| video_download_link7_MP4_size = M | | video_download_link7_MP4_size = 380 M | ||
| video_notes7 = | | video_notes7 = | ||
| video_download_link8_MP4 = | | video_download_link8_MP4 = |
Revision as of 21:37, 6 March 2013
Class date(s): | 08 February 2013 to 07 March 2013 | ||||
(PDF) | Course slides | ||||
| |||||
| |||||
| |||||
| |||||
| |||||
| |||||
| |||||
Course notes and slides
- Course textbook (print chapter 4)
- Slides for class
Software source code
Take a look at the software tutorial.
Code used in class
Least squares demo
x <- c(10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5)
y <- c(8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68)
plot(x,y)
model.ls <- lm(y ~ x)
summary(model.ls)
coef(model.ls)
confinf(model.ls)
names(model.ls)
model$resisduals
resid(model.ls)
plot(x, y)
abline(model.ls)
Thermocouple data
V <- c(0.01, 0.12, 0.24, 0.38, 0.51, 0.67, 0.84, 1.01, 1.15, 1.31)
T <- c(273, 293, 313, 333, 353, 373, 393, 413, 433, 453)
plot(V, T)
model <- lm(T ~ V)
summary(model)
coef(model)
confint(model) # get the coefficient confidence intervals
resid(model) # model residuals
library(car)
qqPlot(resid(model)) # q-q plot of the residuals to check normality
plot(V, T)
v.new <- seq(0, 1.5, 0.1)
t.pred <- coef(model)[1] + coef(model)[2] * v.new
lines(v.new, t.pred, type="l", col="blue")
# Plot x against the residuals to check for non-linearity
plot(V, resid(model))
abline(h=0)
# Plot the raw data and the regression line in red
plot(V, T)
abline(model, col="red")
Multiple linear regression (manually and automatically with R)
# Calculate the model manually
x1.raw <- c(1,3,4,7,9,9)
x2.raw <- c(9,9,6,3,1,2)
y.raw <- c(3,5,6,8,7,10)
n <- length(x1.raw)
x1 <- x1.raw - mean(x1.raw)
x2 <- x2.raw - mean(x2.raw)
y <- y.raw - mean(y.raw)
X <- cbind(x1, x2)
# Calculate: b = inv(X'X) X'y
XTX <- t(X) %*% X # compare this to cov(X)*(n-1)
XTY <- t(X) %*% y
XTX.inv <- solve(XTX)
b <- XTX.inv %*% XTY
b
# Let R calculate the model:
model <- lm(y.raw ~ x1.raw + x2.raw)
summary(model)