본문 바로가기
Database & Bigdata/공공 빅데이터 청년 인턴십

[DAY 5] R로 배우는 통계 이해 - 통계적 실험과 유의성 검정

by jionee 2020. 8. 28.
SMALL

[ 4.2 가설 검정 ]

1. 가설 검정

2. 유의수준 설정

3. 검정방법 설정

4. P값 산출

5. P값 > 유의수준 이면 귀무가설 채택(H0)

    P값 < 유의수준 이면 대립가설 채택(H1)

 

- 가설검정

가설검정 혹은 유의성 검정은 전통적인 통계분석 방법

제한된 데이터로 주어진 실험결과를 모집단에 적용하려는 의도 

관찰된 효과가 우연에 의한것인지 여부를 알아내는 것

가설 수립 -> 실험 설계 -> 데이터 수집 -> 추론 및 결론 도출

 

- A/B 검정

두 처리 방법/제품/절차 중 어느 쪽이 우월하다는 것을 입증하기 위해 실험군을 두 그룹으로 나눠 진행하는 실험

 

처리군 : 특정 처리에 노출된 대상들의 집단

대조군 : 어떠한 처리도 하지않은 대상들의 집단

 

- 귀무가설 / H0 영가설

우연에 의한 결과라는 가설

ex) 그룹 A와 B의 평균은 차이가 없음

 

- 대립가설 / H1

귀무가설과 대조, 증명하고자 하는 가설

ex) 그룹 A와 B의 평균은 차이가 있음

 

- 일원 가설 검정

방향성을 고려한 대립 가설. 한쪽 꼬리 가설 검정

ex) B는 A보다 크다

 

- 이원 가설 검정

양쪽 꼬리 가설 검정

ex) A와 B는 다르다

 

 

[ 4.4 통계적 유의성과 p값 ]

통계적 유의성 : 결과가 우연히 일어난 것인지 or 우연히 일어날 수 없는 극단적인 것인지를 판단하는 방법

( 우연히 일어날 수 없다면 통계적으로 유의하다고함)

 

p-value : 결과가 우연에서 비롯될 확률

 

유의 수준 : 우연히 발생한 것인지, '진짜 특별한' 것인지를 결정하는 기준 

(보통 0.05를 기준으로 하나 절대적이진 않음)

ex) 유의 수준 0.05 , p value 0.05 이하 -> 귀무가설 기각 대립가설 채택

 

- 유의 수준 특징

상관관계가 '있다', '없다'의 기준

오류를 허용할 범위를 설정하는 값

유의수준 0.1 = 90% 믿을 수 있다(신뢰수준)

