R 단순회귀모형 2 1
I. 함수를 이용한 추정 및 가설검정 II. 함수를 이용한 예측
III. 모형의 응용
Ⅰ. 함수를 이용한 추정 및 가설검정 2
b2-ch2-2-rev.R x<-c(2,3,4,5,6)
y<-c(4,4,6,6,10) x;y
lm(y~x) ols<-lm(y~x) summary(ols)
confint(ols)
- lm함수는 회귀모형을 추정
- summary함수는 lm 추정결과의 상세내용을 보여줌
∙ 회귀계수 추정
∙ 교란항의 분산 및 회귀계수의 분산 추정
∙ 결정계수 추정
- confint함수는 회귀계수의 구간 추정
3
b2-ch2-2-rev.R 앞에서 계속
plot(y~x, xlim=c(0,7),ylim=c(0,10)) abline(lm(y~x))
library(predict3d)
ggPredict(ols,show.error=T)
- plot함수는 산포도를 그림
- abline함수는 좌표에 직선을 그리는데 추정회귀선을 그림
- Predict3d 패키지의 ggPredict함수를 이용하면 추정회귀식과 잔차를 보여줌
4
b2-ch2-2-rev.R
앞에서 계속
library(tigerstats) par(mfrow=c(2,1))
ptGC(c(-3.656,3.656),region="outside",df=3,graph=T) ptGC(c(-3.182,3.182),region="outside",df=3,graph=T)
- lm 추정결과에서 가설검정 결과를 알 수 있음 - 기울기 회귀계수의 t-값은 3.656이고 pr(>|t|)
값은 0.0354임
- 자유도가 3인 t-분포에서 5% 유의수준 임계값 은 3.183임
- 그림에서 보듯이 pr(>|t|) 값이 0.05보다 작으 면 5% 유의수준 하에서 귀무가설을 기각
Ⅱ. 함수를 이용한 예측 5
b2-ch2-2-rev.R 앞에서 계속
predict(lm(y~x))
new<-data.frame(x = 7)
predict(lm(y~x), new, se.fit = TRUE)
pred.w.plim <- predict(lm(y ~ x), new, interval = "prediction") pred.w.plim
pred.w.clim<-predict(lm(y ~ x), new, se.fit=T, interval = "confidence") pred.w.clim
- predict함수는 주어진 설명변수 값으로 종속변수 값을 예측
6
- 예측오차 분산에 대한 해석
∙ 표본의 크기(n)가 커질수록 예측오차의 분산이 작아짐 즉, 관측자료가 많을수록 좋은 예측을 할 수 있다
∙ 교란항의 분산이 커질수록 예측오차의 분산이 커짐
즉, 원래 회귀모형에서 불확실성이 커서 교란항의 분산이 크면 예측이 어려울 수밖에 없음
∙ 독립변수의 표본평균으로부터 멀어질수록 예측오차도 커짐
즉, 예측에 주어진 독립변수의 값이 평균으로부터 멀어질수록 표본회귀함수의 예측력은 크게 감소
7
b2-ch2-2-graph.R advt<-c(2,3,4,5,6)
sales<-c(4,4,6,6,10)
data<-data.frame(advt,sales)
ols<-lm(sales~advt) summary(ols)
predict(lm(sales~advt))
new.advt<-data.frame(advt = 7) predict(ols, newdata=new.advt)
predict(ols, newdata=new.advt, interval = "confidence") predict(ols, newdata=new.advt, interval = "prediction")
pred.int <- predict(ols, interval = "prediction") mydata <- cbind(data, pred.int)
library("ggplot2")
p <- ggplot(mydata, aes(advt, sales)) + geom_point() +
stat_smooth(method = lm)
p + geom_line(aes(y = lwr), color = "red", linetype = "dashed")+
geom_line(aes(y = upr), color = "red", linetype = "dashed")
Ⅲ. 모형의 응용 8
b2-ch2-3.R x<-c(2,3,4,5,6) y<-c(4,4,6,6,10) lx<-log(x) ly<-log(y) rx<-1/x lm(y~x) ols1<-lm(y~x) summary(ols1)
lm(ly~lx) ols2<-lm(ly~lx) summary(ols2) library(predict3d)
ggPredict(ols2,show.error=T)
lm(y~rx) ols3<-lm(y~rx) summary(ols3)
ggPredict(ols3,show.error=T)
lm(ly~x) ols4<-lm(ly~x) summary(ols4) lm(y~lx) ols5<-lm(y~lx) summary(ols5)