디자인과 논문 작성에 필요한 통계를 알아보자.
디자이너들이 논문을 적을 때 가장 어려워하는 부분이 통계이다. 귀무가설이란 무엇인지, 통계적으로 유의미함은 무엇인지, t-test는 무엇인지, Anova는 무엇인지 등등... 어려운 내용들이 디자이너를 힘들게 한다. 하지만 조금만 알고 있으면 그렇게 어렵지 않다. 이 포스팅에서는 t-test의 유도 공식 같은 건 말하지 않는다. '어떤 경우에 어떻게 사용해야 하는지만 설명할 것이다.'
t-test란 두 집단 간의 평균의 차이가 유의미한 지 검증하는 가장 보편적인 통계 방법이다. 예를 들어보자, 문자메시지를 보낼 때 오타를 줄여주는 새로운 키보드 레이아웃 A를 만들었다. 그렇다면 A가 '통계적으로 유의미하다'라는 건 어떻게 증명할 수 있는가? 바로 'A를 사용하여 문자메시지를 보낸 집단의 평균적인 오류 횟수' VS ' A를 사용하지 않고 문자메시지를 보낸 집단의 평균적인 오류 횟수'를 비교해보면 된다. 여기서 오해하지 말아야 할 것은 단순히 둘 사이의 평균값을 내서 계산하는 것은 아니라는 것이다. 그것은 추론 통계가 아니라 기술 통계일 뿐이다. 그렇다면 추리 통계와 기술(descriptive) 통계, 둘은 무슨 차이가 있는가? 바로 '모집단'이 사용한 경우를 추정하는 것이다. 어려운 이야기는 아니다. 위의 새로운 키보드 레이아웃을 실험하는 경우 "우리는 전 세계 모든 사용자들을 대상으로 실험을 할 수는 없다. 따라서 일부 '표본' 만을 조사하게 된다. 즉 30~40명 정도 되는 '표본'을 대상으로 실험을 한 이후에 '모집단'이 이 레이아웃을 사용하였을 때도 효과가 있는가?를 검정하는 것이 추리 통계이다. 반면에 기술 통계는 그저 평균(mean), 중앙값(median), SD(standard devidation: 평균에서 떨어진 정도) 등을 계산한 값일 뿐이다. 논문을 작성할 때는 물론 둘 다 필요하다.
T-test를 하기 위해서는 몇 가지 조건이 필요하다. 크게 조건 세 가지로 아래와 같다. 괄호에 넣은 건 무슨 말인지 몰라도 된다.
1. 표본이 독립적인가? (t-test or paired t-test)
2. 수집된 데이터가 정규 분포를 따르는가?(t-test or Wilcoxon test)
3. 집단이 두 개인가?(t-test or Anova)
표본이 독립적이라는 말은 무슨 뜻인가? 바로 표본으로부터 측정한 관측치가 다른 표본에 의해 영향을 받지 않는 것을 의미한다. 조금 헷갈린다. 예를 들어서 설명해보자. 앞서 만든 새로운 키보드 레이아웃 A를 실험하기 위해 참가자 20명을 모았다. 10명은 새로운 키보드 레이아웃 A를 사용했고, 다른 10명은 기존 키보드 레이아웃을 사용했다. 이 경우에는 새로운 프로토타입을 사용한 집단과 기존 키보드 레이아웃을 사용한 집단의 관측치가 서로 영향을 받지 않는다. 즉 둘은 아무런 관계가 없다. 잘 이해가 되지 않으면 다음 예시를 보자, 이번에는 20명을 뽑은 후에 실험을 이렇게 했다. 20명 모두에게 먼저 새로운 키보드 레이아웃 A를 사용하게 하고, 이후에 기존의 키보드 레이아웃을 사용하게 했다. 이렇게 되면 관측치가 영향을 받는다. 즉 새로운 키보드 레이아웃을 먼저 사용했으니 이후에 기존 키보드 레이아웃을 사용할 때 A를 사용한 기억이 남아 자판이 헷갈려 오타를 더 많이 낼 수도 있고 키 입력 시간이 더 오래 걸릴 수도 있다. 이 경우에는 표본이 독립되지 않았다고 한다. t-test는 표본이 독립적인 경우에만 사용할 수 있다. 표본이 독립적이지 않다면 paired t-test를 사용한다. 그러면 모든 표본을 독립으로 맞추면 안 돼?라고 하지만 조사 요건상 오히려 paired t-test를 사용하는 경우가 더 많다는 건 함정이다.
일단 당신이 디자인과 학생이며, 문과라면 정규분포라는 말에 졸았을 것이다. 정규분포란 세상에 일어나는 모든 일을 설명하는 핵심 개념이다. 정규 분포에 대한 자세한 설명은 나중에 따로 시간을 내서 포스팅하도록 하겠다. 정규분포는 통계를 이해하는데 매우 매우 중요한 개념이기 때문에 대충 알고 넘어가서는 안 되기 때문에..
R-studio에서는 아주 간단한 코드로 수집된 데이터가 정규 분포를 따르는지 혹은 따르지 않는지를 검정할 수 있다. 바로 qqnorm과 qqline이다.
sample은 랜덤 한 숫자를 만들어 내는 함수로 1:15는 1에서 15까지, 뒤에 10은 10개의 숫자를 만들어내는 것을 의미한다. 그리고 이를 df라는 변수에 저장한다. 뒤에 df라고 한 번 더 입력을 한 것은 확인용이다. qqnorm과 qqline을 입력하면 오른쪽의 그래프가 만들어진다. 선 위에 점이 밀집되어 있을수록 정규분포를 따르는 것이다. 그런데 이렇게 되면 시각적으로 정규분포를 얼마나 따르는지 해석할 수밖에 없다. 즉 정확히 정규분포를 따르는지 알 수가 없다. 이를 해결하기 위해 나온 함수가 shapiro.test()이다.
왼쪽과 같이 shapiro test를 시행하면 오른쪽과 같이 결괏값이 나온다. 이때 p-value(유의 수준)이 0.05 이상이면 정규분포를 따른다고 볼 수 있다. 헷갈리지 말아야 할 것은 shaipro test의 귀무가설이 '수집된 데이터가 정규 분포를 따른다.' 이므로 p-value가 0.05보다 커야 귀무가설을 기각하지 않게 되어 정규분포를 따름을 확인할 수 있다. 요약하자면 p-value가 0.05보다 크면 t.test를 시행할 수 있다. qqnorm과 qqline을 시행하기 전에 shapiro test를 시행하면 조금 더 빨리 결괏값을 확인할 수 있다. 만약 정규분포를 따르지 않는다면 Wilcoxon test라는 다른 방법을 사용하면 된다. 연속형 변수일 때는 대부분 정규분포를 따르는 경우가 많다.
집단이 두 개라는 것은 비교군과 대조군이 각 1개씩 존재하냐는 뜻과 유사하다. 즉 키보드 레이아웃을 사용할 집단 VS 사용하지 않을 집단과 같이 비교군과 대조군이 이루어진 경우에는 t-test를 사용할 수 있다. 그러나 집단이 3개가 존재할 수도 있다. 예를 들어보자, 키보드 레이아웃 A, 키보드 레이아웃 B 두 개를 만들었다. 둘 중에 어떤 키보드가 효율적인지 실험하기 위해서는 이러한 비교가 필요하다. 키보드 레이아웃 A VS 키보드 레이아웃 B VS 기존 키보드. 이렇게 비교를 해야 둘 중 어떤 키보드가 기존 키보드에 비해 우수한지, 둘 중 어떤 키보드가 더 우수한가를 비교할 수 있다. 이렇게 집단이 3개가 나오는 경우에는 아노바(ANOVA)를 시행해야 한다. 이 경우에는 독립변수가 "키보드의 종류'가 되고, 독립변수가 하나인 one-way Anova를 사용해야 한다. 안타깝게도 ANOVA는 t-test보다 어렵고 더 많이 쓰인다.
t-test를 R-studio에서 돌리는 방법은 정말 간단하다. 엑셀 파일을 csv형태로 추출하고, 코드 두 세줄이면 된다. 사실 R에서 코드를 돌리는 것보다 더 중요한 게 엑셀 파일 형태를 아는 것이다. T-test의 엑셀 파일 형태는 다음과 같다. 앞에 No 칼럼은 빼도 상관없다. 두 개의 그룹과 그룹에서 얻어낸 관측치가 필요하다.
이 상태로 CSV 파일로 '바탕화면'에 저장한다.
그리고 아래 코드를 그대로 입력한다. setwd로 현재 working directory를 바탕화면으로 지정하였기 때문에 바탕화면에 있는 csv파일을 바로 읽어올 수 있다.
결과는 아래와 같이 출력된다.
p-value가 매우 작은 2.394e-05, e-05는 지수 표기가 된 것으로 (1/10)^5를 2.394에 곱하면 된다. p-value가 매우 매우 작게 나왔으므로 아주 유의미하다고 볼 수 있다.
그런데 이 CSV 포맷은 shaipro test를 실행하기 쉽지 않다. 따라서 아래 방법을 추천한다. 칼럼을 그룹과 데이터로 나누는 것이다.
그리고 끝으로 이렇게 실행하면 된다. 끝으로 결과를 시각화하고 싶다면, 이 코드를 사용하면 된다.