#setwd("user location") #Working directory set.seed(123) #Standardizes the numbers generated by rnorm; see Chapter 5 n <- 100 #Number of participants; graduate students x <- rnorm(n, 175, 7) #IV; hours since dawn m <- 0.7*x + rnorm(N, 0, 5) #Suspected mediator; coffee consumption y <- 0.4*m + rnorm(N, 0, 5) #DV; wakefulness md <- data.frame(x, m, y) attach(md) cor(md) m01 <- lm(y~x, data=md) summary(m01) m02 <- lm(m~x, data=md) summary(m02) m03 <- lm(y~x+m, data=md) summary(m03) install.packages("ppcor") library(ppcor) pcor(md) pcor.test(y,x,m) m04 <- lm(x~m, data = md) m04.res <- m04$residuals m041 <- lm(y~m04.res, data=md) summary(m041) summary(m041)$r.squared spcor.test(y,x,m)$estimate^2 m04.reg <- m04$fitted.values-mean(x) m04.reg m042 <- lm(y~m04.reg, data=md) summary(m042) ssreg <- sum(m04.reg^2) sstot <- var(x)*(length(x)-1) ssres <- sum(m04.res^2) ssreg+ssres sstot m05 <- lm(m~x, data=md) m05.res <- m05$residuals m051 <- lm(y~m05.res, data=md) summary(m051) spcor.test(y,m,x) spcor.test(y,m,x)$estimate^2 summary(m051)$r.squared # m 고유의 y에 미치는 영향력. 즉, m051의 r square 값 m05.reg <- m05$fitted.values-mean(m) m052 <- lm(y~m05.reg, data=md) summary(m052)