728x90
반응형

주행속도와 제동거리 사이의 회귀모델 구하기

  • 단순선형 회귀식을 구하기 위해서는 이론적인 이해가 필요하지만, R에서 제공하는 lm()함수를 이용해 쉽게 회귀식을 구할 수 있다.
  • 독립변수는 주행속도고 종속변수는 제동거리

 

# 주행속도와 제공거리 사이의 회귀모델 구하기
head(cars)
plot(dist~speed, data = cars) # 산점도를 통해 선형 관계 확인.

model <- lm(dist~speed, cars) # 회귀모델 구하기
model

abline(model) # 회귀선을 산점도 위에 표시
coef(model)[1] # b의 값 출력
coef(model)[2] # W의 값 출력

summary(model) # 요약 통계

[그림1] head(cars)

 

[그림2] 산점도로 선형관계 확인하기.

 

 

[그림3] lm()함수 이용해 회귀모델 구하기

 

 

[그림4] b,w의 값 출력

 

[그림5] 산점도에 회귀선 표시

 

[그림6] summary()함수로 요약 통계 확인

 

dist~speed

  • 회귀모델에서 독립변수와 종속변수를 지정, ~를 기준으로 '종속변수~독립변수'의 순서로 지정해야 한다. 순서가 바뀌면 값이 바뀌어버리니 주의.

cars

  • 회귀모델은 만드는데 사용할 데이터셋, 여기서 dist와 speed가 cars의 열이여야 한다.

1. 독립변수 : speed

2. 종속변수 : dist

3. 회귀식 : dist = 17.579 + 3.9324 * speed

4. 귀무가설 : β1=0(종속변수는 독립변수와 인과관계가 없음)

5. 대립가설 : β10(종속변수는 독립변수와 인과관계가 있음)

6. 회귀계수 β1의 p값은 1.49e=12로 0.05보다 작으므로 회귀계수가 유의미하다.

7. 결정계수와 수정된 결정계수 모두 0.6511, 0.6438로 데이터 설명령은 60% 이상

 

 

 

주행속도에 따른 제동거리 구하기

  • 주행속도가 30, 35, 40일 때 예상 제동거리를 구하기.
# 주행속도가 20, 40, 60일 경우 예상 제동거리 구하기.
b <- coef(model)[1]
W <- coef(model)[2]

# 주행속도가 20일 경우
speed <- 20 # 주행속도
dist <- W*speed+b
dist # 제동거리

# 주행속도가 40일 경우
speed <- 40 # 주행속도
dist <- W*speed+b
dist # 제동거리

# 주행속도가 60일 경우
speed <- 60 # 주행속도
dist <- W*speed+b
dist # 제동거리

[그림7] 주행속도에 따른 제동거리 구하기 예제 출력

predict(선형모델, newdata = ~~)

# predict 함수 사용해 깔끔하게 정리
# predict(선형모델, newdata = ~~)
predict(model, newdata = data.frame(speed=c(20,40,60))) # speed 20,40,60 

[그림8] predict 함수 이용해 정리

 

예상 제동거리, 실제 제동거리, 오차 구하기

  • cars 데이터셋의 주행속도(speed) 데이터를 앞에서 구한 회귀식에 대입.
# 예상 제동거리, 실제 제동거리, 오차구하기
speed <- cars[,1] # 주행속도
pred <- W*speed+b # 공식
pred # 예상 제동거리

compare <- data.frame(pred,cars[,2],pred-cars[,2])
colnames(compare) <- c("예상","실제","오차")
head(compare)

[그림9] 예상 제동거리, 실제 제동거리, 오차 구하기

 

predict 활용 예제

# predict 활용
pred <- predict(model,newdata=cars)
pred

compare <- data.frame(pred,cars[,2],pred-cars[,2])
colnames(compare) <- c("예상","실제","오차")
head(compare)

[그림10] predict 활용 예제

 

출처 : 모두를 위한 R 데이터 분석 입문 한빛아카데미

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기