Data science/Statistics (59)

반응형

적합도 검정이란 Goodness-of-fit 검정이라고 흔히 말하며, 데이터의 분포가 특정 분포함수와 얼마나 잘 맞는지를 검정하는 방법입니다. 가장 많이 사용하는게 정규성 검정인데, 모집단의 분포를 정규분포로 가정하고 하는 분석법, 예를 들어, t-test, anova, 회귀분석 등을 할 때, 데이터가 정규분포를 따르는가를 확인하는데 이 적합도 검정이 필요합니다.


적합도 검정에는 여러 방법이있는데 대표적인 것으로 카이제곱 검정과, Kolmogorov-Smirnov 검정이 있습니다. 카이제곱검정은 기댓값과 관측값을 이용한 방법이며, K-S 검정은 누적분포함수의 차이를 이용한 검정법입니다. 아래는 두 검정법를 비교한 표입니다.



Kolmogorov-Smirnov 검정

카이제곱 검정

 연속형 데이터에 사용 가능

 이산형 데이터에 사용가능. 연속형일 경우 그룹으로 묶어야함

 필요한 표본 크기가 상대적으로 작음

 표본 크기가 충분히 커야 정확도가 높음 (작으면 정확검정)

 모수를 추정해야하는 경우 정확도가 낮음

 자유도에 모수 추정된 것이 반영됨

반응형
반응형

크루스칼-왈리스 검정은 모수적 방법에서의 one-way anova와 같은 목적으로 쓰입니다.


대신 그룹별로 평균이 아닌 중위수가 같은지 아닌지를 검정합니다.



A (98,95,76,95,83,99,82,75,88)
B (95,71,80,81,77,70,80,72,81)
C (77,79,91,84,80,93,87,81,83)



예를 들어, 아래와 같은 세 그룹이 있는 이 세 그룹간의 중위수의 차이가 있는가를 알아보기 위하여 쓰입니다.


즉, H0 : A의 중위수 = B의 중위수 = C의 중위수 vs H1 : 최소 한 그룹의 중위수가 다르다.


이를 검정하기 위한 검정통계량은 아래와 같습니다.




이 때 N은 전체 표본의 수이고, ni는 각각의 그룹의 표본 수 입니다. ri는 표본들을 모두 합친 후 순위를 냈을 때의 그룹별 데이터의 순위값입니다. 만약 중위수가 정말 같다면(H0=True) ri의 평균은 비슷할 것입니다. 다르다면 이 값이 커지게 되고, 유의하게 컸을 때, H0를 기각하게 됩니다.


H의 정확한 분포를 구하는 것은 매우 복잡하기 때문에 그룹당 표본수가 충분하면 H가 자유도 (k-1)인 카이제곱 분포를 따른다는 것을 이용하여 검정할 수 있습니다. (이 때 k=그룹의 수)


R 을 통하여 크루스칼 왈리스 검정을 하는 법은 아래와 같습니다.



value1 <- c(98,95,76,95,83,99,82,75,88)
value2 <- c(95,71,80,81,77,70,80,72,81)
value3 <- c(77,79,91,84,80,93,87,81,83)
category <- c(rep("A",9),rep("B",9),rep("C",9))
data <- data.frame(value=c(value1,value2,value3), category)


kruskal.test(value~category, data=data)



결과

Kruskal-Wallis rank sum test



data: value by category


Kruskal-Wallis chi-squared = 5.6972, df = 2, p-value = 0.05793


반응형
반응형

[ 모수 검정과 비모수 검정 비교표 ]

 

 구분

 모수 검정

(Parametric Test)

비모수 검정

(Nonparametric Test) 

 When to use

 정규분포 가정 만족 시

 (normal distribution)

 정규분포 가정 불충족 시,

 혹은 모집단이 어떤 분포를 따르는지 모를 때

 (non-normal distribution, or un-know distribution,

  or very small sample size, or rankded data)

Statisctic

 평균 (mean)

 중앙값 (median) 

 1 sample

 1 sample t-test 

 1 sample Wilcoxon signed rank test

 2 samples

 2 sample t-test

 Wilcoxon rank sum test,  

 Mann-Whitney U-test

 paired 2-sample t-test

 Wilcoxon signed rank test

 more than

