knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

What is Regression?

Describing a Straight Line

$$Y_i = b_0 + b_1X_i + \varepsilon_i$$

Intercepts and Gradients

knitr::include_graphics("pictures/regression/5.png")

Types of Regression

Analyzing a Regression

Overall Model: Understand the NHST

Overall Model: Understand the NHST

Overall Model: Understand the NHST

knitr::include_graphics("pictures/regression/7.png")

Overall Model: Understand the NHST

knitr::include_graphics("pictures/regression/6.png")

Individual Predictors: Understand the NHST

Individual Predictors: Understand the NHST

Individual Predictors: Understand the NHST

Individual Predictors: Standardization

Data Screening

Data Screening

Example: Mental Health

library(rio)
master <- import("data/regression_data.sav")
master <- master[ , c(8:11)]
str(master)

Example: Accuracy, Missing Data

summary(master)
nomiss <- na.omit(master)
nrow(master)
nrow(nomiss)

Example: Outliers

Example: Mahalanobis

mahal <- mahalanobis(nomiss, 
                    colMeans(nomiss), 
                    cov(nomiss))
cutmahal <- qchisq(1-.001, ncol(nomiss))
badmahal <- as.numeric(mahal > cutmahal) ##note the direction of the > 
table(badmahal)

Example: Other Outliers

model1 <- lm(CESD_total ~ PIL_total + AUDIT_TOTAL_NEW + DAST_TOTAL_NEW, 
             data = nomiss)

Example: Leverage

Example: Leverage

k <- 3 ##number of IVs
leverage <- hatvalues(model1)
cutleverage <- (2*k+2) / nrow(nomiss)
badleverage <- as.numeric(leverage > cutleverage)
table(badleverage)

Example: Cook's Distance

cooks <- cooks.distance(model1)
cutcooks <- 4 / (nrow(nomiss) - k - 1)
badcooks <- as.numeric(cooks > cutcooks)
table(badcooks)

Example: Outliers Combined

##add them up!
totalout <- badmahal + badleverage + badcooks
table(totalout)

noout <- subset(nomiss, totalout < 2)

Example: Assumptions

model2 <- lm(CESD_total ~ PIL_total + AUDIT_TOTAL_NEW + DAST_TOTAL_NEW, 
             data = noout)

Example: Additivity

summary(model2, correlation = TRUE)

Example: Assumption Set Up

standardized <- rstudent(model2)
fitted <- scale(model2$fitted.values)

Example: Linearity

{qqnorm(standardized)
abline(0,1)}

Example: Normality

hist(standardized)

Example: Homogeneity & Homoscedasticity

{plot(fitted, standardized)
abline(0,0)
abline(v = 0)}

Example: Assumption Alternatives

Example: Overall Model

summary(model2)

library(papaja)
apa_style <- apa_print(model2)
apa_style$full_result$modelfit

Example: Predictors

summary(model2)

Example: Predictors

apa_style$full_result$PIL_total
apa_style$full_result$AUDIT_TOTAL_NEW
apa_style$full_result$DAST_TOTAL_NEW

Example: Predictors

Example: Beta

library(QuantPsyc)
lm.beta(model2)

Example: Effect Size

knitr::include_graphics("pictures/regression/19.png")

Example: Effect Size

knitr::include_graphics("pictures/regression/19.png")

Example: Effect Size

knitr::include_graphics("pictures/regression/19.png")

Example: Partials

library(ppcor)
partials <- pcor(noout)
partials$estimate^2

Example: Hierarchical Regression

Hierarchical Regression: Understand the NHST

Categorical Predictors

Categorical Predictors

knitr::include_graphics("pictures/regression/21.png")

Example: Hierarchical Regression + Dummy Coding

hdata <- import("data/dummy_code.sav")
str(hdata)

Example: Hierarchical Regression + Dummy Coding

attributes(hdata$treat)
hdata$treat <- factor(hdata$treat,
                     levels = 0:4,
                     labels = c("No Treatment", "Placebo", "Paxil",
                                "Effexor", "Cheerup"))

Example: Hierarchical Regression + Dummy Coding

model1 <- lm(after ~ familyhistory, data = hdata)
summary(model1)

Example: Hierarchical Regression + Dummy Coding

model2 <- lm(after ~ familyhistory + treat, data = hdata)
summary(model2)

Example: Hierarchical Regression + Dummy Coding

anova(model1, model2)

Example: Hierarchical Regression + Dummy Coding

Example: Hierarchical Regression + Dummy Coding

summary(model2)

library(emmeans)
emmeans(model2, "treat")

Example: Hierarchical Regression + Dummy Coding

model_summary <- summary(model2)
t_values <- model_summary$coefficients[ , 3] 
df_t <- model_summary$df[2]

t_values^2 / (t_values^2+df_t)

Hierarchical Regression: Power

library(pwr)
R2 <- model_summary$r.squared
f2 <- R2 / (1-R2)

R2
f2

Hierarchical Regression: Power

#f2 is cohen f squared 
pwr.f2.test(u = model_summary$df[1], 
            v = NULL, f2 = f2, 
            sig.level = .05, power = .80)

Summary



doomlab/learnSTATS documentation built on June 9, 2022, 12:54 a.m.