본문 바로가기
Study/통계 공부 + R

R 기초: 데이타 클리닝(역코딩)

by PhD_Ming 2020. 12. 5.
300x250

설문조사에 어떤 개념을 측정할 때, 여러 문항을 사용해 하나의 구성개념을 측정하게 된다. 이 때 우리는 역문항을 종종 볼 수 있다. 역문항이란 측정하고자 하는 구성개념을 반대로 측정한 문항이다. 우리의 데이타 중 peer 변인과 selfesteem 변인 역시 역문항을 포함한다. 먼저 peer변인을 살펴보자. 순서대로 peer1~peer13의 문항이다. peer9~13은 역문항임을 볼 수 있다. 

peer 변인 문항

역문항은 구성개념을 반대로 측정하므로, 제대로 그 구성개념을 측정하기 위해서는 역문항 점수를 변환시켜주어야 한다. 이를 역코딩(reverse coding)이라고 한다. 척도가 7점 척도로 구성되어 있다면, 역문항 점수를 1점은 7점으로, 2점은 6점으로, 3점은 5점으로 수정해주어야 할 것이다. 우리는 peer 변인을 4점으로 측정하였으므로 1점을 4점으로, 2점을 3점으로 바꾸어주어야한다. 

이 때 1점을 4점으로 변환시키기 위해서 어떤 수식을 사용하면 좋을까? 이 때 우리는 "(최대값+1)-점수값" 수식을 사용한다. peer 변인은 4점 척도이므로 4점이 최대값이다.1점을 바꿀 때 (4+1)에서 1점을 빼면 4점이 된다. 똑같이, 2점을 바꿀 때 (4+1)에서 2점을 빼면 3점이 된다. 7점 척도도 똑같다. 이 때는 7점이 최대값이므로 1점을 바꾼다고 하면 (1+7)-1이므로 7점이 된다. 

이 수식을 모든 역문항 콜럼에 사용하기 위한 수식은 다음과 같다: data[c( )] <- (최대값+1) - data[c()]를 사용하면 된다. 이제 우리의 예시에 적용해보자. peer9부터 peer13은 데이타셋의 22번째 콜럼부터 26번째 콜럼에 위치함을 기억하자. 이 때 우리는 다음과 같이 사용할 수 있다.

child_data[c(22:26)] <- 5 - child_data[c(22:26)]

만약에 한 문항만 역코딩을 해야한다면, 단순하게 다음 코드를 사용할 수 있다.

data$v1 <- (최대값+1) - data$v1

 

자존감(selfesteem) 변인도 역코딩이 필요하다고 하였다. 아래가 selfesteem1부터 selfesteem10까지의 문항이다. 자존감 역시 4점척도를 사용하였고, 2, 5, 6, 9번문항이 역문항이다. 혼자 코드를 작성한 후 문항 아래 더보기를 클릭하여 옳게 했는지 확인해보자. 

selfesteem문항

더보기

child_data[c(5,8,9,12)] <- 5 - child_data[c(5,8,9,12)]

문항 번호가 아닌 콜럼 숫자를 써야함을 주의하자! 

 

*문항 모를 때 역문항 알아보기

일반적으로 연구자가 직접 데이타를 수집하면 어떤 척도를 사용하는지 미리 결정하므로 역문항에 어떤 건지 미리 알고 있다. 그런데 패널 데이터를 받았는데 정보가 정확하지 않아 역문항이 존재하는지, 어떤 문항이 역문항인지 알 수 없다면 상관분석을 돌려 역문항을 파악할 수 있다. 다음은 역코딩 전의 peer 문항들을 모두 상관분석 돌린 결과다. 다음을 살펴보면, 문항 1~9는 모두 대체적으로 서로 정적상관을 가지지만 문항 10~13과는 부적 상관을 가진다. 또, 문항 10~13끼리는 정적상관을 보인다. 이를 통해 우리는 문항 10~13이 역문항을 사용했음을 유추할 수 있다.

반응형

댓글