본문 바로가기
Insight & Issues

나의 데이터는 제대로 타겟을 설명/예측하고 있는가?

by 싸코 2017. 12. 10.

우리는 신이 아니기 때문에 y 값을 예측하는 모든 x에 대해서 알 수 없다. 그럼에도 불구하고 우리는 최대한 우리가 할 수 있다고 믿는 선에서 x를 찾아서 y를 예측하고자 한다. 그래도 우리의 측정은 오류가 있기 때문에 항상 error가 발생한다. 데이터 분석을 하다보면 드는 생각들이 있다. 예측이 잘 안될 때는 종종 이런 생각을 하게 된다. 내가 개념적으로 정의하고, 측정한 변수들이 정말 타겟을 설명/예측하는데 적절한가? 타당성이 있는가? 신뢰성이 있는가?

 

문득 생각이 들어 정답은 알 수 없으나 급하게 써내려가고 있다.

 

나의 변수들이 정말 타겟을 설명하는데 충분한가?

 

논문을 쓰기 위해서 연구방법론을 공부하다보면 측정(measurement)에 대한 개념이 나온다

 

우리가 데이터 분석을 할 때 사용하는 변수들은 어떤 목적에 의해서 관찰된 현상을 수치적으로 표현한 것이라고 볼 수 있는데 그동안 분석을 하면서 이 부분을 간과한 것 같다는 생각을 하게 된다.

 

변수를 하나의 개념적으로 동질한 것들을 묶어놓은 것이라고 했을 때, 측정은 변수를 계량화하여 표현할 수 있도록 어떤 규칙을 만들어 그 규칙에 따라 데이터를 만들고 정리할 것이다.

 

우리가 분석하는 많은 것들은 변수들을 조작적으로 정의해서 수량화하여 표현한 것이며 이 정의에 따라 자신만의 수식이나 계산식을 통해서 분석하는 모델의 성능을 높이기도 하고 그런다

 

 

연령이나 성별 같은 변수는 너무나 오랫동안 사용되었고 검증 받은 데이터이기 때문에 그것 그대로 사용하는 것에 문제는 없지만 우리가 설정한 KPI... 특히 주가 같은 것들은 어떤 대상을 표현하기 위해 수량으로 표시한 것인데 이를 다른 어떤 변수들로 예측한다고 했을 때 그 변수들의 데이터는 주가를 제대로 측정하지 못한 것이라고 한다면 해당 변수들로 아무리 좋은 알고리즘과 많은 양의 데이터를 사용한다고 제대로 분석할 수 있을까? 하는 의문이 든다.

 

 

최근 딥러닝을 통해서 이미지 분석이나 자연어 처리나 많은 문제들을 해결하고 있다고 한다. 하지만 가만히 생각해보면 이미지나 음성과 같은 데이터는 컴퓨터가 나온 시점부터 수십년 간 디지털화하기 위하여 많은 연구가 진행되어 온 결과이다. 예를 들어 색을 표현할 떄 RGB의 값을 통해서 (ex. white -> 255, 255, 255) 색을 표현하는 것처럼 우리가 딥러닝이라는 알고리즘에 취해서 왜 그것으로 다른 놀라운 일들을 할 수 있었는지는 좀 더 한 단계 올라가서 생각해볼 필요가 있다.

 

 

내가 종속변수로 분석하려는 것에 대해서 독립변수들(features)이 정말 그 대상을 분석하기에 알맞게 측정되었는지, 조작적으로 정의가 되었는지, 디지털화가 되었는지는 반드시 짚고 넘어가야 할 문제인 것 같다. 재료가 안 좋은데 좋은 결과가 나올 수 가 없으니까 말이다.

 

 

내가 찾은 데이터(변수)가 타당한가(valid)? 신뢰할 수 있는가(reliable)?

그래서 타당도(validity)와 신뢰도(reliability)의 문제는 비단 연구와 관련된 문제만이 아니라 일반 데이터 분석을 하는 우리들도 중요하게 짚고 넘어가야 하는 문제인 것 같다.

 

타당도(Validity)는 분석가 예측하고자 하는 문제를 제대로 설정했는지 그리고 그것을 예측하기 위한 변인들(variables)이 타겟을 실제로 측정하고 있는지, 그것들로 예측을 할 수 있는지에 대해서 논리적으로 그리고 통계적으로 검증하는 작업을 거칠 필요가 있다. 가장 좋은 것은 이런 것들이 된 데이터를 가지고 데이터만 하는 것이지만 보통 필드의 데이터는 이 작업이 되어 있지 않다. 데이터 전처리를 하다보면 전처리 과정 자체도 오래걸리기 때문에 이 사실을 잊어먹게 되는 것 같다.

 

신뢰도(Reliability)는 변수를 측정하기 위해 사용된 측정도구가 다음 번에도 동일한 결과를 내줄 수 있는가에 대한 것이다. 예를 들면 이런 문제가 있을 수 있다. 감성분석을 할 때 딥러닝을 사용하든, 기존 통계방법을 쓰든, 아니면 단순 매칭 방법을 쓰든 감성사전은 필요하다. 나 혼자서만 감성사전을 만든다고 했을 때 어떤 문장들에 대해서 긍정 또는 부정을 판단하게 될 것이다. 그에 따라 사전을 구성할 것이다. 그런데 실수로 저장을 안해서 사전이 날라가버렸다... 그래서 다시 사전을 만들고 있다. 그런데 내가 다시 사전을 만들 떄 지난 번에 만든 것과 동일하게 사전을 구성할 수 있을까? 똑같이 긍정이다, 부정이다 할 수 있을까? 신뢰도는 이런 것처럼 나라는 측정도구가 감성을 측정할 때 동일한 결과로 측정하는지 알아볼 때 확인하는 것이다.

 

데이터 분석을 할 때 중요한 것은 화려한 분석 기법, 뛰어난 스킬도 있지만 그 보다 데이터 그 자체가 더욱 중요하다. 게다가 반복가능Reproducible 해야 한다. 다른 사람이 같은 코드나 모델을 가지고 분석할 때도 가능한한 동일한 결과를 만들어낼 수 있어야 한다고 생각한다.

 

 

데이터 분석을 할 때 이 문제를 어떻게 해결할 수 있는지  좀 더 생각해봐야 할 듯 하다

 

 

댓글