R

R데이터분석을 할 때 여러가지 경우의 수

S0LL 2024. 12. 8. 19:21

1. 데이터 전처리 과정

 

2. 종속변수 하나와 독립변수 여러 개를 설정

 

3. 모델을 만들기 전, 모델의 정확도를 높이기 위해 각각의 독립변수의 정규성과 종속변수에 미치는 영향성 확인

 

3.1. 종속변수 = 연속형 , 독립변수 = 연속형 인 경우

3.1.1 각 변수가 정규성을 따르는지 확인 (shapiro.test)

3.1.2. 정규성 여부에 따라 cor.test진행 ( 정규성을 따른다면 pearson, 정규성을 따르지 않는다면 spearman, 작은 데이터나 비선형적 관계라면 kendall 옵션적용 )

 

-예시 코드

cor.test(data$mpg, data$wt)


# Spearman 상관계수 및 검정
cor.test(mtcars$mpg, mtcars$wt, method = "spearman")

 

 

p-value<0.05 라면 두 변수의 선형관계에 통계적 유의성이 있다고 판단.

-1<상관계수<1 을 보고 양의 상관관계인지, 음의 상관관계인지 알 수 있음.


3.2 종속변수=범주형, 독립변수=연속형 인 경우

glm을 통해 검증을 할 예정이므로 각각의 정규성에 대한 검사를 할 필요는 없음


3.3 종속변수=범주형, 독립변수=범주형 인 경우

두 데이터가 모두 범주형인 경우 카이제곱 검정 사용

# 카이제곱 검정
chisq.test(data$gear, data$vs)

# 기댓값 확인
chisq.test(data$gear, data$vs)$expected

p-value < 0.05 이면 두 데이터가 독립적이지 않다고 판단(유의미한 영향을 미친다)


3.4 종속변수=연속형, 독립변수=범주형 인 경우

3.4.1 각 데이터의 정규성 확인(shapiro.test, qqplot, ppline)

3.4.2 각 데이터의 등분산성 확인(var.test, 3그룹이상이면 bartlett.test) / 정규성을 따르지 않는다면 fligner.test  혹은 leveneTest 사용

3.4.2 등분산성을 따른다면 t-test, 그룹이 3개라면 anova.test, 정규성을 따르지 않는다면 wilcox.test, 3그룹이상이면 kruskal.test 로 유의미한 영향을 미치는지 확인

3.4.3 anova 혹은 kruskal.test 를 진행 후 사후검증(TukeyHSD, dunn.test)

 

 

 

4. 모델 생성

4.1 종속변수가 정규성을 따르는 경우 MASS패키지 설치 후 rlm 을 이용해 모델 생성

4.2 종속변수가 정규성을 따르는 경우 glm을 통해 모델 생성

4.3 만약 종속변수가 범주형 이라면 exp를 사용해서 추가 검증

round(exp(cbind(coef(ret),confint(ret))),3)

 

5. 다중공선성, step

vif 를 통해 다중공선성을 확인하고 5 이상의 데이터는 제거

step을 통해 가지치기

 

6. 새로운 모델과 기존의 모델 비교

lmtest패키지 설치 후 lrtest 진행해서 두 모델의 설명력 비교

만약 가지치기를 통해 만든 모델의 설명력이 기존의 모델의 설명력과 비슷하다면 모수절약의 법칙에 의해 새로운 모델을 선택 후 함의 작성