# read # http://commres.net/wiki/Correlation # http://commres.net/wiki/Regression # http://commres.net/wiki/Multiple Regression # http://commres.net/wiki/Partial_and_semipartial_correlation data("marketing", package = "datarium") head(marketing, 4) length(marketing$sales) attach(marketing) m.sa.all <- lm(sales~., data=marketing) summary(m.sa.all) m.sa.yt <- lm(sales~youtube, data=marketing) m.sa.fb <- lm(sales~facebook, data=marketing) m.sa.np <- lm(sales~newspaper, data=marketing) summary(m.sa.yt) summary(m.sa.fb) summary(m.sa.np) # sales = dv m.sales <- mean(sales) var.sales <- var(sales) df.sales <- length(sales) - 1 ss.sales <- var.sales * df.sales ss.sales var.sales df.sales df.sales*var.sales predict(m.sa.yt) pred.sales.with.yt <- m.sa.yt$fitted.values ss.error <- sum((sales-pred.sales.with.yt)^2) ss.error sum(m.sa.yt$residuals^2) ss.sales <- sum((sales-mean(sales))^2) ss.sales var(sales)*df.sales ss.reg <- ss.sales - ss.error ss.reg sum((pred.sales.with.yt-m.sales)^2) r.square.value <- (ss.sales-ss.error)/ss.sales r.square.value df.reg <- 2 - 1 # (# of ivs and dv - 1) ms.reg <- ss.reg / df.reg df.res <- length(sales) - 2 # (# of variables) ms.res <- ss.error / df.res f.value <- ms.reg/ms.res f.value summary(m.sa.yt) 1-pf(f.value, df.reg, df.res, lower.tail = TRUE) m.sa.np <- lm(sales~newspaper, data=marketing) summary(m.sa.np) m.sa.ytfbnp <- lm(sales~youtube+facebook+newspaper, data=marketing) summary(m.sa.ytfbnp) # where have np effects gone? anova(m.sa.ytfbnp) m.sa.npytfb <- lm(sales~newspaper+youtube+facebook, data=marketing) summary(m.sa.npytfb) # where have np effects gone? anova(m.sa.npytfb) # see # http://commres.net/wiki/partial_and_semipartial_correlation #