2 samples

 one-way ANOVA

 Kruskal-Wallis test



출처: http://rfriend.tistory.com/130 [R, Python 분석과 프로그래밍 (by R Friend)]

[ 모수 검정과 비모수 검정 비교표 ]

 

 구분

 모수 검정

(Parametric Test)

비모수 검정

(Nonparametric Test) 

 When to use

 정규분포 가정 만족 시

 (normal distribution)

 정규분포 가정 불충족 시,

 혹은 모집단이 어떤 분포를 따르는지 모를 때

 (non-normal distribution, or un-know distribution,

  or very small sample size, or rankded data)

Statisctic

 평균 (mean)

 중앙값 (median) 

 1 sample

 1 sample t-test 

 1 sample Wilcoxon signed rank test

 2 samples

 2 sample t-test

 Wilcoxon rank sum test,  

 Mann-Whitney U-test

 paired 2-sample t-test

 Wilcoxon signed rank test

 more than

2 samples

 one-way ANOVA

 Kruskal-Wallis test



출처: http://rfriend.tistory.com/130 [R, Python 분석과 프로그래밍 (by R Friend)]

[ 모수 검정과 비모수 검정 비교표 ]

 

 구분

 모수 검정

(Parametric Test)

비모수 검정

(Nonparametric Test) 

 When to use

 정규분포 가정 만족 시

 (normal distribution)

 정규분포 가정 불충족 시,

 혹은 모집단이 어떤 분포를 따르는지 모를 때

 (non-normal distribution, or un-know distribution,

  or very small sample size, or rankded data)

Statisctic

 평균 (mean)

 중앙값 (median) 

 1 sample

 1 sample t-test 

 1 sample Wilcoxon signed rank test

 2 samples

 2 sample t-test

 Wilcoxon rank sum test,  

 Mann-Whitney U-test

 paired 2-sample t-test

 Wilcoxon signed rank test

 more than

2 samples

 one-way ANOVA

 Kruskal-Wallis test

 

