[R] 국민건강영양조사 분석 Start
BioinformaticsAndMe
국민건강영양조사
: 음주, 영양, 만성질환 등 500여 개 보건지표를 산출하는 국가 건강통계조사로 1998년에 도입하여 매년 1만여 명을 대상으로 실시
: 국민건강영양조사 18년도 원시자료 (v. 2020-09-01)
참여대상(row): 7,992명
변수(column): 785개
: 아래 홈페이지에서 기본DB의 SAS 다운로드
https://knhanes.cdc.go.kr/knhanes/sub03/sub03_02_02.do
1. Data loading
# 국민건강영양조사 18년도 원시자료 (v. 2020-09-01) 로딩
install.packages('data.table') ; install.packages('sas7bdat')
library(data.table)
library(sas7bdat)
sasr <- read.sas7bdat("./sas_class/hn18_all.sas7bdat")
data_sasr <- data.table(sasr)
dim(data_sasr)
2. Data overview
# Gender (Pie chart)
mytable <- table(data_sasr$sex)
names(mytable) <- c('Man', 'Woman')
lbls <- paste(names(mytable), " : ", mytable, sep="")
pie(mytable, labels = lbls, col=c("#56B4E9", "#E69F00"), main="Pie Chart of Gender\n (with sample sizes)")
# Age (Histogram)
hist(data_sasr$age, freq=T, col="gray", xlab="Age")
3. Data filtering
: 흡연량과 폐기능검사 사이의 간단한 분석을 위해 데이터 필터링
: 6개변수 selection
가. BS3_2 (하루평균 흡연량)
#888 : 비해당(문항3-③⑧)
#999 : 모름, 무응답
나. HE_fev1fvc (1초간 노력성 호기량 / 노력성 폐활량)
다. sex (성별)
#1 : 남자
#2 : 여자
라. age (나이)
#1~79 : 1~79세
#80 : 80세이상
마. HE_BMI (체질량지수)
바. HE_COPD (폐기능 판정결과)
#1 : 폐기능정상
#2 : 제한성환기장애
#3 : 폐쇄성환기장애
#9 : 판정불능
# Data filtering
New_data_sasr <- data_sasr[, c('BS3_2','HE_fev1fvc', 'sex', 'age', 'HE_BMI', 'HE_COPD')]
Parsed_data_sasr <- New_data_sasr[ BS3_2 != 999 & BS3_2 != 888 & is.na(HE_fev1fvc) != T,]
dim(Parsed_data_sasr)
#지표설명
FVC (Forced Vital Capacity; 노력성 폐활량)
-최대로 숨을 들이쉰 다음, 최대 노력으로 끝까지 내쉬었을 때 공기량
FEV1 (Forced Expiratory Volume in One second; 1초간 노력성 호기량)
-첫 1초간 얼마나 빨리 숨을 내쉴 수 있는지 보는 지표
FEV1/FVC ratio
-기관지폐쇄 유무를 확인하는 지표
-0.7 이하인 경우 숨을 내쉬는데 장애, 즉 기도폐쇄가 있음을 의미
4. Correlation test
# Correlation test (Raw data)
cor.test(Parsed_data_sasr$BS3_2, Parsed_data_sasr$HE_fev1fvc, method='pearson')
Pearson's product-moment correlation
data: Parsed_data_sasr$BS3_2 and Parsed_data_sasr$HE_fev1fvc
t = -2.8655, df = 642, p-value = 0.004299
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.18800432 -0.03542489
sample estimates:
cor
-0.112377
5. 계층화 추출법 후, correlation test
# Plotting
Temp_bin_frame <- Parsed_data_sasr[,Bin_group:= cut(BS3_2, c(-Inf, 5, 10, 15, 20, 25, 30, Inf), paste0(1:7))]
boxplot(Temp_bin_frame$HE_fev1fvc ~ Temp_bin_frame$Bin_group, outline=F, las=1, xlab='', ylab='')#, varwidth=T )
Bin_frame <- aggregate(Temp_bin_frame, by=list(Temp_bin_frame$Bin_group), mean)
plot(Bin_frame$BS3_2, Bin_frame$HE_fev1fvc, pch=19, las=1, xlab='', ylab='')
# Correlation test (After filtering)
cor.test(Bin_frame$BS3_2, Bin_frame$HE_fev1fvc, method='pearson')
Pearson's product-moment correlation
data: Bin_frame$BS3_2 and Bin_frame$HE_fev1fvc
t = -3.3085, df = 5, p-value = 0.02127
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.9739242 -0.2006617
sample estimates:
cor
-0.8285219
#Reference
1) https://www.khidi.or.kr/nutristat
2) https://github.com/seung-00/classification_obesity_risk_groups
3) https://m.blog.naver.com/PostView.nhn?blogId=i-doctor&logNo=220605517140&proxyReferer=https:%2F%2Fwww.google.com%2F
4) https://rsas.tistory.com/250
[R] 국민건강영양조사 분석 End
BioinformaticsAndMe