An Amateur Data Scientist

Chi-square test (카이제곱-검정)

|
반응변수가 범주형일 때, 관찰된 빈도가 기대되는 빈도와 차이가 있는지를 검정해보자.

카이제곱-검정

- 각 변수(범주형)에 대한 집단의 분포가 독립인지를 검정
- 관찰도수와 기대도수의 차를 이용하여 카이제곱값을 구하여 검정

Example>
어느 인터넷 쇼핑몰을 방문한 100명을 조사해보니 구매집단이 75명(75%)이고 비구매집단이 (25%)였다. 이 때, 각 집단에 대한 여성과 남성의 비율은 위의 표와 같다. 여성과 남성의 구매 빈도가 다르다고 할 수 있는지 검정해보자.
성별 구매집단 비구매집단 합계
남성 30 20 50
여성 45 5 50
합계 75 25 100

: 성별에 따라 차이가 나지 않는다면, 남성, 여성의 구별 없이 구매집단은 50명의 75%인 37.5명, 비구매집단은 50명의 25%인 12.5명 정도로 기대할 수 있다. 카이제곱검정은 관측도수와 기대도수의 차이를 통해 변수사이의 독립성을 검정한다. (즉, 성별과 구매여부가 독립인가를 검정 )

가설

  • $H_0$ : 성별과 구매여부는 연관성이 없다. (=독립이다.)
  • $H_1$ : 성별과 구매여부는 연관성이 있다. (=독립이 아니다.)

검정통계량

  • $O : $ 관측도수
  • $E : $ 기대도수

자유도

  • $ncol : $ colunm의 개수 (합계 미포함)
  • $nrow : $ row의 개수 (합계 미포함)


각 셀에 기대빈도를 표현한 표는 아래와 같다.

성별 구매집단 비구매집단 합계
남성 30(37.5) 20(12.5) 50
여성 45(37.5) 5(12.5) 50
합계 75 25 100
* 남성의 구매집단 기대도수 = 100 × 50/100 × 75/100 = 37.5
* 여성의 비구매집단 기대도수 = 100 × 50/100 × 25/100 = 12.5
  • 검정통계량

  • 자유도

  • p-value

: 유의수준 0.05에서 귀무가설을 기각, 대립가설(성별과 구매여부는 독립이 아니다. 성별에 따른 구매여부의 분포가 차이가 있다.)를 채택

예제 R 코드

1
2
3
4
5
6
Mat <- matrix(c(3020455), ncol=2, byrow=TRUE)
colnames(Mat) <- c("구매""비구매")
rownames(Mat) <- c("남성""여성")
 
Xsq <- chisq.test(Mat, correct=FALSE)) # No continuity correction
sum((Xsq$observed - Xsq$expected)^2 / Xsq$expected)  # 검정통계량
cs

T-test (T-검정)

|
반응변수가 연속형일 때, 그룹간의 평균의 차이를 검정해보자.

T-검정

  • 일표본 T-검정(One sample T-test)
    : 같은 모집단에서 추출된 샘플을 통해, 모집단의 평균이 특정 상수와 같은지를 검정
  • 독립 표본 T-검정(Two sample T-test)
    : 두 모집단에서 추출된 샘플을 통해, 두 그룹의 모평균의 차가 특정한 상수와 같은지를 검정
  • 대응 표본 T-검정(Paired sample T-test)
    : 대응되는 두 모집단에서 추출된 샘플을 통해, 대응 표본의 모평균의 차가 특정한 상수와 같은지를 검정

Point1. 검정하고자 하는 대상에 따라 T-검정의 방법이 다르며,
     평균이 주 관심사이기 때문에 반응변수는 연속형이다.
Point2. “모집단의 분포는 정규분포이다.” 가정

일표본 T-검정

