library(mosaic) library(mosaicData) library(rgl) ## for 3d plots library(RColorBrewer) ## for colors data("SAT") interaction.model <- lm(sat ~ frac + expend + frac:expend, data = SAT) interaction.model f.hat <- makeFun(interaction.model) with(SAT, plot3d(x = frac, y = expend, z = sat, col = brewer.pal(7, "Blues"))) persp3d(f.hat, xlim = range(~frac, data = SAT), ylim = range(~expend, data = SAT), zlim = range(~sat, data = SAT), col = rainbow, add = TRUE) summary(interaction.model) quad.linear.model <- lm(sat ~ frac + I(frac^2) + expend, data = SAT) quad.linear.model f.hat <- makeFun(quad.linear.model) with(SAT, plot3d(x = frac, y = expend, z = sat, col = brewer.pal(7, "Blues"))) persp3d(f.hat, xlim = range(~frac, data = SAT), ylim = range(~expend, data = SAT), zlim = range(~sat, data = SAT), col = rainbow, add = TRUE) summary(quad.linear.model) second.order.model <- lm(sat ~ frac + expend + I(frac^2) + expend:frac + I(expend^2), data = SAT) second.order.model f.hat <- makeFun(second.order.model) with(SAT, plot3d(x = frac, y = expend, z = sat, col = brewer.pal(7, "Blues"))) persp3d(f.hat, xlim = range(~frac, data = SAT), ylim = range(~expend, data = SAT), zlim = range(~sat, data = SAT), col = rainbow, add = TRUE) summary(second.order.model) anova(quad.linear.model, second.order.model)