R
R 기초 22 - 회귀모델 평가
코딩탕탕
2022. 10. 26. 11:14
# 회귀모델 평가
cars # 자동차의 속도와 제동거리
head(cars, 3)
cor(cars)
is(cars)
# 속도에 따른 제동거리 예측 모델
model <- lm(formula = dist ~ speed, data = cars)
summary(model)
coef(model)
fitted(model)[1:4] # 모델이 예측한 값(dist)
residuals(model)[1:4] # 모델과 실제값과의 차이(residuals, 잔차)
cars[1:4,]
fitted(model)[1:4] + residuals(model)[1:4] # 예측값 + 잔차 = 실제값. 잔차 = 실제값 - 예측값
confint(model)
predict(model, newdata = data.frame(speed=10))
predict(model, newdata = data.frame(speed=c(10, 15, 20)))
predict(model, newdata = data.frame(speed=10), interval = 'confidence') # 신뢰구간 확인
# 모델 간 평가
full_model <- lm(dist ~ speed, data = cars) # 완전모형
full_model
reduce_model <- lm(dist ~ 1, data = cars) # 축소모형
reduce_model
anova(reduce_model, full_model) # 두 모델을 비교할 때도 사용 (데이터 간의 평균 비교할 때 사용)
# p-value : 1.49e-12 < 0.05 이므로 두 모델 간 유의한 차이가 있다.
# 다시 말하면 speed 변수가 유의미한 독립변수임을 알 수 있다.
예측값 + 잔차 = 실제값이다.
잔차 = 실제값 - 예측값이다.
예측값은 그래프에서 평균을 지나는 직선이다.
anova함수는 두 모델을 비교할 때 사용한다. 보통 데이터 간의 평균 비교할 때 사용하기도 한다.
anova함수를 사용하여 나온 p-value 값은 0.05 보다 작으면 모델 간 차이가 있다는 의미이고,
0.05 보다 크면 모델 간 차이가 없다는 의미이다.