brunch

You can make anything
by writing

C.S.Lewis

by 첨물 May 24. 2021

빅분기 실기연습(11)

R프로그램_회귀분석 모형 평가

처음으로 돌아가서 R을 이용한 회귀분석을 생각해보자.

종속변수, 독립변수가 있고, XY 산점도를 그리면 우상향, 또는 우하향하는 경향성이 보이면, 1차식으로 회귀분석을 실시한다. 이때 사용하는 것이 lm() 함수

그리고 y절편과 기울기를 coef() 로 찾을 수 있다. 이를 통해 임의의 x 값을 알면, y 값을 예측할 수 있다.

여기서 찾은 1차식과 실제값들간의 차이의 절대값이 잔차라고 하고, 이게 작을 수록 R^2 값이 1에 가까워진다. 잔차들은 어디에 몰리지 않는 등분산성을 가져야 하고, 잔차들끼리는 정규분포를 가져야 한다.

이렇게 하면 회귀분석이 잘 되었다고 평가할 수 있다. 이걸 회귀분석 모형 평가라고 한다.


그럼 해보자. 데이터는 speed에 따른 제동거리 dist 로 이루어진 cars 데이터 세트를 이용한다.



> head(cars)

  speed dist

1     4    2

2     4   10

3     7    4

4     7   22

5     8   16

6     9   10


산점도를 plot()으로 그려보자. 속도가 증가할 수록 제동거리가 길어진다는 우상향 그래프이다.

plot(cars)

다음으로 1차 회귀분석을 해보자.


a<-lm(dist~speed, cars)

Call:

lm(formula = dist ~ speed, data = cars)

Coefficients:

(Intercept)        speed  

    -17.579        3.932  


y절편이 -17.579, 기울기가 3.932 이다. 이건 coef(a) 로도 확인할 수 있다.

그럼 이 1차식으로 만든 회귀식을 그래프에 같이 그려보자.


plot(cars, xlim=c(0,25), ylim=c(-2,120))

abline(a, lty=2, col="blue")

1차 회귀식과 실제 값들간의 차이 (잔차)들을 살펴보자. 이 잔차들은 아래 좌상 그래프를 보면 기울기가 0에 가까워야 특별히 어디로 치우치지 않았다고 볼 수 있고 (등분산성), 우상 그래프를 보면 잔차들은 정규분포 값을 가짐을 알 수 있다. 좌하 그래프를 보면 SCALE - 표준화. 즉 잔차의 평균을 0, 표준편차를 1로 만들었을 때 전 범위에 대해 기울기가 0으로 나오는 것이 잘 fitting 된 것이고,  Leverage : 얼마나 극단에 치우쳐 있는가를 알아보는 것이다. 


par(mfrow=c(2,2))

plot(a)


1차 회귀함수 검증은 이렇게 잔차를 분석하는 것으로 한다.  


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari