질병관리청에서 제공하는 공공데이터를 R을 활용하여 분석해보겠습니다.

 

초기설정

질병관리청 > 국민건강영양조사 > 원시자료 > 다운로드 : 소스파일 다운로드
질병관리청 > 국민건강영양조사 > 원시자료 > 자료분석지침 : 이용지침서 다운로드

 

해당 사이트에서 얻은 소스파일(.sas) 을 분석하겠습니다.

이용지침서의 변수 설명을 보며 분석해야하니 해당 파일도 필요합니다.

(소스파일은 C:/workspace 에 위치합니다)

 

데이터 불러오기 및 다듬기

1. sas 파일을 불러오기 위한 외부 라이브러리를 설치합니다

install.packages("haven")
library("haven")

 

2. 작업디렉토리를 소스파일이 있는 장소로 설정합니다.

setwd("C:/workspace")

 

3. 데이터를 불러온 후 원하는 부분만 추출합니다

input = read_sas("sample.sas7bdat")
data = input[,c("age","sex","EC1_1","BP16_1","BP1","HE_BMI")]

이용지침서에 따르면, 

age : 나이

sex : 성별

EC1_1 : 경제활동상태

BP16_1 : 하루 평균 수면시간

BP1 : 스트레스

HE_BMI : bmi 지수

 

4. 사용하지 않는 데이터 제거

data = data[data$"BP16_1"<=24 & data$"EC1_1"<=2 & data$"BP1"<=4 & data$"HE_BMI">0,]

데이터 중 "응답없음"처럼 분석과 상관 없는 값을 제거합니다.

BP16_1 : 수면시간 >= 24

EC1_1 : 경제활동은 1,2가 유의미합니다

BP1 : 스트레스는 1,2,3,4가 유의미합니다

HE_BMI : BMI > 0

 

5. 결측치 제거

data = na.omit(data)

결측치(NA)를 제거합니다

 

 

경제활동 유무와 수면시간의 평균에 대한 비교

남성에 대한 결과값

 

1. 데이터 추출

retM = data[data$"age">29 & data$"age" < 61,]
retM = retM[retM$"sex"==1,]

30 ~ 60세의 남성에 대한 데이터를 retM 이라는 변수에 저장하겠습니다.

 

2. 정규분포성 검사

shapiro.test(retM$EC1_1)
shapiro.test(retM$BP16_1)

비교할 두 열의 정규분포성을 검사합니다.

두 결과 모두 p-value < 0.05 이므로, 정규분포하지 않다는 결과를 얻었습니다.

그러나, 표본이 충분히 많기 때문에 정규분포한다고 가정하고 분석을 이어가겠습니다.

 

3. 경제활동 여부에 따른 수면시간 비교

var.test(BP16_1~factor(EC1_1),data=retM)

var.test 결과 p-value < 0.05 이므로, 분산 값이 다르다는 결과를 얻었습니다.

 

t.test(BP16_1~factor(EC1_1), data=retM, var.equal=F)

t.test 결과 p-value < 0.05 이므로, 평균이 다르다는 결과를 얻었습니다.

 

4. 결과 분석

남성의 경우, 경제활동 여부에 따라 수면시간이 통계적으로 유의하게 차이가 있습니다.

 

여성에 대한 결과값

 

1. 데이터 추출 

retFM = data[data$"age">29 & data$"age" < 61,]
retFM = retM[retFM$"sex"==2,]

30 ~ 60세의 여성에 대한 데이터를 retFM 이라는 변수에 저장하겠습니다.

 

2. 정규분포성 검사

shapiro.test(retFM$EC1_1)
shapiro.test(retFM$BP16_1)

두 결과 모두 p-value < 0.05 이므로, 정규분포하지 않다는 결과를 얻었습니다.

남섬의 경우처럼, 표본이 충분히 많기 때문에 정규분포한다고 가정하고 분석을 이어가겠습니다.

 

3. 경제활동에 따른 수면시간 비교

var.test(BP16_1~factor(EC1_1),data=retFM)

var.test 결과 p-value < 0.05 이므로, 분산 값이 다르다는 결과를 얻었습니다.

 

t.test(BP16_1~factor(EC1_1), data=retFM, var.equal=F)


t.test 결과 p-value < 0.05 이므로, 평균이 다르다는 결과를 얻었습니다.

 

4. 결과 분석

여성의 경우도, 경제활동 여부에 따라 수면시간이 통계적으로 유의하게 차이가 있습니다.

 

 

최종 함의

남성과 여성의 경우 모두 경제활동 여부에 따른 수면시간이 통계적으로 유의하게 차이가 있다는 결론을 얻었습니다.

 

남성과 여성 모두 경제활동을 하지 않는 경우, 통계적으로 유의하게 수면시간이 길었습니다.

또한, 남성의 경우가 여성인 경우보다 경제활동 유무에 따른 수면시간 차이가 더 컸습니다. 

 

'R' 카테고리의 다른 글

R을 활용한 데이터 분석  (0) 2024.12.08
R을 활용한 외부데이터 분석  (1) 2024.10.20

+ Recent posts