유의수준과 신뢰수준은 반비례 관계 (유의수준이 작아질수록 신뢰수준은 높아짐

보통 유의수준 0.05(95% 신뢰수준)를 사용하지만 데이터에 노이즈가 많으면 유의수준 0.1 (90% 신뢰수준) 고위험 분야에서는 유의수준 0.01 ( 99% 신뢰수준)이 필요할 수 있음

통계분석 결과 중 가장 중요한 오류가 나올 수 있는 확률인 유의확률

유의수준과 분석결과 나온 p값을 비교해 가설을 평가하는 것이 가설검정

 

- 오류

제 1종 오류(H0가 참인데 기각하는 경우) : 죄 없는 피의자 -> 죄 있다

어떤 효과가 우연히 발생한 것인데, 그것이 사실이라고 잘못 판단하는 경우

 

제 2종 오류 (H0가 거짓인데 기각하지 않는 경우) : 죄 있는 피의자 -> 죄 없다

어떤 효과가 실제로 있는 것인데, 우연히 발생한 것이라고 잘못 판단하는 경우

 

[ 4.5 t 검정 ]

t 검정 : 관찰된 효과가 정상적인 랜덤 변위 범위 내에 있는 지 여부를 판단하여 두 집단의 차이가 유의미한 지 검정 

  • 두 집단의 평균치를 비교하는 가장 기초적인 방법 한 개의 독립변인과 한 개의 종속 변인 간의 관계를 분석하는 통계 기법

  • t-검정은 두 모집단이 정규분포를 따른다는 기본 가정이 필요 

- t-검정 과정

1. t-value와 자유도(n-1)구한다. n은 표본의 수를 의미

2. 자유도(n-1)의 t-분포를 꾸함

3. t-분포에서 t-value의  위치를 찾아 p-value를 계산

4. p-value의 값을 유의수준(0.05)와 비교

 

 

- t-검정 예제

A페이지에 사용자가 머무는 시간이 B페이지보다 유의미하게 작은 지 검정

t.test(Time~Page,data=session_times,alternative="less")

종속변수 : Time

설명변수 : Page

데이터 : session_times

일원 t 검정 : alternative="less"

 

* alternative=""

two.sided : 주어진 평균과 샘플이 단지 다르다는 것을 대립가설(H1)으로 두고자 할 때 사용(default 값)

greater :샘플이 주어진 평균보다 크다는 것을 대립가설(H1)을 두고자 할 때 사용

less : 작다는 것을 대립가설(H1)로 두고자 할 때 사용

 

alternative hypothesis : true difference in means is less than 0

-> page A와 page B의 time 값 평균의 실제 차이가 0보다 작음

 

p-value = 0.1408

유의확률(0.1408) > 유의수준(0.05) -> 귀무가설 채택

 

[ 4.6 자유도 ]

자유도  : 표본의 크기 -1

  • 표본을 통해 모집단의 분산 추정 시 분모에 n을 사용하면 살짝 아래쪽으로 편향 발생
  • 이때, 분모에 n-1을 사용하면 추정값에 편향이 생기지 않음
  • 회귀에서 범주형 변수들을 n-1 지표 혹은 더미 변수로 요인화할 때 많이 사용

 

[ 4.7 분산분석 ]

단일 표본 검정 : 데이터 하나만으로 수행하는 t-검정

두 표본 t-검정 : 2개의 데이터에 대해 수행하는 t-검정 ( 기본 개념과 절차가 단일 표본 t-검정과 비슷 )

분산 분석 : 3개 이상이 집단을 비교하는 데 사용

 

- 분산 분석 

A/B 검정 말고, 세 개 이상의 여러 그룹 간의 통계적 유의미한 차이를 검정하는 통계적 절차

(여러 그룹 간 비교 시, 한쌍 씩 비교하는 횟수가 늘어날 수록 우연히 일어난 일에 속할 확률이 커짐 -> 분산 분석으로 여러 그룹을 총괄 검사할 수 있음)

 

- F 통계량

두 그룹을 비교하기 위해 F 통계량을 기반으로 한 ANOVA 통계 검정

F 통계량은 잔차 오차로 인한 분산과 그룹 평균의 분산에 비율을 기초로 함. 이 비율이 높을 수록 통게적으로 유의미

f-value = 집단 간 분산 / 집단 내 분산

H0 : 그룹간 차이가 없다

H1 : 그룹간 차이가 있다

 

집단 간 분산은 크면서 집단 내 분산이 작을 수록 F 통계량이 커짐  ->  집단 간 유의미한 차이가 명확해 짐

집단 간 분산은 작으면서 집단 내 분산이 클수록 F 통계량이 작아짐 ->  집단 간 유의미한 차이가 명확하지 않음

 

일원 분산 분석 : 독립 변수가 하나일 때 분산 분석

이원 분산 분석 : 두 개 이상의 독립 변수가 있고 상호 작용 효과를 확인해야 할 때 이원 분산 분석 실시

 

 

- R함수 aov()를 이용한 분산 분석 예

summary(aov(Time~Page,data=four_sessions))
oneway.test(four_sessions$Time~four_sessions$Page,var=T)

 

df : 자유도

sum sq : 제곱합

mean sq : 평균 제곱

F value : F 통계량

 

 

[ 4.8 카이 제곱 검정 ]

- 카이제곱검정

일반적으로 변수 간 독립성에 대한 귀무가설이 타당한지를 평가

종속변수가 범주형 자료인 경우에 사용하는 분석 기법

자료 분석은 크게 적합도 검정, 독립성 검정, 동질성 검정 3가지로 분류 가능

 

- R함수 chisq.test() 함수로 카이제곱검정 수행 예

clicks <- matrix(click_rate$Rate, nrow=3, ncol=2, byrow=TRUE)
head(clicks) // 뉴스 헤드라인 별 클릭 수 데이터

 

 

value = 0.466

유의확률(0.466) > 유의수준(0.05) -> 귀무가설 채택 (랜덤으로 얻을 수있는 결과임. 독립적)

 

 

- 적합도 검정

관측값들이 어떤 이론적 분포를 따르고 있는지를 검정

한 개의 요인을 대상으로 함

 

- 독립성 검정

서로 다른 요인들에 의해 분할되어 있는 경우 그 요인들이 관찰값에 영향을 주고 있는지 아닌지, 요인들이 서로 연관이 있는지 없는지를 검정

두개의 요인을 대상으로 함

 

- 동질성 검정

관측값들이 정해진 범주 내에서 서로 비슷하게 나타나고 있는지를 검정

속성 A,B를 가진 부모집단 각각으로부터 정해진 표본의 크기만큼 자료를 추출하는 경우에 분할표에서 부모집단의 비율이 동일한가를 검정

 

 

  • 귀무가설 : '관련이 없다'는 형태에 가설

    • 두 변수가 독립

    • 두 변수의 평균에 차이가 없음

    • 동전을 던졌을 때 앞면이 나올 확률과 뒷면이 나올 확률에 차이가 없음

    • 특정 약이 질병 치료에 효과가 없음

    • 올해 제품의 생산량과 작년의 생산량이 같음

  • 대립가설 : '관련이 있다'는 형태의 가설

    • 올해 생산량은 작년의 생산량과 다르다(크거나 작다)

    • 올해 생산량은 작년의 생산량보다 작다
    • 특정 약이 질병 치료에 효과가 있다
    • 두 변수가 독립이 아니다
    • 두 변수의 평균에 차이가 있다

 

- 적합도 검정 이론 & 예시

k개의 범주(또는 계급)을 가지는 한 개의 요인(factor)에 대해 어떤 이론적으로 분포를 따르고 있는지를 검정

실제 관측도수와 기대 관측도수의 차이를 카이 제곱 검정 통계량을 활용해 가정한 확률모형에 적합한지를 평가

 

귀무 가설 H0 : 관측값의 도수와 가정한 이론 도수(기대 관측 도수)가 동일

대립 가설 H1 : 적어도 하나의 범주(또는 계급)의 도수가 가정한 이론 도수(기대 관측 도수)가 다름

 

검정 통계량 

검정방법

 

 

예제 )