이론적인 부분에 대해서는 wikipedia (☞ https://en.wikipedia.org/wiki/Mann%E2%80%93Whitney_U_test) 를 참조하시기 바랍니다.



출처: http://rfriend.tistory.com/130 [R, Python 분석과 프로그래밍 (by R Friend)]

모수검정과 비모수검정 비교표


구분 

모수

비모수

 언제 쓰이나

검정의 가정을 만족할 때

(주로 모집단의 정규성

 가정 불만족, 작은 샘플 사이즈,

순위로만 된 데이터

 통계량

평균

중위수

 1 sample

1 sample t-test

sign test, wilcoxon signed rank test 

 2 sample

2 sample t-test

wilcoxon rank sum test

mann-whitney u test

 paired 2sample

 paired t-test(1 sample t-test)

sign test, wilcoxon signed rank test

 more than 3sample

 one-way anova

kruskal-wallis test



참고

http://rfriend.tistory.com/130

반응형
반응형

윌콕슨 순위합 검정은 두 표본의 중위수를 비교하는데 쓰인다. 모수적 방법에서 이표본 t-test와 같다.


A, B 회사로부터 각각 생산된 계피가루 한 통의 무게를 X,Y라고 하자 n1=8, n2=8로 표본을 추출하였다.


X = {117.1, 121.3, 127.8, 121.9, 117.4, 124.5, 119.5, 115.1}

Y = {123.5, 125.3, 126.5, 127.9, 122.1, 125.6, 129.8, 117.2}


H0 : X의 중위수 = Y의 중위수 vs H1 : X의 중위수 != Y의 중위수


이 때 X, Y가 결합된 표본을 만들고 이 표본을 오름차순으로 정렬해보자.


XY = {115.1, 117.1, 117.2, 117.4, 119.5, 121.3, 121.9, 122.1, 123.5, 124.5, 125.3, 125.6, 126.5, 127.8, 127.9, 129.8}


그리고 Y 값들에 대하여 밑줄을 쳐놓고, 이 Y 값들의 순위를 모두 합쳐보자.


W = 3+8+9+11+12+13+15+16 = 87


이 때 W를 윌콕슨 통계량이라고 한다. 만약 이 W 값이 너무 작거나 너무 크면 H0를 기각할 유의한 증거가 있는 것이다. 그러면 우선 H0하에서 W의 분포를 알아야하는데, W의 정확한 분포를 알기는 매우 힘드므로 중심극한 정리를 이용한다.


우리가 알 수 있는 것은 E[W] = n2(n1+n2+1)/2, V[W] = n1n2(n1+n2+1)/12 이다. 그러므로 중심극한정리를 이용하여


W ~ N(n2(n1+n2+1)/2, n1n2(n1+n2+1)/12)


n1=8, n2=8을 이용하여 평균과 분산을 각각 구하면, 68, 90.66 이다.


위에서 구한 W 값을 표준화 시키면,

z = (87-68)/sqrt(90.66) = 1.99


양측검정에서 기각역은 z > 1.96 or z < -1.96이므로 H0를 기각한다.







반응형
반응형

Wilcoxon Signed Rank Test는 일표본에 대하여 중위수를 검정하는데에 쓰인다. 또는 paired 된 데이터의 중위수의 차이가 있는지를 검정하는데 쓰인다. 모수적 방법에서 일표본 t-test와 같은 목적으로 쓰인다.


표본이 176.9, 158.3, 152.1, 158.8, 172.4, 169.8, 159.7, 162.7, 156.6, 174.5, 184,4, 165.2, 147,8, 177.8, 160.1, 160.5 라고 하자.


H0 : 중위수 = 160 vs H1 : 중위수 != 160 를 검정하도록 해보자.


우선 | Xi - 160 | 을 오름차순으로 차례대로 줄 세운다.


0.1, 0.3, 0.5, 1.2, 1.7, 2.7, 3.4, 5.2, 7.9, 9.8, 12.2, 12.4, 14.5, 16.9, 17.8, 24.4


그러고 나서, Xi-160 < 0 인 데이터에 대해서는 표시를 해놓는다. 그리고 부호순위를 모두 더한다. 밑줄친 부분에 대한 순위는 음수로 계산한다.


W = 1-2+3-4-5+6-7+8-9+10-11+12+13+14+15+16 = 60


만약 W의 값이 너무 크거나 너무 작으면 중위수가 160이라는 귀무가설을 기각하게 된다. 그러면 그 값이 유의하게 큰지 작은지는 어떻게 알 수 있을까? 이를 위해선 우선 H0하에서 W의 분포를 알아야한다. 하지만 실제로 W의 분포를 알기는 매우 어렵고 복잡하다. 이 때 우리가 알 수 있는 것은 W통계량의 평균은 0, 분산은 n(n+1)(2n+1)/6 이라는 것이다. (H0하에서 중위수의 성질을 이용해 평균과 분산을 구할 수 있다.) 이 값들로 중심극한정리를 사용하여 W의 분포를 정규분포로 근사시킨다. 이렇게 할 수 있는 이유는 W가 어떠한 분포를 갖는 값들의 합이기 때문이다. 예를 들어, 이 경우에 H0하에서 위 식의 첫번째 term은 1/2 확률로 1, 1/2 확률로 -1/2 이다. 두 번째 term은 1/2확률로 2, 1/2 확률로 -2이다. 이 값들을 모두 합친 W 통계량은 종모양의 분포가 나올 것이다. 그러므로 중심극한 정리를 적용시킬 수 있다.


n=16이므로, W를 표준화 시키면 Z = 60-0/sqrt((16)(17)(33/6)) = 1.525 이다.


양쪽 검정이므로 유의수준 0.05에서 기각역은 Z>1.96 or Z<-1.96이다. 계산한 z값이 기각역에 포함되지 않으므로 중위수가 160이 아니라는 유의한 증거가 없으므로 H0를 기각하지 못한다. 또한 p-value = 2*P[z > 1.525] 이다.


반응형
반응형

비모수 통계학이란 모집단의 분포를 가정하지 않고, 오직 데이터를 통해서만 데이터를 검정하는 방법을 의미한다. 비모수 통계학은 영어로 non-parametric statistics라 하고, distribution-free 방법이라고도 말한다.


모수적 방법에서 t-test의 예를 들어보면, 기본 가정중의 하나가 바로 모집단의 "정규성" 이다. 모집단이 정규분포가 아니라면 t-test의 신뢰도는 낮아지게 된다. 그러므로 보통 비모수 방법을 사용하는 이유가 바로 모수적 방법에서의 가정이 만족하지 않을 때이다. t-test의 경우에는 모집단에 대하여 정규성 검정을 수행한 후 정규분포가 아니라는 근거가 있을 때는 비모수적 방법을 사용하면 된다.


비모수 통계학의 장점은 아래와 같은 것들이 있다.


  1. 모집단의 분포가 어떻든지 사용할 수 있다.
  2. 모수적 방법에 비해 계산이 간단하며, 적용하기 쉽다.
  3. 관측값에 신뢰성이 적어 단순히 순위를 통해 검정하고 싶을 때 이용하면 좋다.


반면 비모수적 방법은 아래와 같은 단점이 있다.


  1. 모수적 방법으로 검정할 수 있는 데이터에 비모수적 방법을 이용하면, 효율성이 떨어진다.
  2. 표본의 크기가 커질 수록 비모수적 방법의 계산량은 빠르게 늘어난다.


반응형
반응형

회귀분석의 가정


회귀분석에는 데이터에 대하여 어떠한 가정을 합니다. 그 가정하에서만 회귀분석은 유효하다고 할 수 있습니다. 가정이 틀리면 아무리 분석을 하더라도 그것이 타당하지 않게 되는 것입니다.


회귀분석의 가정에는 아래와 같은 것들이 있습니다.


 

  1. 독립변수 X는 사전에 주어진 값으로 간주한다. 즉 독립변수는 미리 결정된 값이거나 고정된 값이다. 이를 비확률변수라고 한다.

  2. 독립변수 X는 측정오차가 없다고 가정한다.

  3. 독립변수 X 별로 Y의 부분모집단이 존재한다고 가정한다. 예를 들어 X=1일 때 Y의 부분모집단이 존재하며 이 부분모집단은 정규분포를 따른다.

  4. Y의 부분모집단의 분산은 같고 이를 라고 한다. (등분산성)

  5. Y의 부분모집단의 모평균은 일직선상에 있다. 이를 선형성의 가정이라고 한다.

  6. Y는 서로 독립이다. e ~ N(0,) 라고 정리할 수 있다. (독립성)



반응형
반응형

직접 표준화


  • 비교하고자하는 집단의 연령별 측도(발생률, 유병률, 사망률 등)는 알려져있지만, 표준화된 인구에서는 어떨지 알아보고 싶을 때 사용한다.
  • 표준화된 인구 구조가 미리 정해져있어야한다. 
  • 표준화된 인구 구조를 정하는 방법에도 여러가지가 있는데, 한국이면 주로 한국 표준 인구를 사용한다. 또는 세계인구를 사용할 수도 있다.


방법 )


1. A집단과 B집단의 연령별 사망률을 알아보고자 할 때, 두 집단 별로 사망률을 표준 인구에 대입시켜 표준 인구에서의 연령별 기대 빈도수를 계산한다.

2. 연령별 기대 빈도수를 모두 합한 후, 표준 집단의 총 인구수로 나누어 표준화율을 구한다.

3. 두 집단의 표준화율을 비교하여 어떤 집단의 사망률이 더 높은지를 판단한다.



간접 표준화


  • 간접 표준화의 경우, 특히 어떤 집단의 발생률, 사망률 등이 표준 집단에 비해 높은지, 낮은지를 판단하기 위해서 사용한다.
  • 또는 두 집단의 발생률, 사망률 등을 비교할 때도 쓰인다.
  • 간접 표준화 방법실제 관찰된 사건 수기대사건 수비교하는 방법이다.
  • (실제 관찰된 사건 수) / (기대사건수) = SIR (또는 사망률일 경우 SMR) 이라고 한다.
  • SIR = Standardized Incidence Ratio, SMR = Standardized Mortality Ratio 의 약자이다.
  • 만약 어떤 집단의 발생률이 표준 집단에 비해 높은 경우 SIR > 1일 것이고, 낮은 경우 SIR < 1 일 것이다.
  • 이 SIR에 표준화 발생률을 곱하면 간접 표준화 발생률이 된다.
  • 즉, 간접표준화발생률 = SIR * 표준화발생률

직접 표준화 방법에 비해 간접표준화 방법이 가지는 방법의 이점

  • 특정 집단의 전체 율만 아는 경우
  • 연령별 율의 신뢰도가 적은 경우
  • 사망자수나 발생자 수가 워낙 적어 값이 불안정한 경우

위와 같은 경우에 간접 표준화 방법은 직접 표준화 방법에 비해 더욱 안정적이고 보수적인 값을 제공한다.

직접 표준화 방법과 간접 표준화 방법의 차이를 직관적으로 정리하면 직접 표준화 방법에서는 비교하고자하는 집단의 발생률을 표준 집단에 가져가서 표준집단에서 기대 발생자수를 구하고, 간접 표준화 방법에서는 표준 집단의 발생률을 비교하고자하는집단으로가져가 기대 발생자수를 구한다. 

직접 표준화 방법의 경우 비교하고자하는 집단의 발생률을 표준 집단으로 가져가는 것이기 때문에 비교하고자하는 집단의 발생률이 불안정하면 안된다. 예를 들어 비교하고자하는 집단의 사람 수가 너무 적다면, 예를 들어 희귀병이 3명중 1명이 발생하였으면 발생률이 0.33이 되어서 이 값은 불안정한 값이된다. 따라서 표본의 수, 발생자 수가 적다면 간접 표준화 방법을 쓰는것이 더 안정적이다. 


간접 표준화 방법 예시


그냥 보기에는 Area2가 사망률이 높아보인다. (5.1% vs 4.1%) 그러나 잘 보면 Area2가 전체적인 연령이 높은 것을 알 수 있다. 이 경우 간접표준화 방법을 이용하여 연령을 보정해보자.



표준 인구집단을 선정한다. 표준 인구집단은 많은 경우에 '대한민국 표준인구'를 사용하지만 이 경우에는 Area1+Area2를 통해 표준 인구를 구성한다. 이렇게 구한 표준 인구의 사망률은 4.6%이다.



Area1과 Area2의 연령별 기대 사망자수를 구한다. 기댓값은 (사람수)x(표준화사망률)로 구한다. 
Area1의 기대 사망자수는 37.79 명이고, Area2의 기대 사망자수는 54.21명이다.

따라서, 
Area1의 SMR = 41/37.79 = 1.08
Area2의 SMR = 51/54.21 = 0.94 이다. 

절대적으로는 Area2의 사람이 더 많이 죽었지만 표준화된 인구를 고려했을 때, Area2의 상대적으로 많이 죽었음을 알 수 있다.

마지막으로 간접표준화사망률을 구하면

Area1의 간접표준화사망률 = 4.6% * 1.08 = 5.0%
Area2의 간접표준화사망률 = 4.6% * 0.94 = 4.3%



참고

http://www.dartmouthatlas.org/downloads/methods/indirect_adjustment.pdf



반응형
반응형

Relative Risk 와 Odds Ratio의 정의


 

 disease

non-disease 

 

 smoker 

20 (a)

80 (b)

100 

 non-smoker 

5 (c)

95 (d)

100 

 

25 

175 

200 


 

Relative Risk는 Risk Ratio 라고도 부르며 줄여서 RR 이라고 부르기도 합니다. 이름에서 알 수 있듯 RR은 Risk의 '비' 를 뜻합니다. 예를 들어, 위 표에서 smoker의 disease에 대한 Risk는 20/100 = 0.2 입니다. 즉 smoker인 경우 질병에 걸릴 확률이 0.2라는 것입니다. 반면 non-smoker의 disease에 대한 Risk는 5/100 = 0.05 입니다. 따라서 smoking의 disease에 대한 Relative Risk는 0.2/0.05 = 4 라고 할 수 있습니다. 이를 식으로 표현하면 (a/a+b)/(c/c+d) 입니다. Relative Risk는 직관적입니다. 담배를 폈을 경우 4배 더 질병에 걸릴 확률이 높다. 라고 직관적으로 해석할 수 있습니다. 


odds ratio는 OR 이라고 부르며 odds의 '비율' 입니다. 따라서 odds ratio를 알기 전에 우선 odds가 무엇인지 알아야합니다. odds는 실패와 성공의 비입니다. 위의 경우에는 smoker의 질병에 대한 odds는  20/80 = 0.25 이고 non-smoker의 질병에 대한 odds는 5/95 = 0.052 입니다. 따라서 odds ratio는 0.25/0.052 는 약 4.8입니다. 이를 수식으로 표현하면 (a/b)/(c/d) = 4.8 입니다. 값을 구하는건 구하는 건데 odds ratio는 직관적으로 해석하기 어렵습니다.



왜 Odds Ratio를 쓸까?


위와 같은 상황 (어떠한 처리군들 간에 질병에 대한 비교를 할 경우) RR을 써도 OR을 써도 상관없습니다. 하지만 중요한 것은 case-control study에서는 relative risk를 쓸 수 없습니다. 즉, case-control study에서는 OR만 씁니다.



Case Control Study란 무엇인가?


Case Control Study는 사례대조연구라고 하는데 우선 네이버 백과에서 정의를 살펴보겠습니다.


연구대상군의 특성을 명확히 하고 그 기본적 구조를 명백히 하기 위해 몇가지 요인을 조절한 대상 control을 골라 제각기 거기에 대해서 동일내용 및 방법으로 조사ㆍ연구를 하는 일종의 비교연구 법이다. [네이버 백과]


말이 어렵게 되어있는데 예를 들어 다음과 같은 상황입니다. 위에서는 smoker 100명, non-smoker 100명을 뽑아서 이들간에 질병의 발생률을 비교했죠. 하지만 아래와 같은 경우에는 병에 걸린사람 100명, 병에 걸리지 않은 사람 100명을 뽑았습니다.  (위에서 병에 걸린 사람의 smoker와 non-smoker의 비가 4:1으므로 여기서도 4:1 정도일 것입니다.) 이렇게 환자군과 대조군을 뽑아서 비교하는 것을 case-control study라고 합니다. 질병의 발생률이 매우 낮은 경우에는 이러한 study가 위와 같은 코호트 연구보다 좋습니다. 


 

 disease

non-disease 

 

 smoker 

80 (a)

45 (b)

 125

 non-smoker 

20 (c)

55 (d)

 75

 

100

100

200


이 경우 smoker의 risk를 구해보면 80/125입니다. 그대로 해석하면 약 65%의 환자가 흡연자가 병에 걸린다는 것입니다. 이는 모순입니다. 왜냐하면 병에 걸린 사람 100명, 병에 걸리지 않은 사람을 100명을 대상으로 RR을 계산한 것이니 병에 걸릴 위험율이 높게 나올 수 밖에 없겠죠. 실제로 RR을 구하면 (80/125) / (20/75) = 2.4 입니다. 샘플이 바뀌면, RR도 바뀐다는 것을 알 수 있습니다. 따라서 이러한 경우에는 RR을 쓸 수 없습니다. 하지만 case-control study에서 OR은 유효합니다. (80/45)/(20/55) = 약 4.91이 나옵니다. 따라서 OR이 RR 보다 더욱 범용적이라고 할 수 있습니다. 


또한 OR은 RR의 근사치로 사용되기도 합니다. OR = (a/b)/(c/d)이고 RR = (a/(a+b))/(c/(c+d)) 입니다. 따라서 a, c가 매우 작은 값이라면 OR을 RR에 근사시킬 수 있습니다. 그러므로 이러한 근사를 사용하면 위와 같은 case-control study에서도 OR을 근사해 RR을 알아볼 수 있는 것입니다.



반응형