06.통계데이터분석 - 평균검정 - 일표본 평균검정.R
0.01MB
통계데이터분석 - 평균검정 - 일표본 평균검정 🔑 one-sample t test | t값 | t분포 | 양측검정 | 하나의 표본 데이터 | 모집단의 평균이 특정 값과 같은지 검정
# t검정을 이용한 일표본 평균검정
# 일표본 평균검정
- 정의: 하나의 표본 데이터를 이용해 모집단 평균이 특정 값과 같은지 검정 하는 것
- 특징:
- 표본집단이 특정 모집단과 일치하는지 혹은 그렇지 않은지 알고 싶을 때 이용할 수 있음
- 사용가능한 사례
- 벤처기업 경영자의 혈압이 일반 사람들의 혈압과 같은지 혹은 다른지 확인
- 가구당 소득에 대한 표본 데이터를 바탕으로 기존에 알려진 우리나라의 가구당 소득이 맞는지 검정하는 것
- 일표본 평균검정을 수행하는 절차
https://youtu.be/Nl_L87p_-IY?list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&t=59
# 06.통계데이터분석 - 평균검정 - 일표본 평균검정 🔑 one-sample t test | t값 | t분포 | 양측검정 | 하나의 표본 데이터 | 모집단의 평균이 특정 값과 같은지 검정
# https://youtu.be/Nl_L87p_-IY?list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&t=59
### 일표본 평균검정을 수행하는 절차
# https://youtu.be/Nl_L87p_-IY?list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&t=59
## MASS 패키지 cats 데이터셋 설명
# 고양이 성별에 따른 몸무게,심장무게 기록
# 144개 관측값, 3개 변수로 구성(Sex:성별,Bwt:몸무게,Hwt:심장무게)
# 몸무게는 kg(킬로그램) 단위 / 심장무게는 g(그램) 단위로 측정
library(MASS)
str(cats)
## 문제1) 몸무게가 2.6kg 정도로 알려져 있다고 가정할 때, 어떤 수의사가 "2.6kg은 아니다"라고 주장. 검정을 위해 고양이 144마리를 표본으로 데이터 수집
# 대립가설: "고양이의 몸무게는 2.6kg이 아니다"
# 귀무가설: "고양이의 몸무게는 2.6kg이다"
## t.test() 함수
# t.test() 함수로 일표본 평균검정 가능
t.test(x=cats$Bwt, mu=2.6)
# 1st인수: 데이터셋 지정
# mu 인수: 검정하고자 하는 모집단평균 지정 (대립가설이 "고양이의 몸무게는 2.6kg이 아니다"이기 때문에 검정하고자 하는 모집단평균은 2.6이 됨)
# sample estimates:
# mean of x
# 2.723611
# 출력결과1) 하단은 표본평균 나타냄. 144개 관측값에서 계산된 고양이 평균 2.7이라는 것을 알 수 있음
# data: cats$Bwt
# t = 3.0565, df = 143,
# 출력결과2) 표본평균 2.7에 대응되는 t-값은 3.0565, 그 옆에 df는 자유도 나타냄. 자유도는 표본크기에서 1을 뺀 값으로 계산되기 때문에 현재 표본크기가 144이니 143이 자유도로 출력됨됨
# p-value = 0.002673
# 출력결과3)
# 1) 오른쪽 끝 p-value는 p-값 다시 말해서 유의확률을 의미함
# 2) 대립가설이 "고양이의 몸무게는 2.6kg이 아니다"이기 때문에 양측검정 수행함
# 3) 그래서 p-value는 t-값이 3.05보다 크거나 혹은 t-값이 -3.05보다 작을 확률을 의미함
# 4) 그래서 양쪽 부분의 확률의 합으로써 p-value(유의확률)이 계산되었음
# alternative hypothesis: true mean is not equal to 2.6
# 출력결과4) 그 밑에는 대립가설이 무엇인지 보여주는 문장이 나와 있음. true mean은 모집단 평균을 의미함. 그래서 "모집단의 평균이 2.6이 아니다"하는 것이 검정하고자 하는 대립가설에 해당됨
# 95 percent confidence interval:
# 2.643669 2.803553
# 출력결과5) 그 밑에는 미지의 모집단평균에 대한 95% 신뢰구간을 출력해 준 것임. 95%의 믿음 안에서 미지의 모집단평균은 2.64에서 2.80 사이라고 출력하고 있음
# 대립가설 검정1) "고양이의 몸무게는 2.6kg이 아니다" 검정에 대하여 유의수준 0.05 사용을 가정한다면 p-값이 0.002로서 0.05에 비해 매우 작기 때문에 귀무가설 기각. 모집단에서 고양이 몸무게가 2.6kg은 아니다 결론 가능. 즉, 대립가설을 채택
# 대립가설 검정2) "고양이 몸무게는 2.6kg이다"가 사실이라는 가정하에 표본에서 관측된 검정통계량(t값)이 3.05 이상 또는 -3.05 이하가 될 확률은 0.002에 불과하여 발생가능성이 매우 작은 경우임
# 대립가설 검정3) 따라서 고양이 몸무게가 2.6kg이라는 가정은 오류. 표본데이터는 모집단평균이 2.6kg이라는 귀무가설을 지지하지 못해 "고양이 몸무게 평균은 2.6kg이 아니다"라는 새주장 수용못함
## 문제2) 고양이 몸무게가 2.7kg인지 여부 검정
# mu 인수에 모집단평균으로서 2.7을 지정
t.test(x=cats$Bwt, mu=2.7)
# p-value = 0.5603
# 출력결과1) 유의수준을 0.05로 사용한다고 했을 때 0.5603은 0.05에 비해서 매우 크기 때문에 모집단에서 고양이 몸무게가 2.7kg 이라는 귀무가설을 기각하지 못하고 채택하게 됨
# 출력결과2) 모집단평균이 2.7이라는 가정하에서 표본으로부터 관측된 값이 발생할 가능성이 56%이기 때문에 굉장히 흔한 현상이 발생. 그래서 표본으로부터 관측된 값은 귀무가설을 기각하지 못하고 귀무가설을 채택하는 증거로서 사용됨
## t.test() 함수특징 1) 달리 지정하지 않는 한 양측검정 수행
?t.test # t.test() 함수의 도움말
# ## Default S3 method:
# t.test(x, y = NULL,
# alternative = c("two.sided", "less", "greater"),
# mu = 0, paired = FALSE, var.equal = FALSE,
# conf.level = 0.95, ...)
# alternative 인수에 양측검정 또는 단측검정 지정가능. 기본값 two.sided가 지정돼 양측검정 수행. 방향에 따라 less 또는 greater 지정해 단측검정 수행 가능
## 문제3) 고양이 몸무게가 2.6kg보다 크다는 주장 검정
# 대립가설: "고양이의 몸무게는 2.6kg보다 크다"
# 귀무가설: "고양이의 몸무게는 2.6kg보다 작거나 같다"
# 그럼 alternative 인수에 greater 지정
t.test(x=cats$Bwt, mu=2.6, alternative="greater")
# p-value = 0.001337
# 출력결과1) 검정 결과 p-값이 0.001로 유의수준 0.05에 비해 매우 작기 때문에 귀무가설을 지지하지 못하고 기각. 즉, 대립가설을 채택함으로써 "고양이 몸무게는 2.6kg보다 크다"로 결론 내릴 수 있음
## t.test() 함수특징 2) t.test() 함수는 결과로 list 객체 반환
# 가설검정 결과를 변수로 한 번 저장
cats.t <- t.test(x=cats$Bwt, mu=2.6)
str(cats.t)
# $ p.value : num 0.00267
# $ conf.int : num [1:2] 2.64 2.8
# 출력결과) $ p.value: 유의확률 저장, $ conf.int: 신뢰구간 저장
## t.test() 함수특징 3) 리스트 객체 원소에 접근해 원하는 정보 쉽게 추출 가능
## 문제4) p.value 원소 값 추출 / conf.int 원소 값 추출
cats.t$p.value
cats.t$conf.int
## t.test() 함수특징 4) 달리 지정하지 않는 한 95% 신뢰구간 계산
# t.test(x, y = NULL,
# conf.level = 0.95, ...)
# conf.level 인수에 기본으로 0.95 지정돼 있어 95% 신뢰구간 계산
t.test(x=cats$Bwt, mu=2.6, conf.level=0.99)
# conf.level 인수에 0.99 지정해 99% 신뢰구간 계산
# mean is not equal to 2.6
# 99 percent confidence interval:
# 2.618031 2.829191
# 출력결과) 미지의 모집단평균에 대한 99% 신뢰구간이 출력
### 비율에 대한 검정
# 하나의 표본 데이터를 이용해서 모집단의 비율에 대한 통계적 검정을 수행하는 절차 확인하기
# 어떤 시행의 결과가 성공 또는 실패 두 가지인 경우만 존재하는 모집단으로부터 추출한 표본 데이터를 바탕으로 해서 모집단의 성공 비율이 특정 값과 같은지 검정 가능
## 문제4) 어느 프로야구팀 팬이 자신이 응원팀이 처음 30경기 중 18승을 거두었다고 하며 팀승률이 50%를 넘는다고 주장. 이 주장이 통계적으로 타당한지 검정
# 모집단 비율에 대한 검정은 prop.test() 함수 이용.
# 30경기 중 18경기를 승리한 표본 데이터를 이용해 승률이 50%보다 크다고 할 수 있는지 prop.test() 함수를 이용해\ 검정
prop.test(x=18, n=30, p=0.5, alternative="greater")
# x 인수: 성공횟수. "30경기 가운데 18경기를 이겼다"라고 얘기하고 있기 때문에 성공횟수는 18이 됨
# n 인수: 시행횟수. 30경기에 해당하는 30이 시행횟수에 대응됨
# p 인수: 검정하고자 하는 비율. "승률 50%가 넘는다"라고 주장하기 때문에 0.5가 검정하고자 하는 비율이 됨. p 인수에 지정하지 않으면 모집단 비율이 0.5인지
# alternative 인수: 양측검정인지 단측검정인지 지정. 프로야구팀 주장이 "승률이 50%보다 크다"라는 것이기 때문에 단측검정으로써 "greater" 지정
# p-value = 0.1807
# 출력결과) p-값이 0.1807로 유의수준 0.05에 비해서 매우 크기 때문에 모집단 비율이 0.5보다 크다는 대립가설 주장 기각 가능
# 즉, 주어진 데이터는 이 프로야구팀의 승률이 50%보다 크다고 주장할 만한 충분한 증거가 되지 못함.
# 비록 승률이 60% 이지만 모집단 승률이 50%라는 가정하에도 이 정도 승률이 나오는 것은 18% 이상이기 때문에 유의수준 5%의 기준으로 삼았을 때 굉장히 흔한 현상으로 관측된 것임
# 그래서 승률이 50%인 모집단에서도 "60%의 승률은 굉장히 흔하다"라고 판단되기 때문에 그 팬의 주장을 받아들이지 못하고 귀무가설을 채택하게 됨