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

R기초: 데이타클리닝(데이타 확인하기, 범위 확인하기)

by PhD_Ming 2020. 12. 4.
300x250

범위(range) 확인하기

항상 바로 분석에 들어가지 말고, 데이타값을 확인해보자. 먼저, 각 변인의 범위가 예상된 범위 내에 있는지 확인하여야 한다. 예를 들면, 100점 만점인 시험 점수에 대한 변인이 있다고 해보자. 만약 범위가 0~10으로 나타난 경우, 심각하게 어려운 시험이 아닌 이상 뭔가 잘못되었음을 알 수 있다. 혹은 설문조사를 통해 7점 척도로 측정한 변인이 있다고 해보자. 만약 이 번인의 범위가 1~8로 나타났다면 그 8은 있어서는 안되는 값이므로 뭔가 잘못되어있음을 알 수 있다.

일반적으로 다음의 경우에 이러한 오류가 발생한다. 

  • 데이타가 R에서 읽히는 동안 오류가 발생한 경우
  • 데이타 입력에 실수가 있는 경우
  • 연구 참여자가 조사항목에 대답할 때 잘못 입력한 경우

범위를 확인하기위해서는 여러 코드를 사용할 수 있지만, 우리는 먼저 summary(data) 코드를 사용할 예정이다. 이 코드를 사용하면 해당 데이터셋의 모든 numeric, integer 변인에 대해 평균, 중앙값, 최소값, 최대값, 4분위수를 제공해준다. 범위는 당연히 최소값~최대값이 될 것이다.

우리가 가지고 있는 예시 데이타를 계속 사용한다.

summary(child_data) 

위 코드를 입력후 실행시키면 다음과 같은 결과가 나온다. 성별이 1과 2 로 남자, 여자가 잘 나타나 있고, 여기서 학업성취도는 교과 성취도의 주관적 평가로 측정되어 1 (매우 못함)~6(잘 모르겠음)점 척도로 측정되었으니 범위에 문제가 없다고 볼 수 있다. 자존감과 친구관계 역시 4점척도로 측정되어 문제가 없음을 볼 수 있다.

NA's로 표시된건 결측치의 수를 표시한 것이다. selfesteem1에 NA가 1로 표시되었는데 이는 selfesteem1 변인 내에 하나의 결측치가 있음을 의미한다. 

*하나의 변인에 대한 summary 결과를 보고싶다면 summary(data$variable) 코드를 사용할 수 있다. 

이 외에 min, max, range 코드를 사용하여 각각 최소값, 최대값, 범위를 구할 수 있다. 아래 코드에서 na.rm=TRUE은 결측치를 무시하고 계산하라는 명령어이다. 이 na.rm 코드를 빼먹으면 결측치가 있는 변인은 오류 메세지가 뜨고 아무런 값이 나오지 않는다. 

  • min(data$variable, na.rm=TRUE)
  • max(data$variable, na.rm=TRUE)
  • range(data$variable, na.rm=TRUE)

다음 예시를 보면, child_data에서 selfesteem1변인의 최소값, 최대값,  범위가 구해진 것을 볼 수 있다.

만약에 코드 중 일부분만 돌리고싶다면, 돌리고싶은 부분만을 드래그해서 ctrl+enter를 누르면 된다.

 

우리의 예시는 범위에 아무런 문제가 없음을 확인했다. 그런데 만약 내가 가진 데이터에서 적정한 범위값에 벗어나는 값이 존재한다면 어떻게 할까? 7점척도로 측정한 항목에서 8점을 발견한다면...? 내가 들은 통계수업의 교수님은 그 값을 삭제하는 것을 추천했다. 즉 결측치처럼 만드는 것이다. 하지만, 이렇게 적정한 범위값에서 벗어나는 값에 패턴이 존재하거나 그러한 값이 여러개라면 더 깊게 생각해보는 것이 좋다고 하였다. 예를 들면, 한 참여자만 그렇게 적정 범위값에 벗어나는 값이 많다면, 그 참여자가 조사 참여를 대충대충 했음을 암시하는 것일 수 있다. 혹은 부적정한 값이 한 연구조원이 입력한 데이터에서만 많이 나타났다면, 그 연구조원이 입력한 데이터를 한번 더 살펴보는 것이 필요하다. 

 

 

반응형

댓글