데이터 연계 결합 지원제도 도입 방안 연구 (정보인권연구소) 발취

 

데이터 연계의 개념

 

데이터 연계(Data Linkage)란 두 개 이상의 출처로부터 동일인이나 동일한 사건, 기관, 장소에 연관된 정보를 함께 가져오는 것을 의미한다. 정보를 결합함으로써 단일 출처의 정보만으로는 알기 힘든 정보 요소 간의 관계가 밝혀질 가능성이 있다. 데이 터 연계는 레코드 연계(record linkage), 데이터 매칭(data matching), 데이터 통합 (data integration) 등으로도 불린다.2)

 

데이터를 연결할 때 사용되는 변수들은 식별 변수와 관심변수, 크게 두 종류로 구 분된다. 식별 변수(Identifying variables)는 이름, 주소, 의료보험번호 등과 같이 개인 식별에 사용되는 변수로서 서로 다른 데이터셋의 연계에 사용된다. 관심변수 (Variables of interest)는 나이, 성별, 수입, 질병, 직업 등 연구의 주된 관심사가 되는 변수들을 의미한다.

 

식별자에는 직접적인 식별자(direct identifiers)와 간접적인 식별자(indirect identifiers) 두 종류가 있다. 직접적인 식별자는 이름, 주민등록번호, 주소 등과 같이 개인을 정확히 구별해낼 수 있는 식별자이며, 데이터들을 연결할 때만 가치가 있는 정보로 연구자들은 별로 관심을 두지 않는 대상이다. 하지만, 직접 식별자는 개인 식 별이 가능하므로 매우 민감한 정보일 수 있다. 그러므로 연구목적의 데이터셋에서 직 접적인 식별자들은 제거한 후에 연구자들이 접근하도록 하는 것이 일반적이다.

 

간접적인 식별자는 다른 정보와의 결합을 통해서만 개인을 구별해낼 수 있다. 대부 분의 간접적인 식별자는 위의 관심변수와 중첩되는 경우가 많다. 예를 들어, 나이, 성 별, 인종과 같은 정보는 개인을 구별하는 데도 사용되지만 중요한 설명요인이 되는 경우가 많다. 간접적인 식별자를 통해서도 개인이 재식별될 가능성이 있는데, 특히 데 이터셋이 연계될 경우 이러한 특징적인 정보들이 증가함에 따라 개인 재식별 가능성 이 증가하게 된다.

 

(2) 데이터 연계의 유형

데이터셋의 상태나 연구의 목적 등에 따라 다양한 데이터 연계 방법을 활용할 수 있다.

 

가. 정확 연계(exact/deterministic linking)

정확 연계는 두 개의 데이터 출처가 고유한 참조번호(reference number)를 공유하 고 있는 경우에 가능하다. 예를 들어, 영국에서는 국가보건서비스(NHS) 번호를 이용 해서 NHS 의료기록들을 연결할 수 있다. 이론적으로 정확 연계의 장점은 확실하고 단순하다는 점이다. 이때 연결에 사용되는 고유식별자가 다른 개인정보를 포함하지 않는 임의번호인 경우가 좋다. 혹시 의도하지 않게 데이터가 유출될 경우, 개인정보를 포함하고 있는 고유식별자보다는 개인정보 노출의 위험성이 낮아지기 때문이다.3)

정확 연계는 연계 필드(match field)의 고유성과 함께, 그 데이터가 정확하다는 것 을 전제로 한다. 연계 필드의 데이터에 오류가 있다면, 당연히 연계로 생성된 데이터 셋에 오류가 발생할 수밖에 없기 때문이다. 이는 연계 필드를 생성하는 기관이 얼마 나 많은 자원을 갖고 있는지와 정확한 연계의 중요성 정도에 달려있다. 예를 들어, 카 드번호와 같이 데이터값의 정확성이 중요한 경우에는 값의 정확성을 즉시 자체 점검 할 수 있는 메커니즘을 가지고 있다.

 

정확 연계가 반드시 임의의 참조번호에 의해서만 이루어지는 것은 아니다. 경우에 따라 이름이나 생년월일 등의 정보를 통해서도 충분히 연계가 가능할 수도 있다. 그 러나 이 경우에는 연계 필드가 고유하고, 정확하다는 전제가 취약해질 수 있다.

 

나. 확률연계(probabilistic matching)

확률연계는 두 개 이상의 데이터셋에서 식별 변수에 해당하는 값을 비교하여 두 레 코드가 동일인에 관한 기록일 가능성을 추정하는 방식이다. 이 방법은 데이터가 부정 확하거나 불완전할 수 있다는 점, 그리고 데이터 출처마다 값이 다른 포맷으로 입력 되었을 수도 있다는 점을 전제로 한다.

