티스토리 뷰
오늘은 R을 사용한 통계분석 방법 중 One Sample t-test를 공부해 보도록 하겠습니다.
데이터는 e-나라지표 홈페이지에서 6학년 학생들의 키를 참고하여 직접 만들어 주었습니다.
아래 데이터를 사용하시면 됩니다.
혹은 직접 데이터를 제작하여도 되고, e-나라 지표 혹은 통계청 등에서 데이터를 가져올 수도 있습니다.
1. 데이터 불러오기
우선 read.csv를 사용하여 데이터를 불러오도록 하겠습니다.
불러오는 경로는 각자 저장한 주소에 맞게 변경하면 됩니다.
#### 일표본(One Sample) t-test #####
#A초등학교 6학년 학생들의 키 분석을 통한 영양실태조사
# 01.데이터 불러오기
ost <- read.csv("D:/R 실습/ost.csv", header=TRUE, na.strings = ".")
str(ost)
일표본이기 때문에 컬럼은 1개만 필요합니다.
데이터가 복잡한 경우라도 컬럼 한 가지만 선택해서 분석을 진행하시면 됩니다.
저는 총 107개의 데이터로 분석을 진행해 보도록 하겠습니다.
2. 데이터 확인하기
다음으로 기본 통계치를 확인하기 위해 psych 라이브러리를 사용하도록 하겠습니다.
이때 attach를 해주는 이유는 ost에 있는 height라는 컬럼을 불러올 때 원래 ost$height 로 불러야 하는데 앞에 'ost$' 이 부분을 계속 써주기는 귀찮으니 height 만으로도 데이터를 불러올 수 있도록 해주는 것입니다.
여기서! attach를 써주었으면 코팅이 모두 끝난 후 꼭 detach(ost) 를 해주어야 합니다.
그렇지 않다면 뒤에 계속된 작업에 영향을 줄 수 있습니다.
# 02.기본통계치 확인: describe(psych패키지 이용)
attach(ost) # 객체연결 (attach -> detach)
library(psych)
describe(ost)
describe 의 결과를 확인해 보면 잘 나온것을 확인 할 수 있습니다.
다음으로 그림을 그려서 데이터를 시각적으로 확인해 보도록 하겠습니다.
# 03.그래프 그리기(히스토그램)
hist(height, breaks=10,
xlab="키", ylab="명", ylim = c(0,40),
col = "Cornflower Blue",
main="A초등학교 6학년학생의 키에 대한 히스토그램 및 정규분포")
위의 히스토그램처럼 키 분포 별로 몇 명이 분포되어 있는지 확인할 수 있습니다.
3. 통계분석 진행하기
다음으로 통계분석을 진행해 보도록 하겠습니다.
option 값으로 지정해준 이유는 통계분석 결과가 지수형태로 표기되는 걸 일반 소수형태로 표현하기 위함입니다.
mu 값은 전국 6학년 학생들의 표준키 값을 찾아보고 넣어준 것입니다.
# 04.통계분석
options("scipen" = 20) #지수 표기법 수정
t.test(ost,
alternative = c("two.sided"),
mu = 152.2,
conf.level = 0.95)
결과 값을 보면 p값이 0.05보다 작으므로 귀무가설을 기각하고 대립가설을 채택하게 됩니다.
- 귀무가설 : A초등학교 6학년 학생들의 키는 152.2 cm이다.
- 대립가설 : A초등학교 6학년 학생들의 키는 152.2 cm가 아니다.
4. 그래프로 결과 확인하기
마지막으로 통계분석 결과를 그래프로 그려보도록 하겠습니다.
# 05.통계결과 그래프
mu=152.2
se=0.55
data <- rnorm(1000, mu, se)
data <- sort(data)
plot(data, dnorm(data, mu, se), type='l',
main="6학년 학생의 키(Mu=152.2) 검정",
xlim=c(150,154))
abline(v=mu, col="green", lty=5)
abline(v=mu+1.96*se, col="blue", lty=5)
abline(v=mu-1.96*se, col="blue", lty=5)
abline(v=150.44, col="red", lty=5)
전국 6학년 학생의 키 152.2(녹색)와 5% 오차범위(파란색)보다 A학교 6학년 학생들의 키(빨간색)가 더 작은 것을 시각적으로 확인할 수 있습니다.
'공부방' 카테고리의 다른 글
[R] KNN(K-Nearest Neighbors) 알고리즘 - 승차식 잔디깎이 (0) | 2022.01.14 |
---|---|
[HDFS] 하둡 분산 파일 시스템(HDFS, Hadoop Distributed File System)이란? (0) | 2021.12.21 |
[MapReduce] 맵리듀스(MapReduce) 란? (0) | 2021.12.19 |
[Hadoop] 하둡(Hadoop) 이란? (0) | 2021.12.18 |
[Git] Git 브랜치 생성하기 - git bash (0) | 2021.11.16 |