잡종 비율이 A:B:C = 2:3:5라고 주장 (이론)

100개의 콩 잡종비율을 조사했더니 A형 20개, B형 40개, C형 40개(

이론이 맞는지 검증 (유의수준 a=0.05)

obs <- c(20, 40, 40)  // 잡종 콩 개수
obs.probs <- c(2/10, 3/10, 5/10) // 잡종 콩 비율
(g.fit <- chisq.test(obs, p=obs.probs))

p-value = 0.069

유의확률(0.069) > 유의수준(0.05) -> 귀무가설 채택 

멘델이 주장한 콩의 잡종 비율 이론적 분포는 적합

 

 

 

- 독립성 검정 이론 & 예시

두 개의 범주형 변수/요인이 서로 연관성이 있는지, 상관이 없는지, 독립적인지를 카이제곱 검정을 통해 통계적으로 판단

ex) 원인-결과, 학력이라는 범주형 변수(요인)  -  연소득이라는 범주형 변수(요인) 간의 관련성

 

 

독립성 검증에는 카이제곱 통계량 사용

귀무가설 H0가 사실일 때 자유도(m-1)(n-1)인 카이제곱분포에 근사

검정통계량 카이제곱은 각 범주의 기대도수가 5이상인 경우에 사용하는 것이 바람직 (5미만인 경우 주의 필요)

관측도수 = 기대도수 이면 검정통계량 값이 0 (반대로 차이가 크면 검정통계량 값 또한 커짐)

 

귀무가설 H0 : 두 변수 X와 Y는 서로 독립 (관련성이 없다)

대립가설 H1 : 두 변수 X와 Y는 서로 독립이 아님( 관련성이 있다)

 

검정통계량

 

 

검정방법

 

예제) 학급(class1, class2,class3)과 빅데이터 분석 성적(score A,B,C,F) 간의 관령성이 있는지를 조사한 아래의 분할표를 사용해 유의수준 a=0.05로 검정

raw_data<- c(7,13,9,12,13,21,10,19,11,18,12,13)
data_mtx <- matrix(raw_data,byrow=TRUE,nrow=3) // 행우선 3줄
data_mtx // data_mtx 생성

 

dimnames(data_mtx) <- list("Class"=c("Class1","Class2","Class3"), // 열이름
                           "Score"=c("ScoreA","ScoreB","ScoreC","ScoreF")) // 행이름
data_mtx

 

addmargins(data_mtx)

addmargin(table객체, margin=합구하는 방식) :합을 구하는 함수

margin값이 없으면 행과 열의 합

1을 넣으면 열의 합

2를 넣으면 행의 합

 

addmargins(prop.table(data_mtx))

prop.table(table(객체명&변수명)) : 빈도비율을 구할 수 있는 함수객체 안 데이터들의 각 비율을 구해준다

 

 

barplot(t(data_mtx), beside=TRUE, legend=TRUE, 
        ylim=c(0, 30), // y축 값
        ylab="Observed frequencies in sample",  // y값 이름
        main="Frequency of math score by class") // 제목

 

(i.fit <- chisq.test(data_mtx)) 

 

1-pchisq(q=c(1.3859),df=6,lower.tail=TRUE)// 카이제곱분포의 누적분포 함수를 이용한 p-value 계산

p-value = 0.96

유의확률(0.96) > 유의수준(0.05) -> 귀무가설 채택 

학급과 빅데이터 분석 성적 간에는 서로 연관성 X

댓글