# R pubs
lm_result <- lm(formula=dist~speed, data=cars)
confint(lm_result)
## 2.5 % 97.5 %
## (Intercept) -31.167850 -3.990340
## speed 3.096964 4.767853
deviance(lm_result) # 잔차제곱합 - 모델 간 평가 시 사용(작을수록 좋은 모델)
## [1] 11353.52
plot(cars$dist, cars$speed)
abline(lm_result) # 회귀모델 방정식 선 그리기

par(mfrow=c(2, 2))
plot(lm_result)

speed <- c(50, 60, 70, 80, 90, 100)
df_input <- data.frame(speed) # 동일한 칼럼명으로 데이터 프레임 만든다.
predict(lm_result, df_input)
## 1 2 3 4 5 6
## 179.0413 218.3654 257.6895 297.0136 336.3377 375.6618
predict_dist <- predict(lm_result, df_input)
cbind(df_input, predict_dist) # 가독성 향상
## speed predict_dist
## 1 50 179.0413
## 2 60 218.3654
## 3 70 257.6895
## 4 80 297.0136
## 5 90 336.3377
## 6 100 375.6618
predict_dist <- predict(lm_result, df_input, interval="confidence", level=0.95)
cbind(df_input, predict_dist)
## speed fit lwr upr
## 1 50 179.0413 149.8060 208.2766
## 2 60 218.3654 180.8489 255.8820
## 3 70 257.6895 211.8651 303.5139
## 4 80 297.0136 242.8670 351.1602
## 5 90 336.3377 273.8603 398.8151
## 6 100 375.6618 304.8480 446.4755
predict_dist <- predict(lm_result, df_input, interval="prediction", level=0.95) # 불확실성 감안
cbind(df_input, predict_dist)
## speed fit lwr upr
## 1 50 179.0413 136.4865 221.5962
## 2 60 218.3654 169.7474 266.9834
## 3 70 257.6895 202.4076 312.9715
## 4 80 297.0136 234.6592 359.3680
## 5 90 336.3377 266.6266 406.0488
## 6 100 375.6618 298.3908 452.9328