7 min to read
R-Studio 귀무가설 검증을 위한 단일 집단 평균함수t.test 와 두 집단 평균함수 var.test
R-Studio의 단일집단 평균(t.test), 두집단 평균(t.test, var.test)
파일 소스
우클릭 -> 다른이름으로 링크저장 이용해 주세요
S20191031.zip
사용 함수
t.test()
사용 예시 소스코드 1
# 두 집단 평균 검정(교육 만족도)
# 두 집단을 대상으로 평균 차이 검정을 통해서 두 집단 점수(score)의 평균이 같은지 또는 다른지를
# 검정하는 방법이다.
#
# two_sample.csv
# 파일 이름 : 두 집단 평균 검정(교육 만족도).R
#
# 참조 문서 : 집단간 차이 분석
#
# 연구 환경
# 한국 교육 센터에서는 2가지 교육 방법(집체 교육, 개별 교육)을 이용하여 수업을 진행하고 있다.
# 1개월동안 교육을 받은 교육생 각 150명을 대상으로 실기 시험을 실시하였다.
# 두 집단간 실기 시험의 평균에 차이가 있는 지 검사한다.
#
# 가설
# 귀무 가설
# 두 가지 교육 방법에 따른 실기 시험의 평균에 차이가 없다.
# 연구 가설
# 두 가지 교육 방법에 따른 실기 시험의 평균에 차이가 있다.
df <- read.csv("two_sample.csv")
str(df)
head(df)
summary(df)
result <- subset(df, !is.na(score), c(method, score))
unique(result$method) # 교육 방식
range(result$score) # 점수 범위
result
# 데이터 분리
method01 <- subset(result, method == 1)
method01_score <- method01$score # 1번 교육 방식의 점수
method02 <- subset(result, method == 2)
method02_score <- method02$score # 2번 교육 방식의 점수
mean(method01_score) # 5.556881
mean(method02_score) # 5.80339
varResult <- var.test(method01_score, method02_score)
names(varResult)
varResult$p.value > 0.05 # 귀무가설 채택
# F test to compare two variances
#
# data: method01_score and method02_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
tValue <- t.test(method01_score, method02_score) # p:0.0411
tValue$p.value > 0.0411 # 두 집단 간의 평균 값의 차이가 있다.
t.test(method01_score, method02_score, alternative = "greater")
0.9794 > 0.05 # 채택 1그룹이 2그룹보다 크다?(greater 매개값.) 맞다. 크다
t.test(method01_score, method02_score, alternative = "less")
0.02055 > 0.05 # 1그룹이 2그룹보다 작나? # 아니다 더크다
사용 예시 소스코드 2
# 영업 사원 교육 효과 분석
# 두 집단의 평균이 서로 동일한지를 검증하는 것은 두 집단 평균 차이 분석이라고 한다.
# 두 그룹 간의 평균을 기준으로 차이에 의미를 부여하는 방법이다.
# 영업 사원들의 실적을 향상 시키기 위하여 어떠한 교육이 더 좋을까?
#
# 파일 이름 : 영업 사원 교육 효과 분석.R
# 관련 정보
# 항목 설명
# 예제 데이터 2가지 교육 방법별로 교육을 이수한 영업 사원들의 영업 실적으로 조사한 데이터
# 파일 이름 mymethod.csv
df <- read.csv("mymethod.csv")
str(df)
range(df$performance)
unique(df$method)
# 가설 귀무 가설 :
# 변수명 id : ID 번호
# method : 영업 역량 강화(1 : 집체 교육, 2 : 멘토링 교육)
# pefrormance : 영업 사원들의 영업 실적(단위 : 억원)
# 단, 입사 6개월 이내 인력은 교육을 받았지만 영업 실적 조사에서 제외하도록 한다
# performance의 값이 99으로 표시되어 있다.
# 분석 문제 교육 방법별로 교육을 이수한 사람들의 빈도 수와 영업 실적 평균 값을 구하세요.
mean(op_method_1$performance) # 집체 교육
mean(op_method_2$performance) # 멘토링 교육
# 실제 영업 실적 비교 대상자만의 데이터를 별도로 추출하세요.
# 데이터 분리.
op_method_1 <- subset(df, method == 1 & performance != 99)
op_method_2 <- subset(df, method == 2 & performance != 99)
# 분리 확인.
op_method_1
op_method_2
# 두 교육 방법별 영업 실적 데이터 간에 분포 모양이 비슷한지를 검정하세요.(var.test 분석 함수 사용)
vt <- var.test(op_method_1$performance, op_method_2$performance)
vt$p.value # [1] 0.849366
qqnorm(op_method_1$performance, col = "red")
qqline(op_method_1$performance, lty=1, col="red")
par(new=T)
qqnorm(op_method_2$performance, col = "blue")
qqline(op_method_2$performance, lty=1, col="blue")
# 두 집단 간의 영업 실적에 차이가 있는 지 검증하세요.
vt$p.value > 0.05 # 두집단간 영업 실적에 차이가 존재 한다.
# 첨부된 문서를 이용하여 보고 또는 논문 제출을 위한 문서를 작성해보세요.
# 관련 지식 -
# 검증 방법 var.test, t.test
# ggplot 로 그리기
ggdf <- op_method_1 <- subset(df, performance != 99)
ggdf
ggplot(data = ggdf, aes(x = performance, y = method, color = method, fill = method)) + geom_point()
Comments