Translate

2018년 4월 24일 화요일

선형 회귀 분석 (11)



 잔차도의 모습은 표본의 숫자와 더불어 분포에 큰 영향을 받습니다. 정규 분포를 만족시키는 표본과 잔차라도 마찬가지입니다. 여기서는 시뮬레이션을 통해서 이를 확인해 보겠습니다. 선형 회귀 분석은 잔차를 통해서 모델을 평가한다고 하는데, 이를 뒤집어 말하면 잔차를 얼마나 잘 이해하고 있는지가 모델을 잘 평가하는 능력이기도 합니다. 


 일단 표본의 숫자를 30, 300, 3000, 30000개로 변화시키면서 잔차도의 차이를 보겠습니다. 



#sample size

set.seed(1234)
x<-rnorm span="">
set.seed(4567)
b<-rnorm span="">
y=3*x+b
model=lm(y~x)
par(mfrow=c(2,2))
plot(model)

set.seed(1234)
x<-rnorm span="">
set.seed(4567)
b<-rnorm span="">
y=3*x+b
model=lm(y~x)
par(mfrow=c(2,2))
plot(model)

set.seed(1234)
x<-rnorm span="">
set.seed(4567)
b<-rnorm span="">
y=3*x+b
model=lm(y~x)
par(mfrow=c(2,2))
plot(model)

set.seed(1234)
x<-rnorm span="">
set.seed(4567)
b<-rnorm span="">
y=3*x+b
model=lm(y~x)
par(mfrow=c(2,2))
plot(model)








 샘플 수가 증가하면 정규 분포에 따르는 경우 중심부로 잔차가 모이는 현상이 일어나게 됩니다. 사실 표본 수가 1만개를 넘어가면 기본 잔차도로는 평가가 어려운 경우가 생깁니다. 정규 분포에서 벗어나는 일부 때문에 대부분의 데이터가 정규 분포를 따르는 데 잔차도가 크게 벗어나 보이기도 합니다. 이 경우 앞서 이야기했던 residplot 그래프가 더 도움이 될 수 있습니다. 이 이야기는 나중에 하기로 하고 일단 표본의 분포가 잔차도에 미치는 영향을 알아보겠습니다. 만약 모델에서 표준 편차를 줄이면 어떻게 될까요. 1,5, 10으로 변경해 보겠습니다. 이번에는 서로 다른 표본을 가정하므로 시드 값을 따로 정하지 않았습니다. 


x<-rnorm span="">
b<-rnorm span="">
y=3*x+b
model=lm(y~x)
par(mfrow=c(2,2))
plot(model)

x<-rnorm span="">
b<-rnorm span="">
y=3*x+b
model=lm(y~x)
par(mfrow=c(2,2))
plot(model)

x<-rnorm span="">
b<-rnorm span="">
y=3*x+b
model=lm(y~x)
par(mfrow=c(2,2))
plot(model)









 분포가 비슷하다면 표준 편차는 잔차도의 모양 자체에는 크게 영향을 미치지 않다는 것을 볼 수 있습니다. 다만 잔차가 퍼지는 정도에는 영향을 주게 됩니다. 이는 빨리 눈치채지 못할 수도 있는데, 가장 위와 아래 그램을 비교해보면 fitted values의 간격이 상당히 다르다는 것을 알 수 있습니다. 즉 표본의 표준 편차는 잔차도의 모양에는 큰 영향을 주지 않지만, 간격에는 영향을 준다는 것입니다. 하지만 그래도 잔차는 정상적으로 분포하고 있어 모델에는 큰 문제가 없습니다. 


 잔차도의 영향을 크게 주는 것은 독립변수와 종속변수의 비례 관계 및 샘플의 숫자입니다. 앞서 예제에서 봤듯이 선형 비례 관계가 아니면 Y=aX+b의 공식으로 나타낼 수 없고 이는 잔차도에서 그대로 나타납니다. 공식에서 벗어난 관측치가 많다는 것은 선형 회귀 모델로 나타낼 수 없거나 다른 이유가 있을 가능성이 있습니다. 


 여기까지 해도 충분히 복잡해보이지만, 사실 아직도 갈길이 먼 상태입니다. 다음에는 지금까지 다루지 않았던 복잡한 문제인 이상치 문제를 고려해 보겠습니다. 

댓글 없음:

댓글 쓰기