본문 바로가기
Work/ADP

[ADP 실기 준비] R 통계분석 / 선형회귀분석 / 변수선택법

by Q flow 2020. 11. 16.

[ADP 실기 준비] R 통계분석 / 선형 회귀분석 / 변수 선택법


통계분석은 ADP 실기 시험에서 꾸준히 출제되고 있는 문제 유형으로서 가장 기본적인 스타일의 문제부터 최근 출제된 경향까지 단계적으로 학습해보려 한다.

 

이번 포스팅에서는 통계분석 중 선형 회귀분석과 변수 선택법에 관해 알아보자.


Contents

1. 각 설명변수들과 종속변수 간의 상관관계 분석

2. 상관분석 시각화

3. 변수 선택법을 활용한 회귀모형 생성


1. 각 설명변수들과 종속변수 간 상관관계 분석

우선 학습할 데이터는 R 프로그램의 ISLR 패키지에 있는 Carseats 데이터를 사용한다. 이 데이터는 자동차 좌석에 대한 판매정보이며, 변수의 설명은 아래와 같다.

변수 데이터 형태 설명
Sales 수치형 각 지역의 매출 (단위 : 천 달러)
CompPrice 수치형 각 위치에서 경쟁업체가 부과하는 가격
Income 수치형 지역 소득 수준
Advertising 수치형 각 지역의 광고 예산
Population 수치형 지역 인구 (단위 : 천 명)
Price 수치형 자동차 좌석의 가격
ShelveLoc 범주형 보관 장소의 품질 (Bad, Medium, Good)
Age 수치형 인구 연령대
Education 수치형 지역의 교육 수준
Urban 범주형 도시인지 여부 (Yes, No)
US 범주형 미국인지 여부 (Yes, No)

우선, R의 내장 데이터 Carseats를 읽어온 뒤, 데이터의 구조와 요약을 확인해보자.

install.packages("ISLR")
library(ISLR)
data("Carseats")
car<-Carseats
str(car)  #데이터 구조
head(car)  #데이터 요약
sum(is.na(car))  #결측치(NA)가 존재하는지 확인
[1] 0

 

 


이제 종속변수인 Sales 변수와 CompPrice, Income, Advertising, Population, Price, Age, Education 수치형 변수들 간에 피어슨 상관계수를 이용하여 상관관계 분석을 진행한다.

 

1-1. Sales와 CompPrice 간의 상관분석

cor(car$Sales,car$CompPrice)  # 피어슨 상관계수 산출
cor.test(car$Sales,car$CompPrice)  # 피어슨 상관계수 검정

 

 

해석

상관계수는 약 0.064로 Sales와 CompPrice 간에는 거의 상관성이 존재하지 않는다고 볼 수 있다.

p-value가 0.2009로 0.05보다 크기 때문에, 두 변수 간의 상관관계는 통계적으로 유의하다고 볼 수 없다.


1-2. Sales와 Income 간의 상관분석

cor(car$Sales,car$Income) 
cor.test(car$Sales,car$Income) 

 

 

해석

p-value는 0.05보다 작으므로 두 변수간의 상관관계는 통계적으로는 유의하나, 상관계수는 약 0.15로 Sales와 Income 간에는 상관관계가 거의 없다고 볼 수 있다.


1-3. Sales와 Advertising 간의 상관분석

cor(car$Sales,car$Advertising) 
cor.test(car$Sales,car$Advertising)

 

 

해석

p-value는 0.05보다 작으므로 두 변수간의 상관관계는 통계적으로는 유의하나, 상관계수는 약 0.27로 Sales와 Advertising 간에는 상관관계가 거의 없다고 볼 수 있다.


1-4. Sales와 Population 간의 상관분석

cor(car$Sales,car$Population) 
cor.test(car$Sales,car$Population) 

 

 

해석

상관계수는 약 0.05로 Sales와 Population 간에는 거의 상관성이 존재하지 않는다고 볼 수 있다.

p-value가 0.314로 0.05보다 크기 때문에, 두 변수간의 상관관계는 통계적으로 유의하다고 볼 수 없다.


1-5. Sales와 Price 간의 상관분석

cor(car$Sales,car$Price) 
cor.test(car$Sales,car$Price) 

 

 

해석

p-value는 0.05보다 작으므로 두 변수간의 상관관계는 통계적으로는 유의하다.

또한 상관계수는 약 -0.445로 Sales와 Price 간에는 다소 약한 음의 상관관계를 가지고 있다.


1-6. Sales와 Age 간의 상관분석

cor(car$Sales,car$Age) 
cor.test(car$Sales,car$Age) 

 

 

해석

p-value는 0.05보다 작으므로 두 변수간의 상관관계는 통계적으로는 유의하다.