Example>
스타벅스의 자바 칩 프라푸치노는 Tall/355ml(12floz)에 340kcal라고 알려져있다. 사실인지 확인하기 위해, 전국 스타벅스 매장에서 랜덤으로 50개의 매장에서 50개의 자바 칩 프라푸치노의 칼로리를 측정했다.

가설

  • $H_0$ : 스타벅스 자바 칩 프라푸치노 = 340. ($\mu = 340$)
  • $H_1$ : 스타벅스 자바 칩 프라푸치노 ≠ 340. ($\mu ≠ 340$)

검정통계량

  • $\bar{X} : $ 표본 평균 - 랜덤으로 선택된 자바 칩 프라푸치노의 평균 칼로리
  • $\mu : $ 모평균 - 340
  • $s : $ : 표준편차
  • $n : $ : 관측치 개수 - 50

예제 R 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
set.seed(123)
 
#### 일표본 T-test (One sample T-test) ####
 
### 예제 데이터 생성 (결과 비교를 위해 2개의 표본 생성)
# 표본으로 뽑힌 스타벅스의 자바 칩 프라푸치노를 통해, 자바 칩 프라푸치노가 340kcal인지 검증하려 한다.
# starbucks1 : 실제 평균이 340kcal인 모집단에서 뽑힌 표본
# starbucks2 : 실제 평균이 345kcal인 모집단에서 뽑힌 표본 
starbucks1 <- rnorm(n=50, mean=340, sd=5)
starbucks2 <- rnorm(n=50, mean=345, sd=5)
summary(starbucks1)
summary(starbucks2)
 
