본문 바로가기
11. 회귀분석/다항회귀분석

R 다항회귀분석 하는 방법 (Cars93 데이터 예시)

by makhimh 2023. 1. 7.
반응형

다중선형회귀분석은 독립변수가 여러개이고 종속변수가 한개인 경우에 사용합니다. 독립변수와 종속변수 모두 연속형 데이터인 경우 사용합니다. 


1. 데이터 살펴보기

우리가 사용할 데이터를 살펴봅시다. 사용할 데이터는 MASS 패키지의 Cars93 데이터입니다. 자동차 가격, 마력, RPM, 길이 등의 데이터입니다. 총 93대의 자동차 정보가 있습니다. 변수가 27개나 되는 데이터입니다. 전부 사용하지는 않을 것이고 일부만 사용할 겁니다. 우리가 독립변수와 종속변수로 사용할 열이름은 아래와 같습니다. 

독립변수 : Horsepower, RPM, Length, Wheelbase, Width, Weight

종속변수 : Price

 

종속변수인 Price 는 자동차 가격입니다. 자동차 가격을 예측하는 모델을 만들 것입니다. 

2. 공분산행렬

먼저 위데이터들로 공분산행렬을 구해봅시다. 상관분석을 먼저 해보는 것입니다. 코드는 아래와 같습니다. 

 

library(MASS)

data = Cars93

data1=data[c('Price','Horsepower','RPM','Length','Wheelbase','Width','Weight')]

library("ggplot2")
library("GGally")

ggpairs(data1)

 

 

첫 행만 보면 됩니다. Price와 나머지 변수들 간의 관계를 보여줍니다. RPM 과는 너무 상관이 없네요. RPM은 제외하고 회귀분석 진행하겠습니다. 

 

3. 회귀분석

회귀분석은 아래와 같이 수행합니다. 

 

lm(Price~Horsepower+Length+Wheelbase+Width+Weight,data=data1)

 

> lm(Price~Horsepower+Length+Wheelbase+Width+Weight,data=data1)

Call:
lm(formula = Price ~ Horsepower + Length + Wheelbase + Width + 
    Weight, data = data1)

Coefficients:
(Intercept)   Horsepower       Length    Wheelbase        Width       Weight  
  32.145974     0.146862     0.096564     0.416219    -1.512158     0.003317

 

위 결과는 회귀모델의 계수들입니다. 아래 식에서 베타들입니다. 

 

$Y=\beta_{0}+\beta_{1}X_{1}+\beta_{2}X_{2}+\cdots$

 

회귀식이 유의한지 알아보려면 summary 함수를 사용해야합니다. 

 

res=lm(Price~Horsepower+Length+Wheelbase+Width+Weight,data=data1)
summary(res)

 

> summary(res)

Call:
lm(formula = Price ~ Horsepower + Length + Wheelbase + Width + 
    Weight, data = data1)

Residuals:
    Min      1Q  Median      3Q     Max 
-11.906  -2.554  -0.067   1.985  26.689 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 32.145974  19.348053   1.661   0.1002    
Horsepower   0.146862   0.018122   8.104 3.04e-12 ***
Length       0.096564   0.076685   1.259   0.2113    
Wheelbase    0.416219   0.209195   1.990   0.0498 *  
Width       -1.512158   0.334616  -4.519 1.95e-05 ***
Weight       0.003317   0.003100   1.070   0.2875    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 5.352 on 87 degrees of freedom
Multiple R-squared:  0.7097,	Adjusted R-squared:  0.693 
F-statistic: 42.53 on 5 and 87 DF,  p-value: < 2.2e-16

 

중간 쯤에 각 변수들의 t분석 결과가 나와있고, 아래에 결정계수 R이 나옵니다. 맨 아래 F분석 결과가 나와 있습니다.

 

1) t분석 결과는 각 계수들이 0인지 아닌지를 판별합니다.

2) F분석 결과는 회귀 모델이 통계적으로 유의한지를 판별합니다. 쉽게 말하면 모든 계수가 0인지 그렇지 않은지 판별합니다. 

3) 결정계수는 회귀식이 데이터를 잘 설명하는지 판별합니다. 

 

4. 잔차분석

잔차분석은 아래와 같이 수행합니다. 잔차의 변동성이 일정해야 등분산성을 만족합니다. 

 

plot(res,which=1)

 

반응형

댓글