귀무 가설 : 어떠한 가설이 관련성이 없다고 가정한다. 대립 가설 : 어떠한 가설이 관련성이 있다고 가정한다. X-squared: 어떠한 기준점을 갖고 통계량을 구해서 대립/귀무 가설중에 고르는 지표 p-value (유의 확률) : 귀무 가설이 맞다는 전제하에 표본에서 실제로 관측된 통계치와 같거나 더 극단적인 통계치가 관측될 확률. 특정값(0.05,0.01등)보다 작을 경우 귀무가설을 기각한다.(대립 가설 채택) 하지만 높게 나오면 귀무가설을 채택한다.
척도별 기술 통계량 구하기
1 2 3
data <- read.csv("2_day/data/descriptive.csv", stringsAsFactors = FALSE)
## resident gender age level ## Min. :1.000 Min. :0.00 Min. :40.00 Min. :1.000 ## 1st Qu.:1.000 1st Qu.:1.00 1st Qu.:48.00 1st Qu.:1.000 ## Median :2.000 Median :1.00 Median :53.00 Median :2.000 ## Mean :2.233 Mean :1.42 Mean :53.88 Mean :1.836 ## 3rd Qu.:3.000 3rd Qu.:2.00 3rd Qu.:60.00 3rd Qu.:2.000 ## Max. :5.000 Max. :5.00 Max. :69.00 Max. :3.000 ## NA's :21 NA's :13 ## cost type survey pass ## Min. :-457.200 Min. :1.00 Min. :1.00 Min. :1.000 ## 1st Qu.: 4.425 1st Qu.:1.00 1st Qu.:2.00 1st Qu.:1.000 ## Median : 5.400 Median :1.00 Median :3.00 Median :1.000 ## Mean : 8.752 Mean :1.27 Mean :2.61 Mean :1.432
#유의확률 해석 방법 -유의확률(P-value: 0.408) -유의확률(p-value: 0.4085)이 0.05 이상이기 때문에 유의미한 수준(a = 0.05)에서 귀무가설을 기각할 수 없다. -따라서, 귀무가설을 기각할 수가 없고, 부모의 학력 수준과 자녀의 대학진학 여부와는 관련성이 없는 것으로 분석됨.
5. 집단간 차이 분석
1 2 3 4 5 6 7 8
N <- 20000 # 표본 크기(N) > 신뢰수준 95%의 신뢰구간 구하기 X <- 170.1 # 표본 평균(X) S <- 2 # 표본 표준편차(S)
low <- X - 1.96 * S/sqrt(N) # 신뢰구간 하한값 high <- X + 1.96 * S/sqrt(N) # 신뢰구간 하한값
low; high
1
## [1] 170.0723
1
## [1] 170.1277
1 2 3
# 신뢰수준 95%의 모평균 신뢰구간: 170.0723 <= m <= 170.1277 # 표본오차 구하기 (low - X) * 100# -2.771
1
## [1] -2.771859
1
(high - X) * 100# 2.771
1
## [1] 2.771859
1
# 표본오차는 +- 2.77
(1) 단일집단 비율 검정
데이터셋 CS교육 데이터 연구환경 예시 2018년도 CS 시, 고객의 불만율 20%였음 이를 개선하기 위해, 2019년도 CS 150명 고객 대상 설문결과 20명만 불만을 가지고 있음 Q: 기존 20%보다 불만율이 낮아졌을까? 귀무가설: 기존 2018년도 고객 불만율과 2019년도 CS교육 후, 불만율에 차이가 없다. 연구가설: 기존 2019년도 고객 불만율과 2019년도 CS교육 후, 불만율에 차이가 있다.
# 이항분포 비율 검정 # 명목척도의 비율을 바탕으로 binom.test() 함수를 이용하여 이항분포의 양측 검정을 통해, 검정 통계량을 구한 후 이를 이용하여 가설 검정 # binom.test() binom.test(c(136, 14), p = 0.8)
1 2 3 4 5 6 7 8 9 10 11
## ## Exact binomial test ## ## data: c(136, 14) ## number of successes = 136, number of trials = 150, p-value = 0.0006735 ## alternative hypothesis: true probability of success is not equal to 0.8 ## 95 percent confidence interval: ## 0.8483615 0.9480298 ## sample estimates: ## probability of success ## 0.9066667
1 2
# 방향성이 없는 양측 검정 binom.test(c(136, 14), p = 0.8) #p는 확률
1 2 3 4 5 6 7 8 9 10 11
## ## Exact binomial test ## ## data: c(136, 14) ## number of successes = 136, number of trials = 150, p-value = 0.0006735 ## alternative hypothesis: true probability of success is not equal to 0.8 ## 95 percent confidence interval: ## 0.8483615 0.9480298 ## sample estimates: ## probability of success ## 0.9066667
1 2 3 4 5
# 만족고객 136명을 대상으로 95% 신뢰 수준에서 양측 검정을 실시한 결과 검정 통계량(p-value)값은 0.00006735로 유의수준 0.05보다 작기 때문에 기존 만족률(80%)과 차이가 있다고 볼 수 있음. # 다만, 여기서 주의해야 할 점은, 우리가 원하는 답! 2018년보다 만족도가 증가했는지, 감소했는지, 방향성은 알지 못한다. 방향성을 알기 원한다면 이 때에는 단측검정을 사용한다.
# 방향성이 있는 단측 검정 binom.test(c(136, 14), p = 0.8, alternative = "greater", conf.level = 0.95)
1 2 3 4 5 6 7 8 9 10 11
## ## Exact binomial test ## ## data: c(136, 14) ## number of successes = 136, number of trials = 150, p-value = 0.0003179 ## alternative hypothesis: true probability of success is greater than 0.8 ## 95 percent confidence interval: ## 0.8579426 1.0000000 ## sample estimates: ## probability of success ## 0.9066667
alternative = “greater”의 뚯은, 150명 중에서 136명의 만족 고객이 전체비율의 80%보다 더 큰 비율인가를 검정하기 위한 속성임. p-value 값은 0.0003179로 유의수준 0.05보다 작기 때문에 기존 만족률보다 80% 이상의 효과를 얻을 수 있음. 결과적으로 기존 20%보다 불만율이 낮아졌다고 할 수 있음 따라서, 귀무가설이 기각되고, 연구가설이 채택됨 = CS교육에 효과가 있다고 볼 수 있음.
(2) 단일표본 T 검정 :그륩간에 비교하려고함. 정규분포를 따른다.
-데이터가 주어지면 T검정을 바로 시행히지는 않는다.
shapiro.test()를 통해서 정규분포를 따르는지 따르지 않는지에 따라 검정 방법이 달라집니다.
정규분포를 따른다면 t.test() / 정규분포를 따르지 않는다면 wilcox.test()를 시행합니다.
1 2 3 4 5 6 7 8
# 연구환경 # A 동영상 앱의 평균 사용시간이 5.2시간으로 발표가 된 상황에서 B 동영상의 평균 사용시간과 차이가 있는지를 검정하기 위해 B 업체 고객의 설문조사를 실시한 하였다. 150명의 설문조사를 실시한 데이터를 가지고 검정을 실시한다.
# 연구가설 # 귀무가설, A 동영상 앱과 B 동영상 앱의 평균 사용시간에 차이가 없다. # 대립가설, A 동영상 앱과 B 동영상 앱의 평균 사용시간에 차이가 있다. time_data <- read.csv("2_day/data/one_sample.csv", stringsAsFactors = FALSE) str(time_data)
1 2 3 4 5
## 'data.frame': 150 obs. of 4 variables: ## $ no : int 1 2 3 4 5 6 7 8 9 10 ... ## $ gender: int 2 2 2 2 2 2 2 2 2 1 ... ## $ survey: int 1 0 1 1 1 1 1 1 0 1 ... ## $ time : num 5.1 5.2 4.7 4.8 5 5.4 NA 5 4.4 4.9 ...
1
summary(time_data$time) # NA 41개임 확인
1 2
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's ## 3.000 5.000 5.500 5.557 6.200 7.900 41
1 2
# NA를 제외한 평균 (1) mean(time_data$time, na.rm = TRUE)
1
## [1] 5.556881
1 2 3
# NA 제거 후 새로운 데이터 생성 (2) time_data2 <- time_data[is.na(time_data$time) == FALSE, ] #결측치 제거 mean(time_data2$time)
# t-test 양측 검정 & 단측 검정 t.test(time_data2$time, mu = 5.2) # 차이가 있다 없다 검정. 다른 집단의 평균은 5.2 기때문에 mu=5.2로 넣음
1 2 3 4 5 6 7 8 9 10 11
## ## One Sample t-test ## ## data: time_data2$time ## t = 3.9461, df = 108, p-value = 0.0001417 ## alternative hypothesis: true mean is not equal to 5.2 ## 95 percent confidence interval: ## 5.377613 5.736148 ## sample estimates: ## mean of x ## 5.556881
1 2 3 4 5
# 유의 수준이 0.05보다 작기 때문에 귀무가설을 기각하고 대립가설을 채택한다. # 대립가설: A 앱 평균 시청 시간과 B 앱 평균 시청 시간의 차이가 있다. #mu=5.5로 하면 p-value가 크게 늘어난다. 이것은 mu와 표본평균이 거의비슷하다는 뜻이다.
t.test(time_data2$time, alter = "greater", mu = 5.2) # 5.2보다 크다 작다
1 2 3 4 5 6 7 8 9 10 11
## ## One Sample t-test ## ## data: time_data2$time ## t = 3.9461, df = 108, p-value = 7.083e-05 ## alternative hypothesis: true mean is greater than 5.2 ## 95 percent confidence interval: ## 5.406833 Inf ## sample estimates: ## mean of x ## 5.556881
1 2 3 4 5 6
# 귀무가설: B앱의 평균 사용 시간이 A앱의 평균 사용시간보다 크지 않다. #alter="greater"로 큰지 작은지 확인 alternative hypothesis: true mean is greater than 5.2 이 값이 5.2와 같지않다 #mu값에따라 p-value 값이 변하는 것을 보며 표본의 적합도를 판단하기.
# 'B앱의 평균 시청시간이 더 길다'라는 방향성을 갖는 연구가설 검정 결과 P-value값이 유의확률 이내임. # 따라서, B회사의 앱 사용 시간이 A회사의 평균 5.2시간보다 더 긴 것을 확인할 수 있음.
(3) 두 집단 비율 검정
독립표본 이항분포의 비율 검정은 prop.test() VS. 단일표본 이항분포 binom.test() 비교
비율 차이 검정 통계량을 바탕으로 귀무가설의 기각 여부를 결정함.
1 2
data <- read.csv("2_day/data/two_sample.csv", header = TRUE) summary(data)
1 2 3 4 5 6 7 8
## no gender method survey score ## Min. : 1.00 Min. :1.00 Min. :1.0 Min. :0.0000 Min. :3.000 ## 1st Qu.: 75.75 1st Qu.:1.00 1st Qu.:1.0 1st Qu.:1.0000 1st Qu.:5.100 ## Median :150.50 Median :1.00 Median :1.5 Median :1.0000 Median :5.600 ## Mean :150.50 Mean :1.42 Mean :1.5 Mean :0.8167 Mean :5.685 ## 3rd Qu.:225.25 3rd Qu.:2.00 3rd Qu.:2.0 3rd Qu.:1.0000 3rd Qu.:6.300 ## Max. :300.00 Max. :2.00 Max. :2.0 Max. :1.0000 Max. :8.000 ## NA's :73
1 2 3
# 데이터 전처리하기 # method 비율 table(data$method)
1 2 3
## ## 1 2 ## 150 150
1 2 3 4
# 1집단: 150명, 2: 150명
# survey 비율 table(data$survey)
1 2 3
## ## 0 1 ## 55 245
1 2 3 4 5
# 0 (불만족): 55명 / 1 (만족): 245명
# 두 변수에 대한 교차분석 # table(method, survey, useNA="ifany") # useNA="ifany": 결측치까지 출력 table(data$method, data$survey, useNA = "ifany")
1 2 3 4
## ## 0 1 ## 1 40 110 ## 2 15 135
1 2 3 4 5 6
# 위 표 해석 # 300명 중 교육 방식에 만족했다고 응답한 사람은 245명임. # 245명 중 교육방법 1에 만족한 사람은 110명 VS 교육방법 2에 만족한 사람은 135명
# 두 집단 비율 차이 검정********************* prop.test(x = c(110, 135), n = c(150, 150))
1 2 3 4 5 6 7 8 9 10 11
## ## 2-sample test for equality of proportions with continuity correction ## ## data: c(110, 135) out of c(150, 150) ## X-squared = 12.824, df = 1, p-value = 0.0003422 ## alternative hypothesis: two.sided ## 95 percent confidence interval: ## -0.25884941 -0.07448392 ## sample estimates: ## prop 1 prop 2 ## 0.7333333 0.9000000
1 2
# 방향성을 갖는 단측가설 검정 prop.test(x = c(110, 135), n = c(150, 150), alter = "greater")
1 2 3 4 5 6 7 8 9 10 11
## ## 2-sample test for equality of proportions with continuity correction ## ## data: c(110, 135) out of c(150, 150) ## X-squared = 12.824, df = 1, p-value = 0.9998 ## alternative hypothesis: greater ## 95 percent confidence interval: ## -0.2451007 1.0000000 ## sample estimates: ## prop 1 prop 2 ## 0.7333333 0.9000000
첫번째 교육방법이 두번째 교육방법보다 만족율이 크지 않을것이라 가정하고 검정 진행 p-value 값이 0.9998이기 때문에 귀무가설을 채택함. 즉, 첫번째 교육방법이 두번째 교육방법보다 만족율이 크다로 분석할 수 있음. p-value가 클수록 관계가 없다? 귀무가설이 맞다는 뜻.
(4) 두 집단 평균 검정(독립 표본 T 검정)
-평균 차이 검정을 위해서는 기술 통계량으로 평균을 구한다. -독립표본 평균검정은 두 집단 간 분산의 동질성 검증(정규분포 검정) 여부를 판정한다. -결과에 따라서, t.test를 진행하거나 윌콕스 검정을 수행한다.
1
summary(data)
1 2 3 4 5 6 7 8
## no gender method survey score ## Min. : 1.00 Min. :1.00 Min. :1.0 Min. :0.0000 Min. :3.000 ## 1st Qu.: 75.75 1st Qu.:1.00 1st Qu.:1.0 1st Qu.:1.0000 1st Qu.:5.100 ## Median :150.50 Median :1.00 Median :1.5 Median :1.0000 Median :5.600 ## Mean :150.50 Mean :1.42 Mean :1.5 Mean :0.8167 Mean :5.685 ## 3rd Qu.:225.25 3rd Qu.:2.00 3rd Qu.:2.0 3rd Qu.:1.0000 3rd Qu.:6.300 ## Max. :300.00 Max. :2.00 Max. :2.0 Max. :1.0000 Max. :8.000 ## NA's :73
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# 여기에서 결측치 73개를 제외하는 코드를 작성한다. # base R 방식 result <- subset(data, !is.na(score), c(method, score))
# dplyr 방식 library(dplyr)
result2 <- data %>% filter(!is.na(score)) %>% select(method, score)
# 피벗 테이블 작성 & 기술 통계량 result %>% group_by(method) %>% summarise(length = n(), avg_score = mean(score))
# 동질성 검정 # 동질성 검정의 귀무가설: 두 집단 간 분포의 모양이 동질적이다. # 동질성 검정의 대립가설: 두 집단 간 분포의 모양이 동질적이지 않다. # var.test(x, y)에서 x와 y는 숫자형 벡터가 들어가야 한다. 분산 테스트? # 동질성에 따라서 많이 다르면 비모수 검정을 한다. # 따라서, 데이터셋에서 각 방법에 따라 숫자형 벡터로 변환하는 것이 중요하다. method_1 <- subset(result, method == 1) method_2 <- subset(result, method == 2)
var.test(method_1$score, method_2$score) #p-value에 의해 분산이 어느정도 동일하다고 판단되기때문에 t검증을 실행한다.
1 2 3 4 5 6 7 8 9 10 11
## ## F test to compare two variances ## ## data: method_1$score and method_2$score ## F = 1.2158, num df = 108, denom df = 117, p-value = 0.3002 ## alternative hypothesis: true ratio of variances is not equal to 1 ## 95 percent confidence interval: ## 0.8394729 1.7656728 ## sample estimates: ## ratio of variances ## 1.215768
1 2 3
# 검정 통계량 p-value 0.3002로 유의수준 0.05보다 크기 때문에 두 집단 간의 분포 형태가 동질하다고 볼 수 있음. # 즉, 이 때에는 윌콕스 검정이 아니라 t.test() 검정을 수행한다. t.test(method_1$score, method_2$score)
1 2 3 4 5 6 7 8 9 10 11
## ## Welch Two Sample t-test ## ## data: method_1$score and method_2$score ## t = -2.0547, df = 218.19, p-value = 0.0411 ## alternative hypothesis: true difference in means is not equal to 0 ## 95 percent confidence interval: ## -0.48296687 -0.01005133 ## sample estimates: ## mean of x mean of y ## 5.556881 5.803390
1 2 3 4 5 6
# 차이가 있느냐 없느냐만 가늠함 # p-value = 0.0411이기 때문에, 두 집단 실기시험의 평균에는 차이가 있다로 결론내릴 수 있으나, 방법1이 좋은지 아니면 2가 좋은지는 판단하지 못함 # 이럴 때에는 방향성을 갖는 단측검정을 실시함
## ## Welch Two Sample t-test ## ## data: method_1$score and method_2$score ## t = -2.0547, df = 218.19, p-value = 0.9794 ## alternative hypothesis: true difference in means is greater than 0 ## 95 percent confidence interval: ## -0.4446915 Inf ## sample estimates: ## mean of x mean of y ## 5.556881 5.803390
1 2
#귀무가설: method_2$score가 method_1$score 보다 크다 #대립가설: method_2$score가 method_1$score 크지 않다
p-value가 0.9794 귀무가설을 기각할 수 없기 때문에, method_2의 실기 시험 점수가 method_1의 점수보다 크다 따라서, 교육방법에 따른 두 집단 간 실기시험의 평균에 차이가 있고, method_2가 method_1보다 결과가 더 좋았다라고 결론 내릴 수 있음.
(5) 대응 두 집단 평균 검정 (대응 표본 T검정)
정책 효과, 마케팅 효과 등, 이런 것들을 검정할 때 매우 유용합니다. 참고로 마케팅 공부할 때, 가장 유용하고 사용했던 검정 방법이기도 합니다. 동일한 표본을 대상으로 측정된 두 변수의 평균 차이를 검정하는 분석방법임.
1 2 3 4 5 6 7 8 9 10 11
# 연구환경 # A교육센터에서 교육생 100명을 대상으로 교수법 프로그램 적용 전에 실기시험을 실시한 후 1개월 동안 동일한 교육생에세 교수법 프로그램을 적용한 후 실기시험을 실시한 점수와 평균에 차이가 있는지 검정합니다.
# 가설검정 # 귀무가설: 교수법 프로그램을 적용하기 전 학생들의 학습력과 교수법 프로그램을 적용한 후 학생들의 학습력에 차이가 없다. # 연구가설: 교수법 프로그램을 적용하기 전 학생들의 학습력과 교수법 프로그램을 적용한 후 학생들의 학습력에 차이가 있다.
# 데이터 불러오기 #data <- read.csv("R_NCS_2020/2_day/data/paired_sample.csv", header = TRUE) data <- read.csv("2_day/data/paired_sample.csv", header = TRUE) summary(data)
1 2 3 4 5 6 7 8
## no before after ## Min. : 1.00 Min. :3.000 Min. :5.000 ## 1st Qu.: 25.75 1st Qu.:4.800 1st Qu.:5.800 ## Median : 50.50 Median :5.100 Median :6.200 ## Mean : 50.50 Mean :5.145 Mean :6.221 ## 3rd Qu.: 75.25 3rd Qu.:5.600 3rd Qu.:6.500 ## Max. :100.00 Max. :7.000 Max. :8.000 ## NA's :4
1 2 3 4 5 6 7 8 9
# 대응 두 집단 subset 생성하기 # dplyr way
result <- data %>% filter(!(is.na(after))) %>% select(before, after)
## ## F test to compare two variances ## ## data: result$before and result$after ## F = 1.0718, num df = 95, denom df = 95, p-value = 0.7361 ## alternative hypothesis: true ratio of variances is not equal to 1 ## 95 percent confidence interval: ## 0.7151477 1.6062992 ## sample estimates: ## ratio of variances ## 1.071793
1 2 3 4 5
# p-value 값이 0.05보다 크기 때문에 귀무가설을 그대로 채택함 # 귀무가설: 두 그룹간 데이터 분포의 모양은 동질적이다. ---> t.test() # 대립가설: 두 그룹간 데이터 분포의 모양은 동질적이지 않다. ---> wilcox.test()
## ## Paired t-test ## ## data: result$before and result$after ## t = -13.642, df = 95, p-value < 2.2e-16 ## alternative hypothesis: true difference in means is not equal to 0 ## 95 percent confidence interval: ## -1.205184 -0.898983 ## sample estimates: ## mean of the differences ## -1.052083
1 2 3 4
# p-value값은 유의수준 0.05보다 매우 작기 때문에 귀무가설을 기각하고 대립가설을 채택한다, 즉, 두 집단 간의 평균에 차이가 있는 것으로 나타났다.
# 방향성을 갖는 단측 검정을 실시한다. t.test(result$before, result$after, paired = TRUE, alter = "greater", conf.level = 0.95, conf.int = TRUE)
1 2 3 4 5 6 7 8 9 10 11
## ## Paired t-test ## ## data: result$before and result$after ## t = -13.642, df = 95, p-value = 1 ## alternative hypothesis: true difference in means is greater than 0 ## 95 percent confidence interval: ## -1.180182 Inf ## sample estimates: ## mean of the differences ## -1.052083
1 2
# 귀무가설: result$after의 평균 점수가 result$before의 평균 점수보다 크다 # 대립가설: result$after의 평균 점수가 result$before의 평균 점수보다 크지 않다.
#유의확률이 1, 즉 귀무가설을 기각할 수 없다, result$after의 평균 점수가 result$before의 평균 점수보다 크다.