### T-test
t.test(x=starbucks1, mu=340, alternative="two.sided"# H0 accept
t.test(x=starbucks2, mu=340, alternative="two.sided"# H0 reject
cs


- t.test(x=starbucks1, mu=340, alternative=”two.sided”)
: 검정통계량 t=0.2628, p-value=0.7938, 유의수준 0.05에서 귀무가설 채택, 대립가설 기각

- t.test(x=starbucks2, mu=340, alternative=”two.sided”)
: 검정통계량 t=8.9528, p-value=<.0001, 유의수준 0.05에서 귀무가설 기각, 대립가설 채택

독립 표본 T-검정

Example>
스타벅스의 초콜릿 크림 칩 프라푸치노는 370kcal, 이디야의 초콜릿 칩 플랫치노는 384kcal라고 알려져있다. 두 브랜드 커피의 칼로리 차이가 14kcal 인지 확인하기 위해, 전국 스타벅스와 이디야에서 각각 랜덤으로 50개의 매장에서 50개의 프라푸치노와 플랫치노의 칼로리를 측정했다.

가설

  • $H_0$ : 스타벅스 초콜릿 크림 칩 프라푸치노 - 이디야 초콜릿 칩 플랫치노 = 14. ($\mu_1-\mu_2 = 14$)
  • $H_1$ : 스타벅스 초콜릿 크림 칩 프라푸치노 - 이디야 초콜릿 칩 플랫치노 ≠ 14. ($\mu_1-\mu_2 ≠ 14$)

검정통계량

  • $\bar{X} : $ 표본 평균 - $\bar{X_1}$ : 스타벅스 초콜릿 크림 칩 프라푸치노의 평균,
           $\bar{X_2}$ : 이디야 플랫치노의 평균
  • $c : $ 모평균의 차를 비교할 특정 상수 - 14
  • $s : $ 표준 편차
  • $n : $ 관측치 개수 - $n_{1} = n_{2}$ : 50

예제 R 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
set.seed(123)
 
#### 독립 표본 T-test (Two sample T-test) ####
 
### 예제 데이터 생성  (결과 비교를 위해 이디야의 2개 표본 그룹 생성)
# 표본으로 뽑힌 스타벅스의 초콜릿 크림 칩 프라푸치노와 이디야의 초콜릿 칩 플랫치노를 통해,
# 프라푸치노와 플랫치노의 칼로리의 차이가 14kcal인지 검증하려 한다. 
# starbucks : 실제 평균이 370kcal인 모집단에서 뽑힌 표본
# ediya1 : 실제 평균이 384kcal인 모집단에서 뽑힌 표본
# ediya2 : 실제 평균이 374kcal인 모집단에서 뽑힌 표보
starbucks <- rnorm(n=50, mean=370, sd=5)
ediya1 <- rnorm(n=50, mean=384, sd=5)
ediya2 <- rnorm(n=50, mean=370, sd=5)
 
### T-test
t.test(x=ediya1, y=starbucks, mu=14, alternative="two.sided")
t.test(x=ediya2, y=starbucks, mu=14, alternative="two.sided")
cs


- t.test(x=ediya1, y=starbucks, mu=14, alternative=”two.sided”)
: 검정통계량 t=0.61157, p-value=0.5422, 유의수준 0.05에서 귀무가설 채택, 대립가설 기각

- t.test(x=ediya2, y=starbucks, mu=14, alternative=”two.sided”)
: 검정통계량 t=-16.116, p-value=<.0001, 유의수준 0.05에서 귀무가설 기각, 대립가설 채택

대응 표본 T-검정

Example>
어느 학교에서 토론수업이 언어능력을 향상시키는지에 대해 알아보고자, 400명의 학생을 대상으로 토론수업을 실시한 후 수업전, 후의 언어능력을 측정하였다. 토론수업이 효과가 있는지 검정해보자.

※ 대응 표본 T-검정은 표본이 짝지어 있으므로, 대응 개체의 차이가 독립된 하나의 표본이 될 수 있다 (ex. A학생의 사후 점수 - A학생의 사전 점수 = A학생의 사전, 사후 점수의 차).
즉, 일표본 T-검정과 같다.

가설

  • $H_0$ : 수업 후 - 수업 전 = 점수차 = 0, 토론수업의 효과가 없다. ($\mu_{after}-\mu_{before} = d = 0$)
  • $H_1$ : 수업 후 - 수업 전 = 점수차 > 0, 토론수업의 효과가 있다. ($\mu_{after}-\mu_{before} = d > 0$)

검정통계량

  • $\bar{D} : $ 대응표본 차이의 평균 - 점수차이의 평균
  • $d : $ 모평균 차이 - 0
  • $s : $ : 차이의 표준편차
  • $n : $ : 관측치 개수 - 50

예제 R 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
set.seed(123)
 
#### 대응 표본 T-test (Paired sample T-test) ####
 
### 예제 데이터 생성 
# 토론수업이 언어능력에 끼치는 영향을 보기 위해, 
# 400명의 학생을 대상으로 토론수업 전과 후의 언어능력을 측정하였다. 
# 토론수업 전과 후의 점수는 매치가 되어있다. (짝이 있다.)
before <- runif(n=400, min=25, max=90)
diff <- runif(n=400, min=-2, max=5)
after <- before + diff 
 
### T-test
t.test(x=after, y=before, mu=0, alternative="greater", paired=TRUE)
t.test(x=diff, mu=0, alternative="greater")
cs


- t.test(x=after, y=before, mu=0, alternative=”greater”, paired=TRUE)
- t.test(x=diff, mu=0, alternative=”greater”)
: 검정통계량 t=14.568, p-value=<.0001, 유의수준 0.05에서 귀무가설 기각, 대립가설 채택

Statistical hypothesis test(통계적 가설·검정)

|
데이터 분석에 근간이 되는 통계적 가설·검정과 용어에 대해 알아보자.

독립변수 & 종속변수

  • 독립변수(Independent variable)
    = 설명변수(Explanatory variable), 예측변수(Predictor variable), 위험인자(Risk factor)
    : 연구자가 의도적으로 변화시키는 변수로, 입렵값이나 원인을 나타낸다.

  • 종속변수(Dependent variable)
    = 반응변수(Response variable), 결과변수(Outcome variable), 표적변수(Target variable)
    : 독립변수의 변화에 따라 어떻게 변하는지 알고 싶어하는 변수로, 결과나 효과를 나타낸다.


귀무가설 & 대립가설

  • 귀무가설(Null hypothesis, $H_0$)
    : 증명하고자 하는 실험과 반대되는 입장, 증명되기 전까지는 효과도 없고 차이도 없다는 영가설

  • 대립가설(Alternative hypothesis, $H_{1}$)
    : 귀무가설의 반대로, 연구자가 실험을 통해 규명하고자 하는 가설

    Ex)
    - $H_0$ : 새로운 신약은 알레르기에 효과가 없다.
    - $H_1$ : 새로운 신약은 알레르기에 효과가 있다.

모집단 & 표본집단 / 모수 & 통계량

  • 모집단(Population)
    : 어떤 정보를 얻고자 하는 전체 대상 또는 전체 집합

  • 표본집단(Sample)
    : 모집단으로 부터 추출된 모집단의 부분 집합

  • 모수(Parameter)
    : 모집단의 특성을 수치로 나타낸 값 (ex. 평균 $\mu$, 분산 $\sigma^2$)

  • 통계량(Statistic)
    : 표본의 특성을 수치로 나타낸 값 (ex. 표본 평균 $\hat{\mu} = \bar{X}$, 표본 분산 $\hat{\sigma^2} = s^2$)
    ※ hat 기호는 추정량을 뜻한다.

일반적으로, 전수조사가 아닌 이상 모집단에서 모수를 구하기가 어렵다. 결국, 데이터 분석의 목적은 표본집단에서 통계량을 구해 모집단의 모수를 추론하는 것이다.

가설·검정

Q1. A학교 1학년 평균키는 162.3cm이다. 전국 1학년 평균키는 162.0cm로 알려져 있을때,
A학교 1학년의 평균키는 160.0cm보다 크다고 할 수 있는가?

A1. 0.3cm의 차이면 크다고 할 수 있지 아닐까?, 0.3cm 정도는 크다고 하기엔 부족하지 아닐까?

Q2. "0.3cm의 차이는 유의하다." 주장을 신뢰하기 위해서는 어떠한 조건이 있으면 좋을까?
A2. 10명의 평균키보다는 10000명의 평균키는 어떨까?, 사람의 키가 아닌 콩의 크기에서 0.3cm는 유의할 것 같은데??

: 문제를 인식하여 가설(hypothesis)를 세우고, 이를 확인하는 과정을 검정(test)라고 한다. 가설·검정을 할 때, 위의 상황처럼 고려할 사항들이 몇가지 있다.

가설(hypothesis)

  • $H_0$ : A학교 1학년의 평균키는 162.0cm 이다. ($\mu_1 = 162.0$)
  • $H_1$ : A학교 1학년의 평균키는 162.0cm 보다 크다. ($\mu_1 > 162.0$)


검정(test)

  • 기각역(rejection region, $\alpha$)
    : 귀무가설이 맞다는 가정하에, 귀무가설이 틀리다고 할 기준 영역
    (즉, 관측된 통계량이 기각역에 포함되면 귀무가설 기각, 대립가설 채택)
  • 채택역($1-\alpha$)
    : 귀무가설이 맞다는 가정하에, 귀무가설이 맞다고 할 기준 영역
    (즉, 관측된 통계량이 채택역에 포함되면 귀무가설 채택, 대립가설 기각)
  • 유의확률(p-value)
    : 귀무가설이 맞다는 전제하에, 관측된 통계량과 같거나 더욱 극단적인 통계량이 나올 확률
    (즉, 기각역보다 유의확률이 작다면, 귀무가설 기각, 대립가설 채택)

기각역과 채택역은 분석가가 조정하는 부분이며, 유의확률은 자료로부터 계산된다.