서로 다른 데이터 소스가 정확 연계를 위해 동일한 참조번호를 사용하기 위해서는 기관 간의 조정이 필요하지만, 이름, 주소, 나이, 성별 등은 많은 데이터 소스에서 일 반적으로 사용하는 정보들이다. 서로 다른 데이터셋에 공통적인 고유한 참조번호가 없거나, 혹은 법적인 문제를 포함한 여러 가지 이유로 사용하기 힘들 경우 확률연계 를 수행할 수 있다.

두 레코드가 동일인에 관한 것일 확률을 측정하는 것이므로 오류 가능성이 존재한 다. 이러한 오류 가능성은 동일인에 관련된 레코드가 아님에도 연결하는 경우와 실제 로 연결되는 레코드가 있음에도 연계되지 않는 경우가 있을 수 있는데, 전자를 1종 오류(false positives), 후자를 2종 오류(false negatives)라고 부른다.

연계 실제

True Match

True Non-Match

Link

True Positive

False Positive (1종 오류)

Non-Link

False Negative (2종 오류)

True Negative

표 2-1 데이터 연계 오류

* 출처: 오미애 등 (2014)

 

확률연계를 수행하는 소프트웨어는 데이터를 사용자가 설정한 일정한 오차범위를 갖고, ‘매칭됨(matched)’, ‘매칭되지 않음(unmatched)’, ‘불확실(uncertain)’ 등으로 분류 하게 된다. 그 목적은 사용자가 ‘매칭됨’ 및 ‘매칭되지 않음’은 유효하다고 생각하고, ‘불확실’ 영역에 초점을 맞추어 검토하도록 하는 것이다. 이렇게 사람이 직접 개입함 으로써(이를 clerical matching이라고 한다) 연계율을 높일 수 있다.

확률연계는 정확 연계보다 다소 주관적인 절차가 더 많을 수밖에 없다. 사람들이 많은 결정을 내려주어야 하기 때문이다. 예를 들어, 어떠한 변수의 조합을 사용하는 것이 적절한가, 연계 여부 결정을 위한 요구조건은 얼마나 엄격하게 설정되어야 하는 가4), 일치하지 않는 값들은 오류로 처리할 것인가, 어떤 변수에서의 불일치는 다른 것보다 중요한 것으로 봐야 할 것인가.5) 또한, 확률연계를 통한 분석을 다른 연구자 가 검증할 수 있도록 하기 위해서는 이러한 결정이 투명하고, 기록되고, 일관된 방식 으로 이루어질 필요가 있다.

  확률연계는 그 속성상 정확 연계보다는 오류에 덜 민감하다. 그럼에도 불구하고, 데 이터 연계 작업 전에 데이터 정제(data cleaning) 작업이 선행되어야 할 수 있다. 예 를 들어, 문자열 데이터의 양식을 통일하거나 불필요한 부분을 제거하는 절차가 필요 하다. 또한, 문자열을 비교하는 알고리즘의 특성은 연계 결과에 큰 영향을 미칠 수 있 다. 예를 들어, 소리 기반 연계 알고리즘은 ‘beat’ 와 ‘beath’보다는 ‘Jon’과 ‘John’이 더 가깝다고 판단할 수 있겠지만, 바이그램(bigram) 분석 알고리즘(‘be/ea/at’와 ‘be/ea/at/th’처럼 문자열을 문자 쌍들로 분리하여 분석하는 방식)에서는 반대가 될 것 이다.

 

다. 통계적 연계(statistical linking)

정확 연계 및 확률연계가 정확한 두 개인을 연계하는 것이라면, 통계적 연계는 서 로 다른 개인에 관한 두 개의 레코드가 마치 동일인에 관한 레코드인 것처럼 연계하 여 분석하기 위해 개발된 방법으로 데이터 퓨전(data fusion)이라고도 한다. 예를 들 어, 50세 경상도 남성인 홍길동의 어떤 특성(교육수준, 정치적 성향 등)이 다른 50세 경상도 남성과 유사하다면, 홍길동의 의료 데이터를 그와 유사한 다른 누군가의 정보 와 연계했을 때 통계적으로 유의미한 결과를 얻을 수 있을 것이다. 공중보건 분야에 서는 연구자가 정책 평가를 위해서 시뮬레이션 모델을 만들기 위해 사용한다.

