R-Studio 귀무가설 검증을 위한 단일 집단 평균함수t.test 와 두 집단 평균함수 var.test

R-Studio의 단일집단 평균(t.test), 두집단 평균(t.test, var.test)

Featured image

파일 소스

우클릭 -> 다른이름으로 링크저장 이용해 주세요
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()