본문 바로가기

자격증/빅데이터 분석기사

단순선형회귀분석 in R

 

자동차 연비를 예측하는 분석 전체 코드

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" 을 지정하여 점추정, 구간추청을 할 수 있다.

'자격증 > 빅데이터 분석기사' 카테고리의 다른 글

의사결정나무 in R  (0) 2022.11.26
다중선형회귀분석 in R  (0) 2022.11.26
랜덤포레스트 in R  (0) 2022.11.26
로지스틱회귀(분류) in R  (0) 2022.11.25
SVM in R  (0) 2022.11.25