t-검정은 두 데이터 셋의 평균값을 비교하고 동일한 모집단의에서 나온 것인지 결정 할 수 있다.
아래의 데이터 셋의 예에서 Group 1과 Group 2의 다른 샘플은 가진다면, 동일한 평균과 표준편차를 가질 것이라고 기대할 수 없다.
수학적으로 t-검정은 각각의 값에서 표분을 취하고 두 평균이 동일하다는 귀무가설을 가정하여 문제 설명을 설정 한다. 적용 가능 한 공식을 기반으로 특정 값을 계산 하고 표준 값과 비교하여 이에 따라 가정된 귀무가설을 수락할 것이라 가정한다.
아래의 문제는 2개의 샘플의 갯수가 같은지 보는 것인데, 2개의 샘플이 다르다.
샘플을 크기가 같은지 여부에 따라 아래와 같이 분석 한다.
t-test |
아래와 같이 네이버 지식인에서 질문이 왔다.
안녕하세요 R데이터를 이용하여 각 그룹의
#95% CI, #t검정 을 구하라고 하는데 어떻게 써야 할까요? 이방법 저방법해봤지만 답이 달라서요ㅠㅠ 특히 T test요 ㅜㅜ
기프티콘 사례라도 드리겠습니다 ㅜㅜ
아래와 같이 문제를 풀었다. 첨부화일을 데이터 프레임으로 되어 있는데, 이것을 서브세팅($) 하여 벡터 객체로 바꾸어주어야 한다.
#데이터 가져오기
library(dplyr)
library(readr)
df <- read_csv("ID_10.csv")
glimpse(df)
## Rows: 75
## Columns: 3
## $ ...1 <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1…
## $ x <dbl> 2.53, 2.24, 0.58, 1.66, 2.91, 3.05, 0.81, 1.99, 0.22, 2.14, 4.04…
## $ Group <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
# 그룹별로 데이터 필터 하기
pre_Treatment <- df %>%
filter(Group == 1)
post_Treatment <- df %>%
filter(Group == 2)
# t-test 하기 위한 데이터 벡터 만들기
pre_Treatment <- pre_Treatment$x
post_Treatment <- post_Treatment$x
t.test(pre_Treatment, post_Treatment )
##
## Welch Two Sample t-test
##
## data: pre_Treatment and post_Treatment
## t = -4.2256, df = 65.487, p-value = 7.533e-05
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -1.8385695 -0.6585416
## sample estimates:
## mean of x mean of y
## 2.018333 3.266889
벡터로 바꾸고 나서 t.test를 돌리고 나면 아래와 같이 결과가 나온다.
해석하면, p-value 가 0.05 값이 이상이므로, 기무가설을 채택 하여, 이 둘 사이의 평균이 같다는 결론이 나온다.
CI 값은 아래와 같이 명시되어 있다.
## 95 percent confidence interval:
## -1.8385695 -0.6585416
아까 질문한 질문자입니다. t.test(group1,group2)이렇게 하면 전혀 다른 답이 나오는데 이건 틀린법인가요
답글삭제Welch Two Sample t-testdata: group1 and group2t = -4.13, df = 61.253,
답글삭제p-value = 0.0001117
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval: -1.8075901 -0.6283007
sample estimates:
mean of x mean of y
2.034138 3.252083 .
group1, group2 데이터 셋을 어떻게 만드셨는지요?
삭제
답글삭제degree of freedom 모집단의 데이터 갯수가 다르네요. 제가 작성 했던것
## t = -4.2256, df = 65.487, p-value = 7.533e-05
선생님께서 작성 하셨던것
t = -4.13, df = 61.253,
p-value = 0.0001117
원래 질문이 "각 '그룹'의 test of normality, 95% CI 와 sampling error, t-test를 구하고 결론을 지어라" 입니다. '제가 지식인에 올려드렸던 파일이 맞는데 왜 df가 다르게 나오는지모르겠어요. 차드보면 x, group (1&2)2개의 column 이고 총 75개.
답글삭제파일 데이타 셋의 링크를 붙여서 가동했습니다
library(readr)
ID_10 <- read_csv("Desktop/ID_10.csv")
View(ID_10)
이렇게 하고 여기서 부터#평균, 표준편차, 중앙값
mean (group1)
sd(group1) 이런식으로,,,,,
#test normality
shapiro.test(group1)
shapiro.test(group2)
#95% CI
G1_CI=c(-1.96*sd(group1)/sqrt(length(group1)),1.96*sd(group1)/sqrt(length(group1)))
G2_CI=c(-1.96*sd(group2)/sqrt(length(group2)),1.96*sd(group2)/sqrt(length(group2)))
#t검정
t-test (group1,group2) 하니까 저런 결과를 보여주는데 뭐가 맞는건지 너무어렵네요 ㅠㅠㅠ
질문 올리셨던 첨부화일과, 사용하고 계신 첨부화일이 다릅니다. 사용하고 계신 첨부화일을 주십시오.
답글삭제구글이메일로 보내드리겠습니다
삭제