User Tools

Site Tools


c:ma:2023:schedule:note_r
# 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
# 



c/ma/2023/schedule/note_r.txt · Last modified: 2023/10/15 21:08 by hkimscil

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki