필수 데이터 검사 테스트


93

내 직무에서 나는 종종 다른 사람들의 데이터 세트와 함께 일하고 비전문가들은 임상 데이터를 가져 와서 요약하고 통계 테스트를 수행하도록 도와줍니다.

내가 가지고있는 문제는 가져온 데이터 세트가 거의 항상 오타, 불일치 및 기타 모든 종류의 문제로 가득 차 있다는 것입니다. 다른 사람들이 들어오는 데이터 세트를 확인하려고하는 표준 테스트가 있는지 알고 싶습니다.

예전에는 각 변수의 히스토그램을 그려 보았지만 이제는이 테스트에서 살아남을 수있는 끔찍한 오류가 많다는 것을 알게되었습니다. 예를 들어, 다른 요일에 반복 측정 값이 있었는데, 일부 개인의 경우 반복 측정 값이 시간 1에서와 같이 시간 2에서 동일했습니다. 다른 데이터 세트에는 매우 심각한 장애 (높은 점수로 표시)에서 문제가없는 상태 (0은 0)로 표시되는 개인이있었습니다. 내가 그것을 확실하게 증명할 수는 없지만 이것은 불가능합니다.

따라서 각 데이터 세트에서 오타가없고 불가능한 값이 없는지 확인하기 위해 어떤 기본 테스트를 실행할 수 있습니까?

미리 감사드립니다!


3
좋은 질문입니다. 검사는 데이터 세트의 특성에 따라 다르기 때문에 일반적인 대답을하기가 어렵다고 생각합니다.
mark999

2
@ mark999 동의합니다. 이 질문에 대한 답변을 읽고 싶습니다. 몇 가지 일반적인 전략이 있지만 데이터 확인 방법 및 발생할 수있는 몇 가지 일반적인 오류에 대한 도메인 별 기대치 구축에 대한 많은 점검이 있습니다.
Jeromy Anglim

1
여기 독자는 다음 스레드에 관심이있을 것 입니다. 데이터베이스에 대한 품질 보증 및 품질 관리 (qa / qc) 지침 .
gung

답변:


77

데이터 기록 방법을 이해하는 데 도움이됩니다.

이야기를 공유하겠습니다 . 옛날에는 많은 데이터 세트가 페이딩 하드 카피에만 저장되었습니다. 그 어두운 날에 나는 (가식과 규모가 큰 조직과 계약을 맺었습니다. 많은 사람들이 재고를 소유하고있을 것입니다) 제조 공장 중 한 곳에서 약 10 ^ 5 개의 환경 모니터링 데이터 기록을 전산화했습니다. 이를 위해, 나는 개인적으로, (데이터가 어디에 있었는지 보여주는) 실험 보고서의 선반을 표시 데이터 입력 양식을 생성하고, 대한 임시 기관과 계약을 체결 글을 읽고양식에 데이터를 입력하는 작업자 (예, 읽을 수있는 사람들은 추가 비용을 지불해야했습니다.) 데이터의 가치와 민감성 때문에 한 번에 두 명의 작업자 (일반적으로 매일 바뀌는)와 동시에이 프로세스를 수행했습니다. 몇 주가 걸렸습니다. 필자는 두 가지 항목 세트를 비교하여 나타나는 모든 오류를 체계적으로 식별하고 수정하는 소프트웨어를 작성했습니다.

소년은 오류가 있었다! 무엇이 잘못 될 수 있습니까? 오류를 설명하고 측정하는 좋은 방법은 기본 기록 수준에 있으며 , 이 상황에서 특정 모니터링 지점에서 얻은 특정 시료에 대한 단일 분석 결과 (일부 화학 물질의 농도)에 대한 설명이었습니다. 주어진 날짜. 두 데이터 세트를 비교할 때 다음을 발견했습니다.

  • 누락 오류 : 한 데이터 세트에는 레코드가 포함되고 다른 데이터 세트에는 레코드가 포함되지 않습니다. 이것은 일반적으로 (a) 한 줄 또는 두 줄이 페이지 하단에서 간과되거나 (b) 전체 페이지가 건너 뛰기 때문에 발생했습니다.

  • 실제로 데이터 입력 실수 인 누락의 명백한 오류 . 레코드는 모니터링 지점 이름, 날짜 및 "분석 물"(일반적으로 화학 물질 이름)로 식별됩니다. 이들 중 하나에 인쇄상의 오류가 있으면 관련된 다른 레코드와 일치하지 않습니다. 실제로 올바른 레코드가 사라지고 잘못된 레코드가 나타납니다.

  • 가짜 복제 . 동일한 결과가 여러 소스에 나타나고 여러 번 전사 될 수 있으며 그렇지 않은 경우에도 반복되는 측정 방법 인 것 같습니다. 중복은 간단하게 감지 할 수 있지만 잘못된 지 여부를 결정하는 것은 데이터 집합에 중복이 나타나는지 여부에 달려 있습니다. 때때로 당신은 단지 알 수 없습니다.

  • 프랭크 데이터 입력 오류 . "양호한"항목은 데이텀 유형 을 변경하기 때문에 쉽게 잡을 수 있습니다. 예를 들어 숫자 "0"에 문자 "O"를 사용하면 숫자가 아닌 숫자로 바뀝니다. 다른 좋은 오류는 값을 너무 많이 변경하여 통계 테스트를 통해 쉽게 감지 할 수 있습니다. (한 경우, "1,000,010 mg / Kg"의 맨 앞자리가 잘려서 10의 값이 남았습니다. 살충제 농도에 대해 이야기 할 때 엄청난 변화입니다!) "50"에 "80"을 입력하는 것과 같이 나머지 데이터와 일치하는 값으로 정렬합니다. (이러한 종류의 실수는 OCR 소프트웨어에서 항상 발생합니다.)

  • 조옮김 . 올바른 값을 입력 할 수 있지만 잘못된 레코드 키와 연관됩니다. 데이터 집합의 전체 통계적 특성은 변경되지 않았지만 그룹간에 가짜 차이가 발생할 수 있으므로 이는 교묘하지 않습니다. 아마도 이중 입력과 같은 메커니즘 만이 이러한 오류를 감지 할 수 있습니다.

이러한 오류를 알고 오류가 발생하는 방법을 알고 있거나 이론이 있으면 이러한 오류가있을 가능성이 있는지 데이터 세트를 트롤링하여 추가주의를 기울 이도록 스크립트를 작성할 수 있습니다. 항상 문제를 해결할 수는 없지만 나중에 "코멘트"또는 "품질 플래그"필드를 포함하여 나중에 분석하는 동안 데이터와 함께 제공 할 수 있습니다.

그 이후로 나는 데이터 품질 문제에주의를 기울 였고 대규모 통계 데이터 세트를 종합적으로 점검 할 수있는 더 많은 기회를 가졌습니다. 완벽한 것은 없습니다. 그들은 모두 품질 검사의 혜택을받습니다. 이 작업을 수행하기 위해 수년 동안 개발 한 몇 가지 원칙에는

  1. 가능하면 데이터 입력 및 데이터 기록 절차 (예 : 체크섬, 총계, 반복 된 항목)에서 중복성생성하십시오 .

  2. 가능 하면 데이터의 모양 , 즉 컴퓨터에서 읽을 수있는 메타 데이터를 설명하는 다른 데이터베이스 만들고 활용 하십시오 . 예를 들어, 약물 실험에서 모든 환자를 세 번 볼 수 있음을 미리 알 수 있습니다. 이를 통해 정확한 레코드와 식별자가 모두 채워져 대기중인 값으로 데이터베이스를 작성할 수 있습니다. 제공된 데이터로이를 채우고 중복, 누락 및 예기치 않은 데이터가 있는지 점검하십시오.

  3. 분석을 위해 데이터 세트를 형식화하는 방법에 관계없이 항상 데이터를 정규화하십시오 (특히, 적어도 네 번째 정규 양식 으로 가져 오십시오 ). 이렇게하면 모델링 할 개념적으로 고유 한 모든 엔티티의 테이블을 작성해야합니다. (환경 적 경우, 여기에는 모니터링 위치, 샘플, 화학 물질 (속성, 일반적인 범위 등), 해당 샘플의 테스트 (일반적으로 화학 물질에 대한 테스트 포함) 및 해당 테스트의 개별 결과가 포함됩니다. 이렇게하면 데이터 품질 및 일관성을 효과적으로 검사하고 잠재적으로 누락되거나 중복되거나 일치하지 않는 값을 식별 할 수 있습니다.

    이러한 노력 (좋은 데이터 처리 기술이 필요하지만 간단 함)은 놀랍도록 효과적입니다. 크거나 복잡한 데이터 세트를 분석하고 관계형 데이터베이스 및 해당 이론에 대한 실무 지식이없는 경우 가능한 한 빨리 배울 내용을 목록에 추가하십시오. 경력 전체에 걸쳐 배당금을 지불합니다.

  4. 가능한 많은 "멍청한"점검을 항상 수행하십시오 . 이것들은 날짜가 예상되는 기간에 빠지거나 환자 (또는 화학 물질 등)의 수가 항상 정확하게 합쳐지고 값이 항상 합리적이라는 값 (예 : pH는 0에서 14 사이 여야하고 아마도 예를 들어, 혈액 pH 측정 값에 대한 훨씬 좁은 범위 등) 여기에서 도메인 전문 지식이 가장 도움이 될 수 있습니다. 통계학자는 전문가에게 어리석은 질문을하고 데이터를 확인하기 위해 답을 활용할 수 있습니다.

물론 더 많은 것을 말할 수 있습니다-주제는 책의 가치가 있지만 아이디어를 자극하기에 충분해야합니다.



2
하나의 후속 질문-주제는 책의 가치가 있습니다-책이 있습니까?
Chris Beeley

5
+1-훌륭한 답변 whuber. 나는 당신이 블로그를 갖기를 바랍니다 :) (r-bloggers.com에 글을 추가하고 싶었을 것입니다)
Tal Galili

2
주제가 가치있는 책을 써야합니다!
Zach

1
많은 컨설팅 회사들이 "데이터 검색 / 청소 / 저장"을 전문으로하는 것은 너무 복잡합니다.
Lucas Reis

25

@whuber는 훌륭한 제안을합니다. 플롯, 플롯, 플롯, 플롯 만 추가합니다. 산점도, 히스토그램, 상자 그림, 선 그림, 히트 맵 및 기타 생각할 수있는 모든 것. 물론, 당신이 발견 한대로 어떤 플롯에서도 분명하지는 않지만 시작하기에 좋은 위치에 오류가 있습니다. 소프트웨어가 누락 된 데이터 등을 처리하는 방법을 명확하게 확인하십시오.

상황에 따라 창의력을 발휘할 수 있습니다. 다변량 데이터를 사용하는 한 가지 요인은 일종의 요인 모델 / 확률 적 PCA (결측 데이터에 대해 다중 대치를 수행하는 것)에 적합하고 가능한 많은 구성 요소의 점수를 확인하는 것입니다. 덜 중요한 구성 요소 / 요소에서 높은 점수를 얻는 데이터 포인트는 종종 그렇지 않은 이상치입니다.


5
+1 플로팅은 모든 투표가 시카고에서하는 통계에 대한 것입니다. ;-)
whuber

15

내가 확인하려는 큰 것들 :

  1. 변수 유형-숫자가 숫자이며 요인 / 문자가 아님을 확인합니다 (입력 한 데이터에 문제가 있음을 나타낼 수 있음)
  2. 일관된 값 수준-이름이 "t1"인 변수가 이름이 "t1"또는 "t 1"인 변수를 다시 찾지 못했음을 확인
  3. 특이 치-가치의 범위가 의미가 있음을 확인하십시오. (당신은 0 또는 마이너스의 혈압 값을 얻었습니까). 여기서 우리는 때때로 누군가가 -5를 결 측값 또는 이와 유사한 것으로 인코딩했다는 것을 알게됩니다.
  4. 선형 제한. 나는 그것을 사용하지 않지만 일부는 일부 열의 종속성 (열 A, B가 C에 추가해야 함 또는 이와 유사한 것)에 대한 재구성을 원한다는 것을 알게됩니다. 이를 위해 당신은 deducorrect 패키지를 볼 수 있습니다 (마지막 useR 회의에서 Mark van der Loo 스피커를 만났으며 그의 패키지에 깊은 인상을 받았습니다)
  5. 무작위성이 너무 적습니다. 때로는 값이 일부 값으로 반올림되거나 특정 시점에서 잘 려야합니다. 이러한 유형의 것들은 종종 산점도에서 더 분명합니다.
  6. 결 측값-결측이 다른 변수와 관련이 없는지 확인합니다 (임의의 결측). 그러나 나는 여기서 줄 규칙이 없습니다.
  7. 값이없는 빈 행 또는 행 이것들은 (보통) 찾아서 생략해야합니다.

중대한 질문 BTW-그 문제에 대한 다른 사람들의 경험을 읽고 싶습니다.


10

시간에 따른 측정 값 ( " 종 방향 데이터 ")이있는 경우 , 기울기 및 한계 분포 를 확인하는 것이 종종 유용합니다 . 이 그라디언트는 다른 스케일로 계산할 수 있습니다. 보다 일반적으로 데이터 (푸리에, 웨이블릿)에서 의미있는 변환을 수행하고 변환 된 데이터의 한계 분포를 확인할 수 있습니다.


7

나는 항상 통과 몇 가지 :

  1. 예상되는 레코드 수가 있습니까? 예를 들어, 다른 소스에서 데이터를 가져 오거나 다른 사람의 데이터 하위 세트를 가져온 경우 숫자가 합리적으로 보이도록하십시오. 당신은 이것이 다룰 것이라고 생각하지만, 당신은 ... 놀라게 될 것입니다.
  2. 모든 변수가 있습니까? 해당 변수의 값이 의미가 있습니까? 예를 들어, Yes / No / Missing 변수가 "1,2,3"으로 코딩 된 경우 그 의미는 무엇입니까?
  3. 결 측값은 어디에 있습니까? 정보가 누락되어 과도하게 보이는 일부 변수가 있습니까? 결 측값이 많은 특정 주제가 있습니까?

이것들은 데이터 세트가 탐색 적 데이터 분석과 같은 것을 준비하기 위해 수행하는 첫 번째 단계입니다. 그냥 앉아서 데이터에 대해 로밍하면서 "그것이 ... 바로 보입니까?"


1

나는 각 열에 합격 샘플링 방법을 사용합니다 (고품질과 저품질 사이의 선을 그릴 수있는 컷오프 번호를 제공합니다). 온라인 계산기가 있습니다.


3
이것은 현재의 답변보다 의견으로 더 적합합니다. 조금 더 정교하게
Antoine

1
이것이 효과적이고 쉽게 찾을 수있는 많은 상황을보기는 어렵습니다 (문자열이나 다른 명목 데이터와 같이 전혀 작동하지 않거나 끔찍한 (모든 다변량 관계를 완전히 무시하기 때문에)). 또한 시계열 (및 일부 관련 데이터)을 제외하고 데이터 테이블의 레코드에는 고유 한 순서가 없지만 많은 (모든 경우는 아님) 수용 샘플링 방법이 시퀀스에 의존하기 때문에 임의적 인 것처럼 보입니다.
whuber

다음은 사용할 계산기입니다. sqconline.com/… 무작위 추출 샘플링을 사용하는 한 사용할 수 있습니다. 당신이 그것을 복잡하게하려면 체계적인 샘플링 기술을 사용할 수 있으며, 다음 각 세그먼트에 합격 샘플링을 사용
타 레크 Shahwan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.