목차

R로 배우는 HR 통계 기초: 데이터 분석의 첫걸음

“통계는 어렵고, R은 낯설다”고 느끼시나요? 이 문서는 통계 이론과 R 코드 실습을 함께 엮어, 통계의 '원리'를 이해하고 R로 '구현'하는 능력을 동시에 기르도록 돕는 완전 초보자용 가이드입니다.


⚙️ 0단계: 분석을 위한 준비 운동

본격적인 통계 여행을 떠나기 전, 우리의 '탐사선(R)'과 '조종석(RStudio)'을 준비해야 합니다.

1. R과 RStudio 설치: '엔진'과 '운전석'

2. Tidyverse 패키지 설치: '만능 공구 세트'

'패키지'는 R의 능력을 확장하는 '앱(App)'과 같습니다. 그중 `tidyverse`는 데이터 분석에 필요한 대부분의 도구를 모아놓은 '만능 공구 세트'입니다. 이것 하나만 설치해도 충분합니다.

RStudio를 실행한 후, 아래 명령어를 Console 창에 입력하고 Enter 키를 누르세요.

# tidyverse 패키지(만능 공구 세트) 설치하기
install.packages("tidyverse")

3. 데이터 불러오기: 분석할 '재료' 준비

이제 분석할 데이터를 R로 불러옵니다. 이 가이드에서는 `my_data`라는 이름으로 데이터를 사용하겠습니다.

# 앞으로 tidyverse 공구 세트를 사용하겠다고 선언 (R을 켤 때마다 실행)
library(tidyverse)

# CSV 파일을 불러와 my_data 라는 이름의 상자에 저장
my_data <- read_csv("C:/Users/내PC이름/Desktop/분석할_데이터.csv")

# 데이터가 잘 불어왔는지 첫 6줄만 확인
head(my_data)

📊 1장: 기술 통계 - 데이터의 첫인상 파악하기

기술 통계(Descriptive Statistics)는 우리가 가진 데이터가 어떤 특징을 가졌는지 요약하고 설명하는 것입니다. 마치 처음 만난 사람의 '자기소개'를 듣는 것과 같습니다.

1. 중심 경향성: 데이터는 어디에 모여 있을까?

데이터들이 어떤 값을 중심으로 모여 있는지를 나타냅니다.

# my_data의 '만족도' 점수에 대한 평균과 중앙값 계산
# %>% (파이프 연산자): 왼쪽의 데이터를 가지고 오른쪽 작업을 하라는 의미 (Ctrl+Shift+M)
my_data %>%
  summarise(
    평균만족도 = mean(만족도, na.rm = TRUE),  # na.rm=TRUE : 빈 값(NA)은 제외하고 계산
    중앙값만족도 = median(만족도, na.rm = TRUE)
  )

2. 변동성: 데이터는 얼마나 흩어져 있을까?

데이터가 중심에서 얼마나 넓게 퍼져있는지를 나타냅니다.

# 만족도 점수의 표준편차 계산
my_data %>%
  summarise(
    만족도_표준편차 = sd(만족도, na.rm = TRUE)
  )

3. 분포 시각화: 데이터의 전체적인 '모양' 보기

숫자 요약만으로는 알 수 없는 데이터의 전체적인 형태를 그래프로 확인합니다.

# 만족도 점수의 분포를 히스토그램으로 그리기
ggplot(data = my_data, aes(x = 만족도)) +
  geom_histogram(bins = 10, fill = "skyblue", color = "white") +
  labs(title = "직무 만족도 점수 분포", x = "만족도 점수", y = "인원수")

🔍 2장: 추론 통계 - 일부로 전체를 추측하기

추론 통계(Inferential Statistics)는 우리가 가진 일부 데이터(표본)를 통해, 우리가 보지 못한 전체(모집단)의 특성을 추측하는 과정입니다. 마치 국 한 숟가락을 맛보고 솥 전체의 간을 판단하는 것과 같습니다.

여기서 가장 중요한 개념은 p-value입니다.

1. 차이 검정: 두 그룹은 정말 다른가?

두 개 이상의 그룹 간에 평균 차이가 통계적으로 유의미한지 검정합니다.

# 부서(A팀, B팀)에 따라 만족도에 차이가 있는지 t-검정
t.test(만족도 ~ 부서, data = my_data)
# 결과에서 p.value가 0.05보다 작은지 확인합니다.
# aov() 함수로 ANOVA 모델 생성
anova_model <- aov(만족도 ~ 부서, data = my_data)
summary(anova_model) # 결과 테이블에서 p-value (Pr(>F) 값) 확인

2. 관계 검정: 두 요소는 서로 관련이 있을까?

두 변수(요소)가 서로 어떤 관계를 맺고 있는지 파악합니다.

# 근속연수와 만족도의 상관계수 계산
cor(my_data$근속연수, my_data$만족도, use = "complete.obs") # use="...": NA값 처리 옵션

# 관계를 산점도로 시각화
ggplot(data = my_data, aes(x = 근속연수, y = 만족도)) +
  geom_point() + # 점으로 나타내기
  geom_smooth(method = "lm") # 추세선 추가
# 직급과 퇴사여부로 교차표 생성
cross_table <- table(my_data$직급, my_data$퇴사여부)

# 카이제곱 검정 실행
chisq.test(cross_table) # p-value 확인

🔮 3장: 예측 모델링 - 관계를 넘어 예측으로

회귀분석(Regression Analysis)은 여러 원인 변수들이 특정 결과 변수에 얼마나 영향을 미치는지 분석하여, 미래의 결과를 '예측'하는 모델을 만드는 것입니다.

# lm() 함수로 선형 회귀모델(Linear Model) 생성
# 만족도 ~ 근속연수 + 월급 : 만족도를 근속연수와 월급으로 예측
model <- lm(만족도 ~ 근속연수 + 월급, data = my_data)

# 결과 요약 확인 (가장 중요!)
summary(model)

summary(model) 핵심 해석법:


💡 최종 정리:
이 가이드를 통해 우리는 R이라는 도구로 데이터의 ①자기소개를 듣고(기술통계) → ②관계를 추측하고(추론통계) → ③미래를 예측하는(회귀분석) 기본적인 데이터 분석의 전 과정을 경험했습니다. 통계는 정답을 찾는 학문이 아니라, 데이터를 통해 더 나은 질문과 합리적인 의사결정을 하도록 돕는 과정입니다.