내용으로 건너뛰기
Dream of E&C - Wiki
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
로그인
>
최근 바뀜
미디어 관리자
추적:
•
📂 Excel
wiki:hr:statistics:r_programming_guide
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== R로 배우는 HR 통계 기초: 데이터 분석의 첫걸음 ====== **"통계는 어렵고, R은 낯설다"고 느끼시나요? 이 문서는 통계 이론과 R 코드 실습을 함께 엮어, 통계의 '원리'를 이해하고 R로 '구현'하는 능력을 동시에 기르도록 돕는 완전 초보자용 가이드입니다.** {{wiki:hr:statistics:r_programming_guide_1.png?400}} ---- ===== ⚙️ 0단계: 분석을 위한 준비 운동 ===== 본격적인 통계 여행을 떠나기 전, 우리의 '탐사선(R)'과 '조종석(RStudio)'을 준비해야 합니다. ==== 1. R과 RStudio 설치: '엔진'과 '운전석' ==== * **R**: 통계 계산을 실제로 수행하는 핵심 **'엔진'**입니다. * **설치**: [[https://cran.r-project.org/|CRAN 공식 사이트]]에서 최신 버전을 다운로드하여 설치합니다. * **RStudio**: R이라는 엔진을 편하게 조작하는 **'운전석'**입니다. 코드 작성, 결과 확인, 그래프 보기를 편리하게 해줍니다. * **설치**: [[https://posit.co/download/rstudio-desktop/|RStudio 공식 사이트]]에서 무료 버전을 다운로드하여 설치합니다. (R이 먼저 설치되어 있어야 합니다.) ==== 2. Tidyverse 패키지 설치: '만능 공구 세트' ==== '패키지'는 R의 능력을 확장하는 '앱(App)'과 같습니다. 그중 **`tidyverse`**는 데이터 분석에 필요한 대부분의 도구를 모아놓은 **'만능 공구 세트'**입니다. 이것 하나만 설치해도 충분합니다. RStudio를 실행한 후, 아래 명령어를 Console 창에 입력하고 Enter 키를 누르세요. <code> # tidyverse 패키지(만능 공구 세트) 설치하기 install.packages("tidyverse") </code> ==== 3. 데이터 불러오기: 분석할 '재료' 준비 ==== 이제 분석할 데이터를 R로 불러옵니다. 이 가이드에서는 `my_data`라는 이름으로 데이터를 사용하겠습니다. <code> # 앞으로 tidyverse 공구 세트를 사용하겠다고 선언 (R을 켤 때마다 실행) library(tidyverse) # CSV 파일을 불러와 my_data 라는 이름의 상자에 저장 my_data <- read_csv("C:/Users/내PC이름/Desktop/분석할_데이터.csv") # 데이터가 잘 불어왔는지 첫 6줄만 확인 head(my_data) </code> ---- ===== 📊 1장: 기술 통계 - 데이터의 첫인상 파악하기 ===== **기술 통계(Descriptive Statistics)**는 우리가 가진 데이터가 어떤 특징을 가졌는지 요약하고 설명하는 것입니다. 마치 처음 만난 사람의 '자기소개'를 듣는 것과 같습니다. ==== 1. 중심 경향성: 데이터는 어디에 모여 있을까? ==== 데이터들이 어떤 값을 중심으로 모여 있는지를 나타냅니다. * **평균 (Mean)**: 모든 값을 더해 개수로 나눈 값. 가장 일반적이지만, 극단적인 값(이상치)에 영향을 많이 받습니다. * ''예시'': 우리 팀 9명의 연봉은 5천만원인데, 팀장님 연봉이 5억이라면 팀 평균 연봉은 실제보다 훨씬 높게 계산됩니다. * **중앙값 (Median)**: 모든 값을 순서대로 나열했을 때 정확히 가운데 있는 값. 이상치의 영향을 받지 않아 안정적입니다. * ''예시'': 위와 같은 상황에서, 중앙값은 5천만원에 가깝게 계산되어 팀의 일반적인 연봉 수준을 더 잘 보여줍니다. <code> # my_data의 '만족도' 점수에 대한 평균과 중앙값 계산 # %>% (파이프 연산자): 왼쪽의 데이터를 가지고 오른쪽 작업을 하라는 의미 (Ctrl+Shift+M) my_data %>% summarise( 평균만족도 = mean(만족도, na.rm = TRUE), # na.rm=TRUE : 빈 값(NA)은 제외하고 계산 중앙값만족도 = median(만족도, na.rm = TRUE) ) </code> ==== 2. 변동성: 데이터는 얼마나 흩어져 있을까? ==== 데이터가 중심에서 얼마나 넓게 퍼져있는지를 나타냅니다. * **표준편차 (Standard Deviation)**: 값들이 평균에서 평균적으로 얼마나 떨어져 있는지를 나타냅니다. 표준편차가 크면 데이터가 넓게 퍼져있고(개인차가 크고), 작으면 평균 주변에 모여있다는 의미입니다. * ''예시'': 두 부서의 평균 만족도가 4점으로 같더라도, A부서의 표준편차가 B부서보다 크다면, A부서는 만족도가 매우 높은 사람과 매우 낮은 사람이 섞여있다는 의미일 수 있습니다. <code> # 만족도 점수의 표준편차 계산 my_data %>% summarise( 만족도_표준편차 = sd(만족도, na.rm = TRUE) ) </code> ==== 3. 분포 시각화: 데이터의 전체적인 '모양' 보기 ==== 숫자 요약만으로는 알 수 없는 데이터의 전체적인 형태를 그래프로 확인합니다. * **히스토그램**: 데이터가 어떤 구간에 얼마나 많이 분포하는지를 보여주는 막대그래프입니다. * ''용도'': 연령대 분포, 만족도 점수 분포 등 연속된 숫자 데이터의 형태를 볼 때 사용합니다. <code> # 만족도 점수의 분포를 히스토그램으로 그리기 ggplot(data = my_data, aes(x = 만족도)) + geom_histogram(bins = 10, fill = "skyblue", color = "white") + labs(title = "직무 만족도 점수 분포", x = "만족도 점수", y = "인원수") </code> ---- ===== 🔍 2장: 추론 통계 - 일부로 전체를 추측하기 ===== **추론 통계(Inferential Statistics)**는 우리가 가진 일부 데이터(표본)를 통해, 우리가 보지 못한 전체(모집단)의 특성을 추측하는 과정입니다. 마치 국 한 숟가락을 맛보고 솥 전체의 간을 판단하는 것과 같습니다. 여기서 가장 중요한 개념은 **p-value**입니다. * **p-value**: "우리가 데이터에서 발견한 차이나 관계가 순전히 '우연'에 의해 발생했을 확률" * **해석**: **p-value가 0.05보다 작으면**, 이 결과가 우연일 확률이 5% 미만이라는 뜻이므로, 우리는 **"통계적으로 유의미하다"**고 말하며, 우리의 주장이 맞다고 판단합니다. ==== 1. 차이 검정: 두 그룹은 정말 다른가? ==== 두 개 이상의 그룹 간에 평균 차이가 통계적으로 유의미한지 검정합니다. * **t-검정 (t-test)**: **''두 개''**의 그룹 간 평균을 비교할 때 사용합니다. * ''HR 질문 예시'': "영업팀과 마케팅팀의 직무 만족도 평균에 차이가 있는가?" <code> # 부서(A팀, B팀)에 따라 만족도에 차이가 있는지 t-검정 t.test(만족도 ~ 부서, data = my_data) # 결과에서 p.value가 0.05보다 작은지 확인합니다. </code> * **분산분석 (ANOVA)**: **''세 개 이상''**의 그룹 간 평균을 비교할 때 사용합니다. * ''HR 질문 예시'': "영업팀, 마케팅팀, 개발팀의 직무 만족도 평균에 차이가 있는가?" <code> # aov() 함수로 ANOVA 모델 생성 anova_model <- aov(만족도 ~ 부서, data = my_data) summary(anova_model) # 결과 테이블에서 p-value (Pr(>F) 값) 확인 </code> ==== 2. 관계 검정: 두 요소는 서로 관련이 있을까? ==== 두 변수(요소)가 서로 어떤 관계를 맺고 있는지 파악합니다. * **상관 분석 (Correlation)**: **''두 숫자형 변수''** 간의 직선적인 관계를 분석합니다. * ''HR 질문 예시'': "근속연수가 길어질수록 직무 만족도도 높아지는가?" * **해석**: 상관계수(r)는 -1 ~ 1 사이의 값을 가지며, 1에 가까우면 강한 양의 관계, -1에 가까우면 강한 음의 관계, 0에 가까우면 관계가 없음을 의미합니다. <code> # 근속연수와 만족도의 상관계수 계산 cor(my_data$근속연수, my_data$만족도, use = "complete.obs") # use="...": NA값 처리 옵션 # 관계를 산점도로 시각화 ggplot(data = my_data, aes(x = 근속연수, y = 만족도)) + geom_point() + # 점으로 나타내기 geom_smooth(method = "lm") # 추세선 추가 </code> * **카이제곱 검정 (Chi-squared Test)**: **''두 범주형 변수''** 간의 관련성을 분석합니다. * ''HR 질문 예시'': "직급(사원/대리)에 따라 퇴사 여부(Yes/No)에 차이가 있는가?" <code> # 직급과 퇴사여부로 교차표 생성 cross_table <- table(my_data$직급, my_data$퇴사여부) # 카이제곱 검정 실행 chisq.test(cross_table) # p-value 확인 </code> ---- ===== 🔮 3장: 예측 모델링 - 관계를 넘어 예측으로 ===== **회귀분석(Regression Analysis)**은 여러 원인 변수들이 특정 결과 변수에 얼마나 영향을 미치는지 분석하여, 미래의 결과를 '예측'하는 모델을 만드는 것입니다. * **선형 회귀분석**: '직무 만족도'라는 **''숫자형 결과''**를 예측할 때 사용합니다. * ''HR 질문 예시'': "직원의 근속연수, 월급, 상사와의 관계 점수가 직무 만족도에 각각 얼마나 영향을 미칠까?" <code> # lm() 함수로 선형 회귀모델(Linear Model) 생성 # 만족도 ~ 근속연수 + 월급 : 만족도를 근속연수와 월급으로 예측 model <- lm(만족도 ~ 근속연수 + 월급, data = my_data) # 결과 요약 확인 (가장 중요!) summary(model) </code> **''summary(model)'' 핵심 해석법:** * **''Estimate''**: 각 원인이 1단위 증가할 때 결과가 얼마나 변하는지 (영향력의 크기) * **''Pr(>|t|)'' (p-value)**: 이 값이 0.05보다 작고, 옆에 **별(''*'')이 많을수록** 중요한 원인 변수임을 의미합니다. * **''Adjusted R-squared''**: 이 모델이 결과(만족도)의 변동을 몇 %나 설명하는지 (모델의 전반적인 설명력) ---- > **💡 최종 정리**: > 이 가이드를 통해 우리는 R이라는 도구로 데이터의 **①자기소개를 듣고(기술통계) → ②관계를 추측하고(추론통계) → ③미래를 예측하는(회귀분석)** 기본적인 데이터 분석의 전 과정을 경험했습니다. 통계는 정답을 찾는 학문이 아니라, 데이터를 통해 더 나은 질문과 합리적인 의사결정을 하도록 돕는 과정입니다.
wiki/hr/statistics/r_programming_guide.txt
· 마지막으로 수정됨:
2025/07/31 06:35
저자
syjang0803
문서 도구
문서 보기
이전 판
역링크
맨 위로