자동차 연비를 예측하는 분석 전체 코드
library(dplyr)
library(ggplot2)
df <- read.csv("https://raw.githubusercontent.com/plotly/datasets/master/auto-mpg.csv") # 자동차 연비 : mpg
summary(df) # horsepower에 결측치 존재
# 단순선형회귀분석에 변수로 사용될 후보열을 선택
# 선형관계가 있는지 산점도를 그려 확인
# 종속변수 mpg 와 다른 변수들 간의 상관관계 분석 ; horsepower 와 weight 음의 상관관계, 두 변수에 대해서 단순선형회귀분석 수행
plot(df$cylinders, df$mpg)
plot(df$displacement, df$mpg)
plot(df$horsepower, df$mpg)
plot(df$weight, df$mpg)
plot(df$acceleration, df$mpg)
plot(df$model.year, df$mpg)
## 선형회귀모델 학습 - weight
model <- lm(mpg ~ weight, df)
summary(model)
# 성능평가 및 시각화
plot(df$weight, df$mpg)
abline(coef(model)) # ★ coef() 함수 안에 model !!
# 예측 수행 - 점추정
predict.lm(model,newdata=data.frame(weight=2740),interval="none") # ★ 새로운 값 data.frame !!
# 예측 수행 - 회귀계수의 불확실성을 감안한 구간추정 1
predict.lm(model, newdata=data.frame(weight=2740),interval="confidence")
# 예측 수행 - 회귀계수의 불확실성과 오차항을 감안한 구강추정 2
predict.lm(model, newdata=data.frame(weight=2740),interval="prediction")
### 선형회귀모델 학습 - horsepower ###
# 결측치가 없는 데이터만을 추출
df <- df %>% filter(!is.na(horsepower))
# 단순선형회귀모델
model <- lm(mpg ~ horsepower, df)
summary(model)
# 선형회귀모델 시각화
plot(df$horsepower, df$mpg)
abline(coef(model))
predict.lm(model,newdata=data.frame(horsepower=140),interval="none")
predict.lm(model, newdata=data.frame(horsepower=140),interval="confidence")
predict.lm(model,newdata=data.frame(horsepower=140),interval="prediction")
summary(df)
점추정, 구간추청 1, 구간추정 2
선형회귀모델 시각화
- 선형회귀분석을 위해 사용하는 함수 : lm()
- 단순선형회귀는 종속변수와 독립변수 간의 일대일 관계를 찾는 것이므로 두 변수 간에 선형관계가 있는지 산점도를 그려서 확인한다.
- 결측치가 있는 데이터셋 filter () 함수를 이용해서 제거하고 분석을 수행한다.
- predict () 함수의 interval 에 "none, confidence, prediction" 을 지정하여 점추정, 구간추청을 할 수 있다.