R – One Sample T-Test

######################################################
## 1. one sample t-test
##
##
######################################################
##setwd 파일등을 로딩할 기준 위치 work directory 를 정의한다.
setwd(“D:/DEVSource/CSV_DATA”)

##CSV 파일을 읽습니다.
AirPassengers= read.csv(“AirPassengers.csv”)

plot(time~AirPassengers, data=AirPassengers )
##shapiro.test 는 정규성을 검증하는 기능
##귀무가설 : 데이터는 정규 분포
##대립가설 : 데이터는 정규 분포가 아님
##검정통계량 : 0.954 (0에서 얼마나 멀은가?)
##p-value : 6.8322e-05 (0.000068322)
##결론 : 귀무가설을 기각한다. (정규 분포가 아님)
shapiro.test(AirPassengers$AirPassengers)
##제곱, 로그 등 변화를 주어도 정규 분포가 아님
shapiro.test(log(AirPassengers$AirPassengers))
shapiro.test(sqrt(AirPassengers$AirPassengers))
##년도별 데이터를 뽑는 Function
queryCsv = function(data, condition)
{
returnData = as.data.frame(matrix(nrow=0,ncol=4))
##returnData = as.data.frame(seq=integer(), x=integer(), time=character(), UKDriverDeaths=character(), stringsAsFactors=FALSE )

len = length(data$time)
cnt = 1
for(rownum in 1:len )
{
row = data[rownum,]
##con = paste(‘^’,condition,’.*?’, sep=””)
if(grepl(condition, row$time))
{
row = data[rownum,]
if(row$time != ‘NA’)
{
returnData = insertRow(returnData, row , cnt )
cnt = cnt + 1
}
}
}
return (returnData)
}
##data.frame 행 추가
insertRow <- function(existingDF, newrow, r) {
existingDF[seq(r+1,nrow(existingDF)+1),] <- existingDF[seq(r,nrow(existingDF)),]
existingDF[r,] <- newrow
existingDF
}
##One Sample T-Test 에 적합한 데이터를 로딩
UKDriverDeaths = read.csv(“UKDriverDeaths.csv”)
##print(UKDriverDeaths)

##1984년 데이터
return1984data = queryCsv(UKDriverDeaths,1984)
##print(return1984data )

##1970년 데이터
return1970data = queryCsv(UKDriverDeaths,1970)
##print(return1970data )
##shapiro.test 는 정규성을 검증하는 기능
##귀무가설 : 데이터는 정규 분포
##대립가설 : 데이터는 정규 분포가 아님
##검정통계량 : 0.9669 (0에서 얼마나 멀은가?)
##p-value : 0.8757
##결론 : 귀무가설을 기각할 수 없다 (데이터는 정규 분포)
shapiro.test(return1984data$V4)
shapiro.test(return1970data$V4)

##1970년 교통사고 평균 18.5
mean(return1970data$V4, na.rm=TRUE)

##1984년 교통사고 평균 186.5
mean(return1984data$V4, na.rm=TRUE)

##1970년 교통사고 18.5가 1984년 186.5와 비교하여 유의한 차이가 있는가?
##t-test : 검정통계량
##귀무가설 : 유의한 차이가 없다
##대립가설 : 유의한 차이가 있다
##p-value : 2.2e-16 (0.0000000~)
##결론 : 귀무가설을 기각할 수 있다 (1970년의 평균 18.5와 1984년 평균 186.5는 유의한 차이가 있다.)
t.test(return1984data$V4, mu=18.5)

Leave a Reply

Your email address will not be published. Required fields are marked *