완벽한 논문을 위한 R 프로그래밍 분석
논문 작성 시 필요한 R 프로그래밍을 혼자서 해보겠다고 한지 몇 달 된 것 같다... 마감이 몇 달 안남았는데 다시 보기가 싫은 이 마음!
통계를 통해서 단계분석표는 물론 복잡한 회귀분석으로 기술분석 해야하는데 참.. 몸은 게으른데 마음은 안따라줘서 힘들다 (결론은 게을러서 안하고 있다는 뜻)
수업에서 배운 첫 번째 프로젝트를 정리하였다.
하고나면 너무 뿌듯하고 멋진데, 혼자 응용하려면 역시나 실패!
과한 욕심내지 말고 머리를 비우는 수밖에 없을 것 같다 ㅠㅠ
+ R cheat_sheet 첨부
주소 : www.koweps.re.kr
조사목적 : 빈곤층 및 차상위층의 가구형태, 소득수준, 취업상태 관련 실태변화 파악하여 정책지원에 기여
수집방법 : 설문조사를 통한 질의 답변
가구 추적 조사 : 약 5,000가구, 15,000명
변수 - 1,000여개, -> 활용 변수는 3 항목으로 가정(성별, 태어난 연도, 가처분 소득)
## SPSS 데이터용 패키지 설치
install.packages("foregin") -> SAS, SPSS 데이터셋을 불러올 때 사용한다
## 패키지 로드
library(foreign)
library(dplyr)
livbrary(ggplot2)
## SPSS 데이터 불러오기
raw_welfare <- read.spss("data_spss_Koweps2014.sav", to.data.frame = T)
welfare <- raw_welfare -> 카피의 습관화
## 데이터 검토 (5가지) - 파악 후 설계
dim(welfare)
str(welfare)
head(welfare)
summary(welfare)
View(welfare)
## 활용변수명 변경 -> 코딩북 참고
welfare <- rename(welfare,
sex = h0901_4,
birth = h0901_5,
income = h09_din)
## 절차
1. 성별 - 변수검토 및 정제 (변수검토, 수정 -> 정제:이상치 확인 및 결측처리)
2. 소득 - 변수검토 및 정제 (변수검토, 수정 -> 정제:이상치 확인 및 결측처리)
3. 성별 소득 평균 분석 (표생성 -> 그래프 생성)
1-1. 설별 - 변수검토 및 정제
class(welfare$sex) -> 속성 파악 "numeric"
summary(welfare$sex)
table(welfare$sex) -> 무응답 "9" 확인
welfare$sex <- ifelse(welfare$sex == 9, NA, welfare$sex ) -> 이상치 정제
table(is.na(welfare$sex))
1-2. 성별 - 변수값 변경
welfare$sex <- ifelse(welfare$sex ==1, "male", "female")
table(welfare$sex)
qplot(welfare$sex)
2-1. 소득 - 변수검토 및 수정
class(welfare$income) "numeric"
summary(welfare$income)
qplot(welfare$income)
qplot(welfare$income) + xlim(0, 10000)
2-2. 소득 - 이상치 확인 및 결측처리
table(is.na(welfare$income)) -> FALSE
3. 성별 소득 평균 분석
sex_income <- welfare %>%
group_by(sex) %>% -> 성별에 따른
summarise(mean_income = mean(income)) -> 평균 소득
ggplot(data = sex_income, aes(x = sex, y = mean_income)) + geom_col()
체크
- 가구주의 성별
- 여성 가구수/ 1인가구/ 미혼 등
가능성 검토&분석
- 1인가구 제외?
- 가구들끼리 결합? 등
"데이터 활용 아이디어를 생각해보자"
## 절차
1. 나이 - 변수검토 및 정제 (변수검토, 수정 -> 정제:이상치 확인 및 결측처리)
2. 소득 - 변수검토 및 정제 (변수검토, 수정 -> 정제:이상치 확인 및 결측처리)
3. 나이별 소득 평균 분석 (표생성 -> 그래프 생성)
1-1. 나이 - 변수검토 및 정제
class(welfare$birth) "numeric"
summary(welfare$birth)
qplot(welfare$birth)
1-2. 나이 - 이상치 확인
table(welfare$birth) -> 코딩북의 이상치 값인 "9999" 유무 확인
1-3. 나이 - 변수 생성
welfare$age <- 2014 - welfare$birth +1
summary(welfare$age)
qplot(welfare$age) -> 더 직관적으로 분석이 가능하다
2. 소득 - 변수검토 및 정제 (기완료)
3. 나이별 소득 평균 분석
age_income <- welfare %>%
group_by(age) %>% -> 나이별
summarise(mean_income = mean(income)) -> 평균 소득
ggplot(data = age_income, aes(x = age, y = mean_income)) + geom_point()
## 절차
1. 연령대 - 변수검토 및 정제 (변수검토, 수정 -> 정제:이상치 확인 및 결측처리)
2. 소득 - 변수검토 및 정제 (변수검토, 수정 -> 정제:이상치 확인 및 결측처리)
3. 연령대별 소득 평균 분석 (표생성 -> 그래프 생성)
1. 연령대 - 변수검토 및 정제
welfare <- welfare %>%
mutate(ageg = ifelse(age < 30, "young",
ifelse(age <= 59, "middle", "old"))) -> 연령대 변수 생성
table(welfare$ageg)
middle old young
3004 3979 65 -> "young"의 대표성 없음, 제외 결정
qplot(welfare$ageg)
2. 소득 - 변수검토 및 정제 (기완료)
3. 연령대별 소득 평균 분석
welfare_income <- welfare %>%
filter(ageg != "young") %>% -> "young" 변수를 제외한
group_by(ageg) %>% -> 연령대별
summarise(mean_income = mean(income)) -> 평균 소득
welfare_income
# A tibble: 2 x 2
ageg mean_income
<chr> <dbl>
1 middle 5018.
2 old 2049.
## 절차
1. 연령대 및 성별 소득 평균 분석 (표생성 -> 그래프 생성)
1-1 연령대 및 성별 소득 평균표 생성
sex_income <- welfare %>%
filter(ageg != "young") %>% -> "young"변수를 제외한
group_by(ageg, sex) %>% -> 연령대 및 성별
summarise(mean_income = mean(income)) -> 평균 소득
sex_income
# A tibble: 4 x 3
# Groups: ageg [2]
ageg sex mean_income
<chr> <chr> <dbl>
1 middle female 2869.
2 middle male 5420.
3 old female 1179.
4 old male 2674.
1-2. 연령대 및 성별 소득 그래프 생성
ggplot(data = sex_income, aes(x = ageg, y = mean_income, fill = sex)) + geom_col()
ggplot(data = sex_income, aes(x = ageg, y = mean_income, fill = sex)) + geom_col(position = "dodge") ## position 변경(default = "stack")
개인적으로 이 데이터에는 복합형 막대 그래프가 더 적합하다고 생각한다.