중선형 회귀모델로 알아본 연봉 예측 모델
어떤 직업이 연봉이 높을까요?
교육 수준, 직업 평판, 성별 비율 같은 요소들이 연봉에 어떤 영향을 줄까요?
오늘은 간단한 통계 모델을 이용해 직업 데이터(Prestige.csv)를 기반으로 연봉을 예측하고, 성별 격차까지 분석하여 데이터로 들여다보는 사회구조와 성별 격차에 대해 알아보겠습니다.
🧾 사용한 데이터는?
Prestige.csv라는 공개 데이터를 사용했습니다.
- education: 평균 교육 연수
- prestige: 직업의 사회적 평판 점수
- women: 여성 종사자 비율 (%)
- income: 평균 연봉
# 1. 필요한 패키지 설치 및 불러오기
install.packages("ggplot2")
install.packages("readr")
install.packages("dplyr")
install.packages("summarytools")
library(ggplot2)
library(readr)
library(dplyr)
library(summarytools)
# 2. 데이터 불러오기
url <- "https://raw.githubusercontent.com/bluesky0950/datasets/main/Prestige.csv"
newdata <- read_csv(url)
View(newdata)
# 3. 기초통계량
str(newdata)
summary(newdata)
dfSummary(newdata)
🔍 중선형 회귀 분석
분석 목적: 교육, 평판, 여성비율을 통해 연봉을 예측할 수 있을까?
# 4. 중선형 회귀 모델 생성
model <- lm(income ~ education + prestige + women, data = newdata)
summary(model)
Call:
lm(formula = income ~ education + prestige + women, data = newdata)
Residuals:
Min 1Q Median 3Q Max
-7715.3 -929.7 -231.2 689.7 14391.8
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -253.850 1086.157 -0.234 0.816
education 177.199 187.632 0.944 0.347
prestige 141.435 29.910 4.729 7.58e-06 ***
women -50.896 8.556 -5.948 4.19e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2575 on 98 degrees of freedom
Multiple R-squared: 0.6432, Adjusted R-squared: 0.6323
F-statistic: 58.89 on 3 and 98 DF, p-value: < 2.2e-16
회귀 모델 수식:
income = -253.85 + 177.2 * education + 141.4 * prestige - 50.9 * women
해석:
- 교육 연수 1년 증가 → 연봉 평균 +177.2
- 평판 점수 1점 증가 → 연봉 평균 +141.4
- 여성 비율 1% 증가 → 연봉 평균 -50.9
prestige, women은 통계적으로 유의미한 영향을, education은 상대적으로 덜 유의미한 영향을 미치는 모델입니다.
📈 예측 예시 <
조건: 교육 연수 9.5년, 평판 점수 80, 여성 비율 20%
# 5. 예측
new_obs <- data.frame(education = 9.5, prestige = 80, women = 20)
predict(model, newdata = new_obs) # 자동으로 예측해줌
예측 연봉 계산:
income = -253.85 + 177.2*9.5 + 141.4*80 - 50.9*20 ≈ 11,723.55
📈 변수별 시각화 요약
- 교육 연수: 증가할수록 연봉도 다소 증가
# 6-1. 교육 VS 연봉 시각화 : education vs income
ggplot(newdata, aes(x = education, y = income)) +
geom_point(color = "steelblue") +
geom_smooth(method = "lm", se = FALSE, color = "darkred") +
labs(title = "교육 연수 vs 연봉", x = "Education (years)", y = "Income")
- 평판 점수: 높은 평판 → 높은 연봉 (명확한 관계)
# 6-2. 평판 VS 연봉 시각화 : prestige vs income
ggplot(newdata, aes(x = prestige, y = income)) +
geom_point(color = "darkgreen") +
geom_smooth(method = "lm", se = FALSE, color = "blue") +
labs(title = "평판 점수 vs 연봉", x = "Prestige", y = "Income")
- 여성 비율: 비율 높을수록 연봉은 낮은 경향
# 6-3. 평판 VS 연봉 시각화 : women vs income
ggplot(newdata, aes(x = women, y = income)) +
geom_point(color = "purple") +
geom_smooth(method = "lm", se = FALSE, color = "orange") +
labs(title = "여성 비율 vs 연봉", x = "Women (%)", y = "Income")
특히 평판과 여성 비율은 강한 패턴을 보여줍니다. 이는 사회 구조나 업계 특성에 따른 차이일 수 있습니다.
⚖️ 성별 격차 분석
여성 비율을 기준으로 직군을 나눠 평균 연봉을 비교해봤습니다.
- 여성 비율 > 50%: 평균 연봉 낮음
- 여성 비율 ≤ 50%: 평균 연봉 높음
# 7. 그룹별 평균 연봉 계산
newdata2 <- newdata %>%
mutate(women_group = ifelse(women > 50, "여성 비율 높음", "여성 비율 낮음"))
ggplot(newdata2, aes(x = women_group, y = income, fill = women_group)) +
geom_boxplot() +
labs(title = "여성 비율에 따른 연봉 분포", x = "여성 비율 그룹", y = "Income") +
theme_minimal()
박스플롯 시각화 결과, 여성 비율이 높은 직군일수록 낮은 연봉 분포를 보였습니다.
⚖️ 결론
- 평판이 좋은 직업일수록 연봉이 높다 ✔
- 여성 비율이 높은 직군은 평균 연봉이 낮다 ✔
- 단순한 모델이지만 사회 구조와 불평등을 이해하는 데 유용 ✔
참고 : 이 데이터는 공개된 샘플 데이터입니다.
'IT관련' 카테고리의 다른 글
R을 활용한 당뇨병 데이터 분류 분석 (0) | 2025.04.16 |
---|---|
수면 시간과 스트레스가 수면의 질에 어떤 영향을 줄까? ( + R 회귀분석 ) (0) | 2025.04.09 |
R로 회귀 모델 만들기 : cars 주행 속도와 제동 거리 (0) | 2025.04.03 |
GDP로 보는 대한민국의 변화 – 경제성장, 출산율, 기대수명의 상관관계( + R코드) (0) | 2025.04.02 |
국내 인구동향 변화 분석 (1970~2023) ( + R코드 ) (0) | 2025.04.01 |