predict를 이용한 예측은 현업 실무 할 때 매우 중요하다. 모델을 만들었는데, 그것을 예측하여, 결과값을 만들어 전사 DB에 업데이트 하였다.
회귀분석 Predict Observation |
trees 데이터 셋에 대해 다음의 문제를 해결 하는 R 코드를 작성 하시오.
(1) 나무 둘레(Girth)와 나무의 키(,Height)로 나무의 볼륨을 예측 하는 다중 선형 회귀모델을 만드시오.
(2) 다중선형 회귀모델을 이용하여 trees 데이터셋의 나무 둘레(Girth)와 나무의 키(Height)로 나무의 볼륨을 예측 하시오.
(3) (2)에서 예측한 볼륨과 실제 trees 데이터 셋의 볼륨(Volume)이 얼마나 차이가 나는지 보이시오( 예측값, 실제값, 예측값-실제값을 나타낸다.)
1번 답 (다중 선형모델 )
(1) 문제 다중 선형 회귀모델
fit <- lm(Volume~Girth+Height, data = trees)
summary(fit)
##
## Call:
## lm(formula = Volume ~ Girth + Height, data = trees)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.4065 -2.6493 -0.2876 2.2003 8.4847
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -57.9877 8.6382 -6.713 2.75e-07 ***
## Girth 4.7082 0.2643 17.816 < 2e-16 ***
## Height 0.3393 0.1302 2.607 0.0145 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.882 on 28 degrees of freedom
## Multiple R-squared: 0.948, Adjusted R-squared: 0.9442
## F-statistic: 255 on 2 and 28 DF, p-value: < 2.2e-16
회의 모형인 lm 함수에 종속변수 Volume, 독립변수 Girth, Heights Girth, Heights를 이용하여 모형을 돌려 fit이라는 객체를 만든다. 이를 summary 하여, 통계량을 살펴 보자
둘 다 유의한 수준에서 변수를 사용할 수 있다. 그리고 Adjusted R-squared : 0.9442 로 매우 예측력이 매우 좋다.
2. 답 (예측 문제)
# random dataset 가져오기
# 같은 값을 추출 하게 하기
set.seed(10)
new.proc <- trees[sample(nrow(trees), 5),]
new.proc
## Girth Height Volume
## 11 11.3 79 24.2
## 9 11.1 80 22.6
## 10 11.2 75 19.9
## 16 12.9 74 22.2
## 12 11.4 76 21.0
# 나무 예측
dci_Volume <- predict(fit, newdata = new.proc)
dci_Volume
## 11 9 10 16 12
## 22.01540 21.41302 20.18758 27.85220 21.46846
데이터를 5개 샘플링 하여 뽐은 다음 그것을 예측 하였다. 예측 하였을 때는 predic 함수 에 모형을 앞에 넣고, 샘플링 한 데이터를 콤마 뒤에 넣고 데이터를 예측 하였고 아래와 같은 결과가 나왔다.
3. 답 (모델평가)
#(3) 문제 실제 데이터 셋이 볼롬이 차이값계산
result <- cbind(new.proc, dci_Volume)
result$예측값차이 <- result$dci_Volume - result$Volume
result
## Girth Height Volume dci_Volume 예측값차이
## 11 11.3 79 24.2 22.01540 -2.1845977
## 9 11.1 80 22.6 21.41302 -1.1869786
## 10 11.2 75 19.9 20.18758 0.2875813
## 16 12.9 74 22.2 27.85220 5.6522029
## 12 11.4 76 21.0 21.46846 0.4684646
모델에 대한 평가는 rmse값을 많이 이용하지만, 여기에서는 예측값과 실제 값의 차이를 보여 주라고 하였다.
실제 실무에서는 위와 같이 모델링을 해서 예측 한 다음에, 실무에 반영 할 수 있도록 전사 DataBase에 넣어 관리 하는 경우가 많다.
이 부분은 실무에서 매우 중요한 부분으로써 반드시 알아야 한다.
댓글 없음:
댓글 쓰기