상관계수는 약 -0.232로 상관계수의 절댓값이 0.5보다 작기 때문에 Sales와 Age 간에는 상관관계가 거의 없다고 볼 수 있다.


1-7. Sales와 Education 간의 상관분석

cor(car$Sales,car$Education) 
cor.test(car$Sales,car$Education) 

 

 

해석

상관계수는 약 -0.052로 Sales와 Education 간에는 거의 상관성이 존재하지 않는다고 볼 수 있다.

p-value가 0.2999로 0.05보다 크기 때문에, 두 변수 간의 상관관계는 통계적으로 유의하다고 볼 수 없다.


2. 상관분석 시각화

다음으로, 상관분석을 수행했던 변수들에 대해 상관계수 행렬을 생성하고 이를 시각화한다.

cor(car[,-c(7,10,11)])
plot(car[,-c(7,10,11)])

 

 

해석

앞서 상관분석 결과를 살펴보면, 종속변수인  Sales와 통계적으로 유의한 상관성을 가지는 변수는 Income, Advertising, Price, Age이다. 하지만 상관관계 산점도 그래프를 보면, 대부분의 변수들이 일정한 직선의 형태가 아닌 산발적으로 분포된 것을 확인할 수 있다. Sales 변수와 Price 변수 간의 상관계수의 절대값이 약 0.44로 가장 크다. 이는 일반적으로는 높은 상관성을 지닌다고 볼 수 없는 수치지만, 산점도를 봤을 때 두 변수간의 데이터는 다른 데이터들에 비해 비교적 상관성을 띠며 왼쪽 위에서 아래로 내려가는 형태를 보이고 있다. 이는 두 변수 간에 미미하지만 음의 상관관계를 가진다고 해석할 수 있다. 


3. 변수 선택법을 활용한 회귀모형 생성

 

선형 회귀 모델을 만들 때, 주어진 여러 변수 중 어떤 ㅂ면수를 설명 변수로 해야 할지는 모델링을 수행하는 사람의 배경 지식에 따라 결정할 수 있다. 하지만 배경 지식이 없거나, 배경 지식이 있어도 어떤 변수들을 선택해야 할지 정확히 결정할 수 없다면, 변수의 통계적 특성을 고려하여 기계적으로 설명 변수를 채택하는 방법을 사용할 수 있다.

회귀 모델에서의 설명 변수를 선택하는 방법 중 한 가지는 AIC 기준을 사용해 변수를 하나씩 택하거나 제거하는 것이다. 

 

이번 학습에서는 후진 제거법을 사용하여 회귀분석을 실시하고, 추정된 회귀모형을 생성해보자.

step(lm(Sales~CompPrice+Income+Advertising+Population+Price+Age+Education
        ,data=car), direction="backward")

 

 

해석

후진 제거법의 첫 번째 단계를 확인해보면 Population 변수가 모형에서 제거되었을 때, AIC값이 531.53으로 가장 작으므로 Population 변수가 모형에서 제거됨을 알 수 있다.

두 번째 단계에서는 Education 변수가 제거되었을 때, AIC값이 가장 작아지기 때문에 Education 변수가 모형에서 제거된다.

위와 같은 변수 제거 과정을 거쳐 lm(formula = Sales ~ CompPrice + Income + Advertising + Price + Age, data=car)라는 최종 회귀 모형이 결정되었다.

최종적으로 선택된 추정 회귀식은 y = 7.110919 + 0.09390*CompPrice + 0.01309*Income - 0.09254*Price - 0.04497*Age이다.


앞서 진행한 후진 제거법을 통해 선택된 변수들로 새로운 회귀모형을 생성해보자.

car.lm <- lm(Sales ~ CompPrice + Income + Advertising + Price + Age, data = car)
summary(car.lm)

 

 

해석

후진제거법을 이용한 변수 선택 후, 선택된 변수들로 회귀분석을 수행한 결과, 모든 변수들의 유의 확률이 0.05보다 작아 통계적으로 유의함을 확인할 수 있다. 하지만 모형의 결정계수가 0.5403, 수정된 결정계수는 0.5345로 추정된 다변량 회귀식은 전체 데이터의 변동을 약 53% 설명하고 있어 다소 낮은 설명력을 가진다고 보인다.

회귀모형의 F통계량에 대한 p-calue값은 0.05보다 작으므로 유의 수준 0.05하에서 모형은 통계적으로 유의한 것을 알 수 있다.

 

회귀분석 결과로 추정된 최종 회귀식은 y = 7.110919 + 0.09390*CompPrice + 0.01309*Income - 0.09254*Price - 0.04497*Age이다.

 

 

지금까지 R을 활용한 선형 회귀분석에 관하여 알아보았다.

댓글