1단계 데이터 수집
2단계 데이터 클린징(결측치 확인 등)
3단계 정규성 검정
4단계 정규성에 따른 변수 변환(변수를 정규분포를 하는 형태로 변환)
5단계 T-test, 카이스퀘어 검정
6단계 상관분석, 회귀분석
res <- read.csv("", header=T, sep=",")
#작업폴더지정
setwd("C://Users//ncufo//OneDrive//바탕 화면")
#현재작업폴더확인
getwd()
str(res)
#데이터세트의 구조 : 숫자형(number), 정수형(integer), 문자형(character), 요인형(factor), 논리형(TRUE/FULSE)
head(res, 3)
#데이터세트 res에서 3개의 데이터만 보려고 할 때
#변수의 평균값
mean(데이터세트$변수명)
mean(res$age)
#결측치가 있는 경우 제거
mean(res$age, na.rm=TRUE)
#표준편차
sd(res$age)
#히스토그램
hist(res$age)
plot(res$age)
boxplot(res$age)
#상관매트릭스
library(corrplot)
corrplot(res2, method="circle")
#데이터세트에서 원하는 데이터만 선택하고자 할 때
res3 <- subset(res, res$age>=65)
예제)
res$HE_glu에서 결측치가 있는 변수를 제외하고 새로운 데이터세트를 만들어보기
res3<-subset(res, is.na(res$HE_glu)==FALSE)
#is.na(변수명)은 변수가 결측치(NA)면 TRUE값이 됨
#결측치 개수 확인
table(is.na(res$HE_glu)
#결측치 제거
na.omit(res)
#데이터세트에서 새로운 조건으로 데이터를 추가할 때
예제)
나이가 65세 이상이면 1, 미만이면 0인 age65인 변수를 만들어보기
res$age65 <- ifelse(res$age >=65, 1, 0)
#변수의 특성을 바꿀때
#숫자형으로 저장된 변수를 요인형으로 바꾸기, 데이터세트$변수명 <-as.factor(데이터세트$변수명)
#명목변수의 % 구하기
#res$sex변수를 명목변수로 바꾼다.
res$sex<- as.factor(res$sex)
c=table(res$sex)
prop.table(c)
*통계기법 선택하기*
1) 변수의 특성 파악하기
문제_고혈압진단 여부에 따른 수축기고혈압의 차이
1_고혈압진단 여부(독립변수, 명목변수), 수축기고혈압(종속변수, 연속변수)
2) 명목변수 개수 확인하기
2_고혈압진단여부의 명목변수는 2개(고혈압진단=예, 아니오)
3) 정규분포인지 비정규분포인지 확인하여 통계기법 선택
*명목변수는 정규성검정이 필요하지 않음
종속변수 | |||||
변수의 특성 | 변수개수 | 연속변수 | 명목변수 | ||
독립변수 | 명목변수 | 2 | 정규분포 | 비정규분포 | 카이스퀘어검정 |
t-test | Mann-Whitney U test | ||||
3 | ANOVA | Kruskal-Wallis test | |||
연속변수 | 회귀분석/상관분석 | 로짓회귀분석 |
*정규화*
1) 정규성 검정 -> 정규분포 O -> t-test
2) 정규성 검정 -> 정규분포 X -> log변환, 1/변환, 루트변환 -> t-test
*재검정 했는데도 정규분포가 아니면 비모수 검정
#정규성검정
shapiro.test(res$age)p-value값이 <0.05이면 정규분포 X, 변환해서 재검정p-value값이 <0.05가 아니면 정규분포 O
*t-test는 모집단의 정보를 알지 못하면서 분산이 같을 것을 가정한 검정이기 때문에 분산이 같은지 검정해야 한다. 분산이 다르면 Welch's test 해서 비교1) 두 집단의 분산이 같은지 검정 : var.test()var.test(res$age~res$CKD)결과값이 p<0.05가 아니면 분산이 같다는 귀무가설을 기각할 수 없음. = 분산이 같음 t-test 진행 가능1-1) t-test 진행t.test(age~CKD, var.equal=TRUE, data=res)결과값이 p<0.05이 아니면 두 군의 평균값의 차이가 유의미하지 않다는 귀무가설을 기각하지 못함1-2) Welch's testt.test(age~CKD, data=res)
#비율비교대상 수가 10개 미만인 경우 fisher's exact test, 10개 이상이면 카이스퀘어 검정1) 대상 수가 10개 미만이면 fisher.test(명목변수, 명목변수)문제_성별에 따른 교육정도의 차이를 chisq.test를 통해 검증하고자 한다.chisq.test(res$incm, res$sex)
결과값이 p<0.05이면 성별에 따른 교육정도의 비율 차이가 있다고 판단한다.
#상관분석 : 연속변수 사이의 상관성 확인
#회귀계수 coef(lm)
#신뢰구간 exp(confint(lm))
#로지스틱회귀분석 : 종속면수가 명목변수(예.아니오)일 때 독립변수의 영향을 관찰
ex) 고혈압진단 여부(예.아니오)에 때한 체중(연속변수)의 영향 등
'20대 성장기 > 공부' 카테고리의 다른 글
빅데이터 디자인실무 1급 과정_파이썬 프로그래밍 [2] (0) | 2021.11.16 |
---|---|
빅데이터 디자인실무 1급 과정_파이썬 프로그래밍 [1] (0) | 2021.11.11 |
ESG 경영 이해하기 1, 책 리뷰 :: 이해관계자 자본주의 (0) | 2021.07.08 |
R 프로그래밍 복습, k-mooc 데이터 과학을 위한 R프로그래밍 1주차~8주차 (0) | 2021.06.22 |
독서록 :: 플랜 드로 다운_식량/여성 (0) | 2021.06.01 |