카이제곱검정의 이론과 카이제곱의 코딩 실습을 진행했다.
1. 카이제곱검정
> 변수 간 독립성에 대한 귀무가설이 타당한지를 평가하는 검정
> 종속변수가 범주형자료인 경우에 사용하는 분석기법
> 범주형 자료 분석은 적합도 검정(goodness of fit test), 독립성 검정(test of independence), 동질성 검정(test of homogeneity)의 3가지로 분류할 수 있다.
1) 적합도 검정(goodness of fit test)
> 관측값들이 어떤 이론적 분포를 따르고 있는지를 검정
> 한 개의 요인을 대상으로 함
2) 독립성 검정(test of independence)
> 서로 다른 요인들에 의해 분할되어 있는 경우 그 요인들이 관찰값에 영향을 주고 있는지 아닌지, 요인들이 서로 연관이 있는지 없는지를 검정
> 두 개의 요인을 대상으로 함
3) 동질성 검정(test of homogeneity)
> 관측값들이 정해진 범주 내에서 서로 비슷하게 나타나고 있는지를 검정
> 분할표에서 부모집단의 비율이 동일한가를 검정
> 두 개의 요인을 대상으로 함
#유전학자 멘델은 콩 교배에 대한 유전의 이론적 모형으로서 잡종비율을 A : B : C = 2 : 3 : 5 라고 주장하였다.
#이 이론의 진위를 가리기 위해 두 콩 종자의 교배로 나타난 100개의 콩을 조사하였더니
#A형 20개, B형 40개, C형 40개이다.
#이러한 관찰값을 얻었을 때 멘델 유전학자의 이론이 맞다고 할 수 있는지를 유의수준 α = 0.05 에서 검정하기.
# 카이제곱검정 - 적합도 검정
obs <- c(20, 40, 40)
obs.probs <- c(2/10, 3/10, 5/10)
(g.fit <- chisq.test(obs, p=obs.probs))
# 가설설정
# 귀무가설 H0 : 관측값의 도수와 가정한 이론 도수(기대 관측도수)가 동일하다.
# 대립가설 H1 : 적어도 하나의 범주 (혹은 계급)의 도수가 가정한 이론 도수(기대 관측도수)와 다르다.
# 분석결과
# p-value가 0.06948, 유의수준 𝜶 0.05 보다 크므로 귀무가설 H0를채택
# "멘델이 주장한 콩의 잡종비율 이론적 분포는 적합하다"고 판단할 수 있다.
setwd("C:/Users/User/Desktop/data")
click_rate <- read.csv("click_rates.csv")
clicks<-matrix(click_rate$Rate, nrow=3, ncol=2, byrow=TRUE) #clicks라는 3X2행렬을 만든다. byrow = TRUE는 행기준으로 정렬하고, byrow = FALSE는 열기준으로 정렬한다.
clicks
head(clicks)
# 카이제곱검정은 chisq.test() 함수로 수행 -> chisq(chi-squared의 줄임말)
chisq.test(clicks, simulate.p.value = TRUE)
#카이제곱검정은 2X2 뿐만 아니라 3X2, 3X3에서도 검정 가능하다.
#p-value가 유의수준인 0.05보다 크므로 귀무가설 채택한다.
setwd("C:/Users/User/Desktop/data")
raw_data <- c(7, 13, 9, 12, 13, 21, 10, 19, 11, 18, 12, 13)
data_mtx <- matrix(raw_data, byrow=TRUE, nrow=3)
data_mtx
dimnames(data_mtx) <- list("Class" = c("Class1", "Class2", "Class3"),
"Score" = c("ScoreA", "ScoreB", "ScoreC", "ScoreF"))
data_mtx
# addmargins는 행과 열의 합계를 의미한다. 행과 열의 맨 밑과 끝에 Sum이 나와 열과 행들의 합을 보여준다.
addmargins(data_mtx)
# 비례분포를 보여주는 함수 prop.table() / 즉, 빈도비율을 나타내는데 addmargins(data_mtx)를 한 상태에서
# 1행 1열에 있는 값인 7을 158로 나눴을 때 비율이 나온다.
addmargins(prop.table(data_mtx))
# bar plot
# beside=TRUE는 각각의 값마다 막대를 그림(각 스코어마다 막대그래프를 보임)
# legend=TRUE는 오른쪽 상단에 범례를 나타내줌
# ylim은 y축의 범위
barplot(t(data_mtx), beside=TRUE, legend=TRUE,
ylim=c(0, 30),
ylab="Observed frequencies in sample",
main="Frequency of math score by class")
(i.fit <- chisq.test(data_mtx))
# 가설
# 귀무가설 H0 : 두 변수 X와 Y는 서로 독립이다 (관련성이 없다)
# 대립가설 H1 : 두 변수 X와 Y는 서로 독립이 아니다 (관련성이 있다)
#
# 분석결과
# p-value가 0.9667, 유의수준 𝜶 0.05 보다 크므로 귀무가설 H0를 채택
# "학급과 빅데이터 분석 성적 간에는 서로 관련성이 없다.
# 즉 독립적이다."고 판단할 수 있다.
setwd("C:/Users/User/Desktop/data")
row_data = c(50,30,20,50,80,70)
ta <- matrix(row_data, nrow = 2, byrow = T)
dimnames(ta) <- list("성별" = c("남학생", "여학생"),
"DS교과목" = c("통계", "머신러닝", "딥러닝"))
addmargins(ta)
addmargins(prop.table(ta))
barplot(t(ta), beside = TRUE, legend = TRUE,
ylim = c(0,120), ylab="Observed frequencies in sample",
main = "데이터 사이언스 교과목 선호 조사 결과")
'자기개발 > TIL' 카테고리의 다른 글
TIL(Today I Learned) 20200904 (0) | 2020.09.04 |
---|---|
TIL(Today I Learned) 20200903 (0) | 2020.09.03 |
TIL(Today I Learned) 20200902 (0) | 2020.09.02 |
TIL(Today I Learned) 20200901 (0) | 2020.09.01 |
TIL(Today I Learned) 20200831 (0) | 2020.08.31 |
TIL(Today I Learned) 20200830 (0) | 2020.08.30 |
TIL(Today I Learned) 20200829 (0) | 2020.08.30 |
TIL(Today I Learned) 20200827 (0) | 2020.08.28 |
최근댓글