본문 바로가기
  • Let's go grab a data
Data/R

[R 기초] 범주형 변수를 지시형 변수로 변환, 결측치 채우기

by pub-lican-ai 2016. 3. 24.
반응형

[R 기초] 범주형 변수를 지시형 변수로 변환, Imputation #dummy variable #지시 변수 #결측치 #missing value


Dummy Variables 

범주형 데이터를 Dummy 지시 변수로 변환 : 회귀 분석시 범주형 변수를 변환하여 사용할 필요시

R 코드

> install.packages("dummies")

> library(dummies)

> data("iris")

> head(iris,10)

   Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1           5.1         3.5          1.4         0.2  setosa

2           4.9         3.0          1.4         0.2  setosa

3           4.7         3.2          1.3         0.2  setosa

4           4.6         3.1          1.5         0.2  setosa

5           5.0         3.6          1.4         0.2  setosa

6           5.4         3.9          1.7         0.4  setosa

7           4.6         3.4          1.4         0.3  setosa

8           5.0         3.4          1.5         0.2  setosa

9           4.4         2.9          1.4         0.2  setosa

10          4.9         3.1          1.5         0.1  setosa

> d<-dummy.data.frame(iris)

> head(d)

  Sepal.Length Sepal.Width Petal.Length Petal.Width Speciessetosa Speciesversicolor Speciesvirginica

1          5.1         3.5          1.4         0.2             1                 0                0

2          4.9         3.0          1.4         0.2             1                 0                0

3          4.7         3.2          1.3         0.2             1                 0                0

4          4.6         3.1          1.5         0.2             1                 0                0

5          5.0         3.6          1.4         0.2             1                 0                0

6          5.4         3.9          1.7         0.4             1                 0                0


소실 데이터 채워넣기 Missing Value Imputation

1) 중심 경향 값 넣기 (평균, 중앙값, 최빈값 등) - 분산이 줄어들고, 소수의 평균이 전체를 대표하는 경우가 생김, 극단값에의해 평균이 영향 받음, Mid-minimum spacing: 양측 5%제거하고 평균 예) 피겨스케이팅 점수 계산

2) 랜덤 추출(분포 기반) - 랜덤에의해 자주 나타나는 값이 채워짐

3) Regression Imputation 회귀 삽입 - 변수내의 값들의 평균이 아닌 각 관측치의 특성을 고려하여 삽입, 기초 Imputation 먼저하고 회귀식에 의해 타겟 소실 데이터를 채움

4) EM algorithm - 기초 Imputation - 회귀분석 - Y데이터 변형 - 회귀분석 - Y데이터 변형.. 변화량이 작을 때 까지 반복

5) Multiple Imputation - 다양한 모델 여러번 반복


> install.packages("Hmisc", repos="http://cran.nexr.com")

> library(Hmisc)

> age <- c(1,2,NA,4)

> age.i <- impute(age)

> age.im <- impute(age,mean)

> age.ir <- impute(age,"random")

> age.i

 1  2  3  4 

 1  2 2*  4 

> age.im

        1         2         3         4 

 1.000000  2.000000 2.333333*  4.000000 

> age.ir

 1  2  3  4 

 1  2 4*  4 

> str(age.i)

Class 'impute'  atomic [1:4] 1 2 2 4

  ..- attr(*, "imputed")= int 3

> summary(age.i)


 1 values imputed to 2 


   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 

   1.00    1.75    2.00    2.25    2.50    4.00 

> is.imputed(age.i)

[1] FALSE FALSE  TRUE FALSE

반응형