728x90
SMALL
- 부트캠프 기간 중 진행되었던 데이터 분석 프로젝트들은 따로 분리해서 관리하고자 합니다!
- 우선 전에 진행했던 프로젝트들을 정리한 후, 추후 진행될 프로젝트들도 정기적으로 올려보도록 하겠습니다. :)
- 해당 글에서는 전에 진행되었던 한국복지패널 데이터로 한국인의 삶을 파악해보는 프로젝트를 정리하겠습니다.
😀 한국복지패널 데이터로 '한국인의 삶 파악해보기'
💭 데이터 준비 및 기본 탐색
- 패키지 로드 및 데이터 불러오기
- 원본 데이터 파일(.sav)를 읽어와 복사본을 생성하여 분석에 활용하였습니다.
- .sav 파일은 spss에서부터 제공되는 파일이기에 read_spss() 함수로 읽어들여야 합니다.
- 기본 탐색
- 데이터의 앞부분(head())과 뒷부분(tail())을 확인해 전체적인 구조를 먼저 파악해 봤습니다.
- shape, info(), describe() 함수를 통해 행/열의 개수, 변수의 타입, 요약 통계량 및 이상치와 결측치 유무를 체크!
♻️ 변수 선택과 컬럼명 변경
- 컬럼이 총 836개나 되기 때문에 분석에 활용할 주요 변수를 선택하는 과정이 필요했습니다.
- 주제에 따른 하위 목표들을 설정한 뒤, 필요한 컬럼을 선택해봤을 때, 다음과 같이 7개가 선택되었습니다.
- 성별 (sex): 기존 변수명은 'h14_g3'
- 태어난 연도 (birth): 기존 변수명은 'h14_g4'
- 혼인 상태 (marriage_type): 기존 변수명은 'h14_g10'
- 종교 (religion): 기존 변수명은 'h14_g11'
- 월급 (income): 기존 변수명은 'p1402_8aq1'
- 직업 코드 (code_job): 기존 변수명은 'h14_eco9'
- 지역 코드 (code_region): 기존 변수명은 'h14_reg7'
- 위처럼 변수명을 보다 이해하기 쉽도록 변경(rename)하여, 이후 분석 과정의 가독성을 높였습니다.
✨ 데이터 전처리
💡 변수별 전처리
- 성별
- 각 성별의 빈도수를 확인하여, 이상치 및 결측치를 체크!
- 또한, 이상치로 간주되는 값을 np.where()를 통해 결측치로 변경한 후, 필요한 경우에는 제거하였습니다.
- 숫자형 코드(1, 2)로 되어 있는 데이터를 'male'과 'female'이라는 문자형으로 변경하였습니다.
- 마지막으로 성별 빈도를 막대 그래프로 표현하여 분포를 확인하였습니다.
- 월급
- 월급의 분포와 요약 통계량을 확인하고, 히스토그램을 통해 분포 형태를 시각화하였습니다.
- 결측치는 제거하고, 성별에 따른 월급 평균을 그룹별로 계산하여 비교 분석하였습니다.
💡 파생 변수(나이) 생성
- 태어난 연도를 바탕으로 2019년 기준(데이터가 2019년 데이터이기 때문에) '나이' 변수를 생성하였습니다. (2019 - birth + 1)
- 나이 분포를 히스토그램으로 확인하고, 나이별 월급 평균을 선 그래프로 그려 어느 연령대에 월급이 최고인지 추세를 파악하였습니다.
🎯 하위 목표에 따른 분석
💡 1. 연령대에 따른 월급 차이
- 연령대를 다음과 같이 구분해 추후 계속 사용하였습니다.
- 초년(young)은 30세 미만
- 중년(middle)은 30세 이상 59세 미만
- 노년(old)은 59세 이상
- 새로운 'ageg' 변수를 생성하여 각 그룹(위와 같이 연령대를 구분시켜)의 빈도를 저장했습니다!
- 연령대별 월급 평균을 계산하고 막대 그래프로 시각화해서 어느 연령대의 월급이 높은지를 비교하였습니다.
💡 2. 연령대와 성별에 따른 월급 차이
- 연령대와 성별을 동시에 고려해 각 그룹별 월급 평균을 계산하였습니다.
- 초년층에서는 남녀 간의 월급 차이가 크지 않았으나, 중년부터는 큰 차이가 나타나기 시작했습니다.
- 더 세부적인 분석을 위해서 나이와 성별에 따른 월급 평균 추세 그래프도 작성해보았습니다.
- 남성의 경우 50세까지 소득이 증가하다 급격히 감소하는 반면, 여성은 30대 중반부터 서서히 감소하는 경향을 보였습니다.
💡 3. 직업별 월급 차이
- 직업 코드를 분석하기 위해 별도의 엑셀 파일인 Codebook에서부터 직업 코드와 직업명의 매핑 정보를 불러와 결합(merge)하였습니다.
- 각 직업별로 평균 월급을 계산한 후, 월급이 가장 높은 상위 10개 직업과 가장 낮은 하위 10개 직업을 도출하였습니다.
💡 4. 성별 직업 빈도
- 남성과 여성 각각에서 직업별 빈도를 산출하여 상위 10개 직업을 추출하였습니다.
- 성별에 따른 직업 분포를 막대 그래프로 시각화해서 각 성별에서 많이 종사하는 직업군을 파악해 보았습니다.
- 남성: 작물 재배 종사자, 자동차 운전원, 경영 관련 사무원 등
- 여성: 작물 재배 종사자, 청소원 및 환경미화원, 매장 판매 종사자 등
💡 5. 종교 유무에 따른 이혼율 분석
- 종교 변수의 코드(1, 2)를 '종교'와 '무교'로 재설정하였습니다.
- 혼인 상태 값도 재분류하여, '유배우', '사별', '이혼', '별거', '미혼', '기타' 등으로 구분하였습니다.
- '이혼' 여부를 나타내는 새로운 변수를 생성한 후, 종교 유무별 및 연령대별로 이혼율을 계산하였습니다.
- (추출할 때는 .query(), 연산하고 다시 집어넣을 때는 .assign() 꼭 기억하자...!)
- 결과적으로 초년생들은 대부분 결혼을 하지 않았기에 제외를 시켰고, 그 외 중년, 노년층에서는 무교인 사람들의 이혼율이 살짝 높은 걸 볼 수 있었습니다.
💡 6. 지역별 연령대 비율 분석
- 지역 코드(1~7)를 바탕으로 '서울', '수도권', '부산/경남/울산', '대구/경북', '대전/충남', '강원/충북', '광주/전남/전북/제주도'로 매핑하였고,
- 각 지역별로 연령대(young, middle, old)의 빈도와 전체 인구 대비 비율을 계산하였습니다.
- 결과적으로 대구/경북 지역에 노년층이 많아보이고, 수도권에 초년층이 많아보이는 것을 확인했습니다!
- 추가적으로 해당 데이터를 pivot 형태로 만들어 누적 그래프도 한 번 만들어보았습니다. 누적 그래프로 보니 지역별 연령대 분포를 조금 더 편리하게 볼 수가 있었습니다.
✨ 향후에는 또 어떤 분석을 할 수 있을까...?
💡 분석 결론
- 연령별 월급: 중년층이 가장 높은 평균 월급을 보였으며, 초년 및 노년층은 그에 비해 월급이 낮았습니다.
- 성별 월급 격차: 30대 이후부터 남녀 간 월급의 차이가 두드러지며, 남성은 50세 이전 최고점을 찍은 후 급격히 감소하는 반면, 여성은 보다 완만한 감소 추세를 보였습니다.
- 직업과 월급: 관리직 및 전문직 계열이 고소득군에 속하며, 단순 노동 및 서비스업 종사자들이 저소득군에 분포했습니다.
- 종교와 이혼율: 종교 유무에 따른 이혼율 차이는 미미하지만, 연령대별 세부 분석에서는 다소 차이가 관찰되었습니다.
- 지역별 인구 구조: 일부 지역(대구나 경북)은 노년층 비중이 높아 향후 사회복지 정책이나 인구구조 변화에 대한 추가 분석을 진행해봐도 좋을 것 같습니다.
💡 향후 분석
- 월급 감소 시점 및 원인에 대한 심층 분석을 진행해볼 수 있을 것 같습니다.(다른 직업으로의 이동, 경제 상황 변화하는 것 등 고려)
- 성별 및 지역별 추가 상관관계 분석을 통해 사회경제적으로 불평등 구조도 탐구해볼 수 있을 듯 합니다.
728x90
LIST
'Projects > LG U+' 카테고리의 다른 글
[Data Analysis] 병원 No-Show 데이터 (0) | 2025.03.10 |
---|---|
[Data Analysis] 심부전 데이터 (8) | 2025.03.09 |
[Data Analysis] 야후 파이낸스 주식 데이터 (4) | 2025.03.05 |
[Data Analysis] 미국 항공기 운항 데이터 (4) | 2025.03.02 |
[Data Analysis] 다나와 & 미세먼지 & 행복 지수 데이터 (2) | 2025.02.20 |