이 방법의 장점은 연계의 질이 덜 중요해진다는 점이다. 그러나 이 방법은 많은 통 계적 가정에 의존하고 있다. 우선 연계할 여러 데이터의 표본은 동일한 모집단에서 조사되었다고 가정한다. 또한, 매칭 변수가 주어졌을 때, 두 데이터셋의 관심변수가 서로 독립적이어야 한다는 것이다. 이는 하나의 연계 후보가 다른 것과 유사하다는 전제를 위해 필요하다.

그러나 통계적 연계의 문제점은 그 전제가 충족되지 않았을 경우, 분석의 결과를 신뢰할 수 없게 된다는 점이다. 두 데이터셋의 조사 혹은 생산 시점이 다를 경우, 두 데이터의 모집단이 다르거나 가중치가 다른 경우, 공통 변수 선택 등 고려해야 할 문 제가 많으며, 연계 데이터의 품질을 어떻게 측정할 것인지도 중요한 문제이다. (오미 애 등, 2014)

라. 다층 연계(multilevel linking)

데이터 연계가 반드시 개인 레벨일 필요 없이 환경정보와 연결되어도 유용성이 높 다. 즉, 개별 단위(사람과 사람, 단체와 단체)의 연계가 아니라, 서로 다른 차원 사이 에 ‘수직적으로’(예를 들어 개인을 의사 혹은 병원과 연계), 혹은 ‘수평적으로’(개인을 작은 지역의 데이터와 연계) 연계할 수도 있다. 예를 들어, HIV 감염 데이터를 지역 적 데이터와 연계할 경우, 지역에 따라 다른 특성을 보여줄 수 있다. 다층연계를 사용 할 경우 정확도가 높으면서도 보안상의 위험도는 낮출 수 있다.

(3) 연계 데이터 유형별 특징

가. 횡단면조사 데이터(Cross-sectional survey data)

사회경제적 데이터를 수집할 때는 주로 설문을 이용하게 되는데, 통계를 낼 목적이 므로 설문조사 결과 데이터는 표면적으로는 깨끗하다. 즉, 통상적인 표준에 따라, 통 상적인 정의와 메타데이터와 함께 수집·생산된다.

그러나 설문 데이터는 주로 표본조사를 하므로 이 데이터가 관심 인구의 대표성을 갖고 있는지가 관건이 된다. 적은 비용으로 가치 있는 데이터를 추출하기 위해, 군집 화(clustering, 특정 지역 혹은 그룹에 초점을 맞춘다)와 계층화(어떤 외부 특성에 따 라 다른 샘플링 방법을 사용) 기법이 사용된다.

설문조사 데이터는 한번 수집되면 그 정확성을 검증하기 힘들다. 설문 응답자를 추 적해서 확인하는 것이 비용이 많이 들어 사실상 불가능하기 때문이다. 또한, 설문조사 데이터는 일반적으로 가명화되기 때문에 데이터 연계 시 문제가 발생할 수도 있다. 예를 들어 연령이 42세가 아니라 43세로 잘못 기록되었을 때, 이는 통계적으로는 큰 문제가 아닐 수 있지만, 데이터 연계 시에는 문제를 야기할 수 있다.

'보안' 카테고리의 다른 글

해외 임시 핸드폰 번호, 해외 무료 SMS 받기  (1) 2020.03.24
데이터 연계/결합의 개념  (0) 2020.03.01
일회용 메일 주소  (0) 2018.06.25

전문적으로 Python으로 개발하지 않더라도 Python으로 이것저것 개발하거나 혹은 인터넷이나 Github상에서 다운로드한 소스코드를 동작해야 할 일이 꽤 많을 것이다.  그럴때 아래와 같이 잘 예외 처리가 된 코드를 보았다고 생각해 보자..


    lineList = []

    try:

        f = open(fileName, 'r', encoding='latin-1')


    except IOError:

        print("[!] Could not open file " + fileName)

        exit(1)


    except:

        print("[!] Could not access file " + fileName)

        exit(1)


    for line in f.readlines():

        newLine = line.replace('\n', '')

        lineList.append(newLine)


  단지 파일의 내용을 읽은 다음 단순히 리스트에 하나씩 넣어주는 단순한 코드 이다.

 근대 위의 코드를 실행해 보면 아래와 같이 에러가 난다.



[!] Could not access file ./usernames.txt


예외처리가 되어 있어 아무런 에러 메시지가 나지 않는다. 제일 쉬운 에러 메시지를 보는 방법은 try, except를 모두 제거 해버리면 된다. 그러나 열심히 짜둔 코드를 에러 하나 보겠다고 즉 Stack Trace 하나 하겠다고 지우고 다시 짜기엔 귀차니즘이 용납하지 않는다. 이럴때 에러 로깅을 한가지 넣어서 해결 해 보자.


