본문 바로가기
데이터분석 찍어먹기/R

6일차 - 데이터 분석 [실습_9장]

by dbdbdeeep 2024. 7. 24.

"Do it! 쉽게 배우는 R 데이터 분석" 

책을 참고하여 R을 공부했으며, 글을 작성했습니다.


 


☑️ 한국복지패널데이터 분석 

🔍 데이터 준비

# install.packages("foreign")
library(foreign) # SPSS 파일 불러오기
library(dplyr)    # 전처리
library(ggplot2)# 시각화
library(readxl)  # 엑셀 파일 불러오기

 

🔍 데이터 불러오기

raw_data <- read.spss("./data/Koweps_hpc10_2015_beta1.sav", to.data.frame = T) # 데이터 불러오기
data <- raw_data
# 데이터 전처리 과정 중에 데이터에 문제가 생기면 여기서부터 다시 시작 (= 백업파일)

🔍 변수명 변경

실행화면

# 변수 이름 변경
welfare <- rename(welfare,
                  sex = h10_g3,                     
                  birth_year = h10_g4,              
                  marital_status = h10_g10,
                  religion = h10_g11,
                  job_code = h10_eco9,
                  income = p1002_8aq1,
                  region = h10_reg7)

분석에 사용할 변수들을 보기 편하게 변경을 진행하였다.


☑️ 실습 1. 성별에 따른 월급 차이 

1) 변수 검토 및 전처리   2) 변수 간 관계분석

1) 변수 검토 및 전처리 : 성별 변수 검토

범주형 변수 = 빈도
# 이상치 판단
table(welfare$sex)

실행화면

이상치 없음

# 결측치 판단
table(is.na(welfare$sex))
성별 변수를 범주형 변수로 변환
welfare$sex <- ifelse(welfare$sex == 1, "Male", "Female")

실행화면

성별값이 1 일 땐 Male , 1이 아닐 땐 Female로 변환

1) 변수 검토 및 전처리 : 월급 변수 검토

연속형 변수 = 요약통계
# 이상치 판단
summary(welfare$income)

실행화면

이상치는 월급이 없는 사람

0 이라는 값을 가진 사람 제외 => 결측치 NA로 변경해야 함

# 결측치 판단
table(is.na(welfare$income))

실행화면

현재 결측치 12030개

# 0인 값도 결측치로 변경 
welfare$income <- ifelse(welfare$income == 0, NA, welfare$income)
table(is.na(welfare$income))

 

실행화면


현재 결측치 12044개 = 14개 추가된 것을 확인 가능

 

2) 변수 간 관계분석 : 성별에 따른 월급 평균값 데이터가 필요 

sex_income <- welfare %>%
  filter(!is.na(income)) %>%
  group_by(sex) %>%
  summarise(income_mean = mean(income))

실행화면
실행화면

남자가 여자보다 평균적인 월급이 더 높은 결과가 나타났다.

그러나 통계적으로 유의미한 차이가 있는지 통계분석을 실시하는것이 바람직하다.

 

독립표본 t검정, 등분산 가정
sex_income_t <- welfare %>%
  filter(!is.na(income))

t.test(sex_income_t$income ~ sex_income_t$sex, var.equal = T)

실행화면

p-value가 0.05보다 작으므로 두 그룹 간의 유의한 차이가 있다

 

결론: 성별에 따른 월급은 통계적으로 유의한 차이가 있다