개요

1990년 4월 호 소비자 보고서의 자동차 제작 정보(Autemobile Data)에 의사결정나무 알고리즘을 이용하여 Reliability(신뢰도)를 예측한다. 이 보고서에서는 CART(classificaion and regression trees)방법론을 사용하는 rpart패키지를 사용하여 Reliability를 예측하는 모형을 만들고 테스트 자료를 사용하여 모형의 평가를 실시한다.



자료설명

  • 117개의 자료와 5개의 변수로 이루어져 있다.
## [1] 117   5


<표1> 분석에 사용된 변수

변수이름 변수설명 변수속성 변수값
Price 가격 연속형
Mileage 연비 연속형
Reliability 신뢰도 순서형범주형 Much worse > worse > average > better > Much better
Country 제조국 범주형 Brazil, England, France, Germany, Japan, Japan/USA, Korea, Mexico, Sweden, USA
Type 차종 범주형 Compact, Large, Medium, Small, Sporty, Van
  • 타겟변수는 Reliability로 범주형 변수이다.




데이터 전처리



결측치 제거


<표2> Reliability 빈도표

## 
##  Much worse       worse     average      better Much better        <NA> 
##          18          12          26           8          21          32
  • Reliability의 값중 NA가 32개가 포함 되어 있다.
  • 의사결정 나무에서 목표변수가 NA인 값들은 제외 되고 계산되어진다.
  • 따라서 Reliability가 NA인 행들을 제외 시킨다.


<표3> 결측치 제거 후 자료의 크기

## [1] 85  5
  • 자료의 변화 117개 -> 85개


<표4> Country변수의 level값

##  [1] "Brazil"    "England"   "France"    "Germany"   "Japan"    
##  [6] "Japan/USA" "Korea"     "Mexico"    "Sweden"    "USA"


<표5> country 빈도표

## 
##    Brazil   England    France   Germany     Japan Japan/USA     Korea 
##         0         0         0         4        18         9         4 
##    Mexico    Sweden       USA 
##         2         4        44
  • Reliability가 NA인 행들을 제외 한 후 Country의 빈도표를 살펴보면 Brazil,England,France는 값이 없지만 Level값이 남아 있어 빈도가 0으로 출력된다.

  • 사용하지않는 Level을 삭제 하여준다.


<표6> 사용하지않는 level값 제거 후 Country변수의 level값

## [1] "Germany"   "Japan"     "Japan/USA" "Korea"     "Mexico"    "Sweden"   
## [7] "USA"



불필요한 변수 제거

  • Reliability의 값 중 NA를 제외한 데이터에서 Mileage의 빈도표를 보면 NA값이 89개중 36개가 있다. 따라서 분석에 의미없는 영향을 줄 것으로 판단된다.


<표7> Mileage 빈도표

## 
##   18   19   20   21   22   23   24   25   26   27   28   29   30   32   33 
##    3    2    3    5    5    7    3    3    4    3    1    1    1    2    4 
##   35   37 <NA> 
##    1    1   36
  • 그림 1을 보면 Mileage는 Reliability와 관련이 없어 보인다.


<그림 1> Reliability와 Mileage의 Boxplot

  • 위의 두가지 근거를 통해 Mileage를 사용하지 않는다.



레벨값 축소

  • 타겟 변수의 빈도표를 보면 유사 범주들(Much worse와 worse, Much better과 better)의 구분이 무의미해 보인다.


<표8> 결측치 제거 후 Reliability 빈도표

## 
##  Much worse       worse     average      better Much better 
##          18          12          26           8          21
  • 따라서 각각의 유사한 범주를 worse와 better로 통합한다.
  • 타겟 변수의 레벨값을 3개로 줄임 worse > average > better



<표9> 유사한 범주 통합 후 Reliability 빈도표

## 
##   worse average  better 
##      30      26      29




탐색적자료분석(EDA)


<그림2> Reliability와 price의 Boxplot


<표10> Reliability와 Type의 카이제곱검정결과

## 
##  Pearson's Chi-squared test
## 
## data:  Type_table
## X-squared = 21.2, df = 10, p-value = 0.01974


<표11> Reliability와 Country의 카이제곱검정결과

## 
##  Pearson's Chi-squared test
## 
## data:  Country_table
## X-squared = 62.103, df = 12, p-value = 9.311e-09




데이터분할




의사결정나무모형



분류나무모형의 형성

  • 타겟변수가 범주형이기 때문에 분류나무모형 사용
  • 과적합화 회피를 위한 노드의 최소 개체 수 = 10

  • <그림3>은 CART 알고리즘을 이용한 분류나무모형의 결과이다. 총 5개의 최종마디로 이루어진 나무모형이 형성되었다. 뿌리마디는 총 60개의 개체를 가지고 타겟변수의 비율이 각각 35%, 33%, 32%로 나타내어 지고 있다.


<그림3> 분류나무모형



가지치기(Pruning)

  • rpart패키지를 사용할 경우 과적합화의 위험이 있어 가지치기(Pruning) 실시


<표12> CP(cost-complexity parameter: 비용-복잡도 모수)

##           CP nsplit rel error    xerror       xstd
## 1 0.38461538      0 1.0000000 1.3076923 0.07091957
## 2 0.15384615      1 0.6153846 0.8205128 0.09908634
## 3 0.02564103      2 0.4615385 0.7179487 0.09908634
## 4 0.01000000      4 0.4102564 0.7948718 0.09925208


<그림4> CP 그래프

  • 일반적으로 xerror의 값이 가장 낮은 split개수의 cp 사용
  • xerror의 값이 가장 낮은 split=3인 cp=0.025641을 사용하여 가지치기
  • 훈련자료에 따라 xerror의 값이 가장 낮은 split이 2일 때가 있는데 타겟변수의 범주가 3개 이기 때문에 split=3 이상의 cp값을 사용



가지치기(Pruning)후 분류나무모형

  • <그림5>를 보면 <그림3>과 비교하였을 때 Price로 분류 되는 가지들이 제거됨.
  • Country가 Germany, Korea, Sweden, USA가 아닌경우 better의 비율이 83%이다.
  • Country가 Germany, Korea, Sweden, USA이면서 Type이 Compact,Small,Sprty인 경우 worse의 비율이 64%이다.
  • Country가 Germany, Korea, Sweden, USA이면서 Type이 Compact,Small,Sprty아닌 경우 average의 비율이 65%이다.


<그림5> 가지치기한 분류나무모형