아래와 같이 코드를 수정한다.


    import traceback

    lineList = []

    try:

        f = open(fileName, 'r', encoding='latin-1')


    except IOError:

        print("[!] Could not open file " + fileName)

        traceback.print_stack()

        traceback.print_exc()

        exit(1)


    except:

        print("[!] Could not access file " + fileName)

        traceback.print_stack()

        traceback.print_exc()

        exit(1)


    for line in f.readlines():

        newLine = line.replace('\n', '')

        lineList.append(newLine)


   위와 같이 변경하고 나면 아래와 같이 encoding이 잘못된 키워드로 함수내에 정의되었다는 에러 메시지를 볼수 있다.


TypeError: 'encoding' is an invalid keyword argument for this function


  위에서 사용한 traceback은 python상에서 위와 같이 예외처리등이 수행된 상태에서 Stack Trace를 출력하기에 상당히 유용한 모듈이다. 상세한 설명은 아래의 링크를 참고하기 바란다.


https://docs.python.org/2/library/traceback.html


This module provides a standard interface to extract, format and print stack traces of Python programs. It exactly mimics the behavior of the Python interpreter when it prints a stack trace. This is useful when you want to print stack traces under program control, such as in a “wrapper” around the interpreter





Death Valley 관광하기

미국 서부를 여행하면서 제대로 황무지를 즐기고 볼수 있는 곳이라고 생각한다. 데스 밸리도 역시 국립공원으로 지정되어 있기 떄문에 보존이 잘 되어 있고 군대군대 관광을 할만한 포인트가 상당히 많이 있는 편이다. 다만 데스밸리의 경우 기온이 너무 올라가면 입장을 제한하기도 하니 기온을 잘 알아 보고 가는것은 필요해 보인다. 그리고 너무나 날씨가 더운 상태에서 차량으로 언덕을 계속 오르는 관광 코스의 경우 차에 무리가 많이 갈수도 있다.


이번 여행에서는 라스베가스에서 Yosemite로 가기 위해서 Bishop을 지나기로 했기 때문에 가는길에 있는 데스 밸리를 여행하는건 어찌보면 당연하지 않을까 생각된다. 천천히 짐을 챙겨서 오전 9시쯤 라스베가스의 호텔에서 출발하면 약 2시간 정도 가면 데스밸리의 관광 포인트로 들어갈 수 있다. 


이번에 내가 지나간 경로는 아래와 같다.



% 평소에도 더운 편이지만 내가 방문했던 7월은 한여름인지라 섭씨 50도까지 올라갔다. 실제로 장시간 돌아다니는것이 힘든 상태이기 때문에 다양한 포인트를 보지는 못했다.



Dante`s View

  해발 1,669m 높이에 있는 전망대로 데스 밸리 전체를 전망하기에 아주 좋은 장소이다. 


 단테의 전망(Dantes View)라는 이름이 지어진것은 신곡을 쓴 단테 알리기에리의 이름에서 따온것으로 1926년 Pacific Coast Borax 회사의 사업가들 몇명이 데스밸리에서 가장 전망이 좋은 곳을 찾다가 이 지점을 보고 꼭 단테의 신곡에 나오는 지옥과 연옥을 보는것 같다고 하여 Dante`s View라고 이름 붙였다고 한다.


  고도가 높은편이므로 올라가는 길은 상당히 오르막길이다. 운전을 약간은 조심하면서 올라가야 하고 거의 다 올라간 지점쯤에 임시 화장실이 하나 있다. 다만 시골 화장실이라고 생각하면 된다. ^^



정상에서 바라본 데스 밸리










zabriskie point

Pacific Coast Borax 회사의 부사장 겸 총 책임자였던 Christian Brevoort Zavriskie의 이름을 따서 지어진 전망대로서 낮은 위치에서 퇴적물들로 만들어진 황무지를 전망할수 있게 해줍니다. 










Furnace Creek Visitor Center

데스 밸리에 있는 여행자 안내소로 데스밸리에 대한 전반적인 설명을 볼수 있다.

간단한 음식도 판매하고 있기 때문에 라스베가스를 떠난 이후에 마땅히 식사를 할 장소가 없으므로 여기서 간단한 샌드위치를 사서 먹으면 좋다. 



관광 안내소 앞에 온도계 화씨 120도를 가리키고 있다. (섭씨로 약 49도 정도.. )



  



+ Recent posts