-
R 기초 25 - 단순/다중 선형회귀 모델 정리R 2022. 10. 26. 17:41
단순선형회귀 모델 정리
# 단순/다중 선형회귀 모델 작성 후 정략적인 예측 결과 받아보기 head(mtcars) # 연습 1 - 단순선형회귀 # 임의의 마력수를 입력하면 연비를 예측하는 모델 필요 # 변수는 mpg(연비), hp(마력수) cor(mtcars$hp, mtcars$mpg) # -0.7761684 음의 상관관계 (x, y) par(mar = c(1,1,1,1)) plot(mpg ~ hp, data = mtcars, xlab = '마력수', ylab = '연비') # formula 형식으로 사용하려면 이렇게 사용 가능(y ~ x) # 인과관계가 있다고 판단함 model1 <- lm(formula = mpg ~ hp, data = mtcars) model1 # y_hat = -0.06823(기울기) * hp + 30.09886 1차방정식 = y=mx+n summary(model1) # p-value : 1.788e-07 < 0.05 유의한 모델. R-squared: 0.6024 abline(model1, col='red') # 미지의 hp(마력수)에 대한 mpg(연비) 예측 : 수식 사용 new_hp <- 110 # 미지의 값 cat('예측값 : ', -0.06823 * new_hp + 30.09886) # 예측값 : 22.59356 new_hp <- 160 # 미지의 값 cat('예측값 : ', -0.06823 * new_hp + 30.09886) # 예측값 : 19.18206 new_hp <- 80 # 미지의 값 cat('예측값 : ', -0.06823 * new_hp + 30.09886) # 예측값 : 24.64046 # 미지의 hp(마력수)에 대한 mpg(연비) 예측 : 함수 사용 # 미지의 값을 직접 작성할 수 있으나 기존값을 수정하는 방법 mynew <- mtcars[c(1,2),] mynew <- edit(mynew) # 데이터 편집기 창 호출(편집 가능) mynew pred <- predict(model1, newdata = mynew) pred cat('예측값 : ', pred) # 예측값 : 19.18234 25.59579
다중선형회귀 모델 정리
# 연습 2 - 다중선형회귀 # 임의의 마력수와 차체무게를 입력하면 연비를 예측하는 모델 # 변수는 mpg(연비), wt(차체무게), hp(마력수) cor(mtcars$hp, mtcars$mpg) -0.7761684 cor(mtcars$wt, mtcars$mpg) -0.8676594 model2 <- lm(formula = mpg ~ hp + wt, data = mtcars) model2 # y_hat = -0.03177(기울기) * hp + -3.87783 * wt + 37.22727 # 독립변수가 복수(2개(a,b))이면 y = ax * b + n summary(model2) # p-value : 9.109e-12 < 0.05 유의한 모델. Adjusted R-squared : 0.8148 # 미지의 hp(마력수), wt(차체무게)에 대한 mpg(연비) 예측 : 수식 사용 new_hp <- 110; new_wt <- 2.6 # 미지의 값 cat('예측값 : ', -0.03177 * new_hp + -3.87783 * new_wt + 37.22727) # 예측값 : 23.65021 new_hp <- 160; new_wt <- 5.6# 미지의 값 cat('예측값 : ', -0.03177 * new_hp + -3.87783 * new_wt + 37.22727) # 예측값 : 10.42822 new_hp <- 80; new_wt <- 1.6 # 미지의 값 cat('예측값 : ', -0.03177 * new_hp + -3.87783 * new_wt + 37.22727) # 예측값 : 28.48114 # 예측값 / 실제값 비교(잔차) pred2 <- predict(model2) cat('예측값 : ', pred2[1:10]) cat('실제값 : ', mtcars$mpg[1:10]) # 미지의 hp(마력수), wt(차체무게)에 대한 mpg(연비) 예측 : 함수 사용 new_data <- data.frame(hp=110, wt=2.6) predict(model2, newdata = new_data) new_data <- data.frame(hp=66, wt=1.0) predict(model2, newdata = new_data)
예측값으로 구한 값들은 참고자료로 사용할 수 있다.
'R' 카테고리의 다른 글
R 기초 27 - 로지스틱 회귀분석(Logistic Regression) 예제 (0) 2022.10.27 R 기초 26 - 로지스틱 회귀분석(Logistic Regression), underfitting 과 overfitting, train / test split, ROC curve (0) 2022.10.27 R 기초 24 - AIC 통계량, stepwise regression, backward(후진소거법), forward(전진선택법), both(단계적 방법), 회귀모델 체크 사항 (0) 2022.10.26 R 기초 23 - 다중회귀분석 (독립변수가 복수), 선형회귀분석의 기존 가정 충족 조건 검정 (0) 2022.10.26 선형회귀분석 예제 (0) 2022.10.26