1학년 / 1학기 / ADsP · 데이터분석 준전문가 / 5강

5편 · R 기초, 데이터 마트, 결측값과 이상값

이번 강의에서 배울 것

  • R 벡터의 형 변환 규칙, 재활용 규칙, 인덱싱 결과를 손으로 예측한다.
  • 요약변수와 파생변수, reshape·sqldf·plyr의 역할을 구분한다.
  • EDA의 4주제와 결측값 처리 방법(완전분석, 평균·회귀·확률·다중 대치)을 설명한다.
  • ESD와 사분위수(IQR) 기준으로 이상값을 판정하고 상자그림을 해석한다.

학습 경로 · 3과목 1장

← 4편 · 분석 마스터플랜 · 다음: 6편 · 통계의 이해 →

범위: 교재 3과목 1장 — 01 R 기초(설치·기본 사용법, 기본 문법), 02 데이터 마트, 03 데이터 탐색(EDA, 결측값, 이상값).

형광펜 읽는 법: 노랑 핵심 정의·결론 · 빨강 시험에서 헷갈리는 구분·함정 · 파랑 외워야 할 순서·목록


단원 도입

출제 포인트빈도이렇게 나온다
벡터 형 변환·재활용·인덱싱★★★코드 → 출력 결과 고르기
이상값 판정 (ESD, IQR) 과 상자그림★★★그림 해석, Q1 - 1.5IQR 계산
결측값 처리 방법★★★설명 → 기법, 다중 대치 3단계
요약변수 vs 파생변수★★예시 분류
EDA 4주제★★아닌 것 고르기
데이터 구조 (행렬·리스트·데이터 프레임)★★특징 구분
reshape(melt·cast), sqldf, plyr★패키지 역할

PART 1 · R 기초

1. R의 특징

  • 오픈소스 통계 프로그래밍 언어. S 언어 기반(GNU S라고도 함).
  • 수많은 패키지가 수시로 업데이트되고 커뮤니티가 활발하다. 다만 문제가 생겨도 상용 소프트웨어처럼 즉각적인 유지보수가 보장되지는 않는다.
  • 인메모리 컴퓨팅: 데이터를 메모리에 올려 처리 → 대용량은 메모리 한계에 주의.
  • 그래픽·시각화 기능이 강력하고, 객체 지향·함수형 언어 특성을 가진다.
  • 패키지 설치와 로드: install.packages("패키지명") → library(패키지명)
  • 도움말: help(함수) 또는 ?함수, 할당은 <- (또는 =), 주석은 #.

2. 자료형과 연산자

자료형예비고
numeric (숫자형)3, 3.14정수·실수
character (문자형)"a", 'R'따옴표
logical (논리형)TRUE, FALSE, T, F연산 시 1, 0
특수값NA(결측), NULL(빈 값), NaN(0/0), Inf(1/0)
연산자뜻예 → 결과
%/%몫7 %/% 2 → 3
%%나머지7 %% 2 → 1
^ 또는 **거듭제곱2^3 → 8
! · & · |NOT · AND · ORTRUE & FALSE → FALSE

3. 자료 구조

구조차원원소의 자료형만드는 함수
벡터(vector)1차원한 가지 형만c()
행렬(matrix)2차원한 가지 형만matrix(), cbind(), rbind()
배열(array)3차원 이상한 가지 형만array()
리스트(list)1차원서로 다른 형·구조 가능list()
데이터 프레임(data frame)2차원열마다 다른 형 가능 (한 열 안은 같은 형)data.frame()

벡터의 세 가지 규칙

① 형 변환(coercion): 한 벡터에 여러 형이 섞이면 문자형 > 숫자형 > 논리형 순으로 더 넓은 쪽으로 통일된다.

> c(3, TRUE, FALSE)
[1] 3 1 0                 # 논리형 → 숫자형
> c('a', 1, TRUE)
[1] "a" "1" "TRUE"        # 하나라도 문자면 모두 문자형
> c(1:5)
[1] 1 2 3 4 5

② 재활용(recycling): 길이가 다른 벡터끼리 연산하면 짧은 벡터를 반복해서 길이를 맞춘다. 긴 길이가 짧은 길이의 배수가 아니면 경고와 함께 계산은 된다.

> c(1, 2) + c(10, 20, 30, 40)
[1] 11 22 31 42
> c(1, 2) + c(10, 20, 30)
[1] 11 22 31
Warning message: longer object length is not a multiple of shorter object length

③ 인덱싱: R의 인덱스는 1부터 시작한다. 음수 인덱스는 "그 원소를 제외"한다.

> x <- c(10, 20, 30, 40, 50)
> x[2]          # [1] 20
> x[-2]         # [1] 10 30 40 50
> x[c(1, 3)]    # [1] 10 30
> x[x > 25]     # [1] 30 40 50

행렬은 열 방향으로 채운다

> m <- matrix(1:6, nrow = 2)
> m
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
> as.vector(m)
[1] 1 2 3 4 5 6           # 열 방향으로 펼침
> matrix(1:6, nrow = 2, byrow = TRUE)   # 행 방향으로 채우려면 byrow
  • cbind()는 열로 붙이고, rbind()는 행으로 붙인다.
  • dim(m) → 2 3, t(m) → 전치 행렬, m %*% n → 행렬 곱.

4. 자주 나오는 내장 함수

함수하는 일예 → 결과
seq(from, to, by)등간격 수열seq(1, 10, by = 3) → 1 4 7 10
rep(x, times)반복rep(1:2, times = 2) → 1 2 1 2 / rep(1:2, each = 2) → 1 1 2 2
paste() / paste0()문자열 결합 (기본 구분자 공백 / 없음)paste("a", "b") → "a b"
length()원소 수length(1:7) → 7
head() / tail()앞·뒤 6행
str()구조와 자료형 요약
summary()최솟값·Q1·중앙값·평균·Q3·최댓값 (범주형은 빈도)
ls() / rm()변수 목록 / 삭제
is.na()결측 여부is.na(c(1, NA)) → FALSE TRUE
mean(x, na.rm = TRUE)결측을 빼고 평균
apply(X, MARGIN, FUN)행(1)·열(2)별 함수 적용apply(m, 1, sum) → 행 합
lapply / sapply리스트에 적용 / 결과를 벡터로 단순화

PART 2 · 데이터 마트

5. 데이터 마트와 변수 만들기

  • 데이터 마트(Data Mart): DW에서 특정 목적·부서용으로 떼어 낸 소규모 DW. 분석에서는 모델링에 바로 쓸 수 있게 정리한 분석용 데이터셋을 뜻한다. CRM 업무의 핵심이다.
구분요약변수 (Summary variable)파생변수 (Derived variable)
뜻수집된 정보를 분석 목적에 맞게 종합(집계) 한 변수특정 조건이나 함수로 의미를 부여해 새로 만든 변수
특징많은 모델에 공통으로 쓰여 재활용성이 높음주관적일 수 있어 논리적 타당성이 필요
예월별 구매 금액, 기간별 구매 횟수, 상품별 매출 합계고객 구매 등급, 선호 카테고리 지수, 주 구매 시간대

6. 데이터 마트 개발에 쓰는 R 패키지

패키지역할
reshapemelt()로 데이터를 녹여(긴 형태) 식별자·변수·값으로 만들고, cast()로 원하는 형태로 다시 요약·재구조화
sqldfR에서 SQL 문으로 데이터 프레임을 조회 (sqldf("select * from df"))
plyrapply 계열을 기반으로 split → apply → combine 처리 (ddply 등, 입력·출력 형태를 앞 두 글자로 표시)
data.table데이터 프레임보다 빠른 그룹핑·정렬·인덱싱

PART 3 · 데이터 탐색

7. 탐색적 자료 분석 (EDA)

EDA의 4가지 주제: 저항성의 강조 · 잔차 계산 · 자료 변수의 재표현 · 그래프를 통한 현시성 ("저잔재현")

주제뜻
저항성(Resistance)일부 이상값에 크게 흔들리지 않는 통계(중앙값 등)를 중시
잔차(Residual) 계산관측값이 주 경향에서 얼마나 벗어났는지 확인
재표현(Re-expression)로그 변환 등으로 해석하기 좋은 척도로 바꿈
현시성(Revelation)그래프로 데이터의 구조를 한눈에 드러냄

8. 결측값 처리

결측값(Missing value): 값이 존재하지 않음. R에서 NA로 표시. 반드시 삭제하는 것이 아니라 상황에 따라 처리 방식을 고른다.

방법내용한계
완전 분석법 (Complete case analysis)결측값이 있는 레코드를 삭제데이터가 줄어 효율성 상실, 통계적 추론의 타당성 문제
평균 대치법 (비조건부)관측값의 평균으로 대치분산·표준오차를 과소추정
회귀 대치법 (조건부 평균)회귀분석으로 예측한 값으로 대치변수 간 관계를 이용
단순 확률 대치법평균 대치의 과소추정을 보완해 확률적으로 고른 값으로 대치Hot-deck(같은 데이터셋의 비슷한 응답자), Cold-deck(외부 출처), Nearest Neighbor(가장 가까운 응답)
다중 대치법 (Multiple imputation)단순 대치를 m번 반복해 m개 데이터셋을 만들고 결과를 결합대치 → 분석 → 결합

R 함수: is.na(), complete.cases()(결측 없는 행 TRUE), na.omit()(결측 행 삭제), 다중 대치 패키지 Amelia, mice.

9. 이상값 처리

이상값(Outlier): 다른 관측값과 동떨어진 극단적인 값. 항상 제거하는 것은 아니다 — 입력 오류면 삭제하지만, 사기 탐지·의료·부정 사용 탐지에서는 이상값 자체가 분석 대상이다.

판정 방법기준
ESD (Extreme Studentized Deviation)평균에서 표준편차의 3배를 벗어나면 이상값 (μ - 3σ 미만 또는 μ + 3σ 초과)
기하평균 기준기하평균 ± 2.5 × 표준편차를 벗어나는 값
사분위수 (IQR)Q1 - 1.5 × IQR 미만 또는 Q3 + 1.5 × IQR 초과. IQR은 Q3 - Q1
Z-score표준화 후 절댓값이 임계값(예: 3)을 넘는 값
DBSCAN밀도가 낮은 영역의 점을 노이즈로 판단

처리 방법: 삭제, 대체(평균·중앙값), 극단값 절단(trimming), 경계값으로 바꾸는 조정(winsorizing) 등.

상자그림(Boxplot) 읽기

요소뜻
상자 아래 변 / 가운데 선 / 위 변Q1(25%) / 중앙값 Q2(50%) / Q3(75%)
상자 높이IQR (Q3 - Q1) — 가운데 50% 데이터의 범위
수염(whisker) 끝이상값을 제외한 최솟값·최댓값 (경계 Q1 - 1.5IQR, Q3 + 1.5IQR 안쪽)
수염 밖의 점이상값

단원 마무리

장 요약

  • R: 오픈소스, S 언어 기반, 인덱스는 1부터, 행렬은 열 방향으로 채움.
  • 벡터 규칙: 형 변환(문자 > 숫자 > 논리) · 재활용 · 음수 인덱스는 제외.
  • 데이터 프레임은 열마다 다른 형, 리스트는 원소마다 다른 형·구조.
  • 요약변수(집계, 재활용성↑) vs 파생변수(의미 부여, 논리적 타당성 필요).
  • EDA 4주제: 저항성 · 잔차 · 재표현 · 현시성.
  • 결측값: 완전 분석 · 평균 대치(비조건부) · 회귀 대치(조건부) · 단순 확률 대치(Hot-deck 등) · 다중 대치(대치 → 분석 → 결합).
  • 이상값: ESD(평균 ± 3σ), IQR(Q1 - 1.5IQR, Q3 + 1.5IQR). 상자그림에는 평균이 없다.

단답형 연습

  1. R이 기반한 통계 언어는? ______________
  2. 길이가 다른 벡터 연산에서 짧은 벡터를 반복하는 규칙은? ______________
  3. 열마다 다른 자료형을 가질 수 있는 2차원 구조는? ______________
  4. 결측값을 제외하고 계산하게 하는 인자는? ______________
  5. 의미를 부여해 만든 변수로, 논리적 타당성이 필요한 것은? ______________
  6. R에서 SQL 문으로 데이터 프레임을 다루게 하는 패키지는? ______________
  7. 데이터를 식별자·변수·값의 긴 형태로 바꾸는 reshape 함수는? ______________
  8. 같은 데이터셋에서 비슷한 응답자의 값으로 결측을 채우는 방법은? ______________
  9. 평균에서 표준편차 3배를 벗어나면 이상값으로 보는 방법은? ______________
  10. Q3 - Q1을 무엇이라 하는가? ______________

책을 덮고 꺼내 보기

  • c(2, TRUE)의 결과는 이다.
  • matrix(1:4, nrow = 2)를 as.vector로 펼치면 이다.
  • 결측 행을 지우는 처리 방법은 이다.
  • 상자그림에 표시되지 않는 통계량은 이다.
R 벡터에 문자·숫자·논리값이 섞이면 어떻게 되는가?

문자형 > 숫자형 > 논리형 순으로 넓은 형으로 통일된다. 하나라도 문자가 있으면 모두 문자형, 숫자와 논리만 있으면 TRUE는 1, FALSE는 0이 된다.

벡터·행렬·리스트·데이터 프레임의 자료형 제약 차이는?

벡터·행렬·배열은 한 가지 형만, 리스트는 원소마다 다른 형·구조 가능, 데이터 프레임은 열마다 다른 형 가능(한 열 안은 같은 형).

요약변수와 파생변수의 차이와 예는?

요약변수는 집계한 변수로 재활용성이 높다(월별 구매 금액). 파생변수는 의미를 부여한 변수로 주관적이어서 논리적 타당성이 필요하다(고객 등급, 선호 지수).

EDA의 4주제는?

저항성의 강조, 잔차 계산, 자료 변수의 재표현, 그래프를 통한 현시성.

결측값 처리 방법 다섯 가지는?

완전 분석법(삭제), 평균 대치법(비조건부), 회귀 대치법(조건부), 단순 확률 대치법(Hot-deck, Cold-deck, Nearest Neighbor), 다중 대치법(대치 → 분석 → 결합).

사분위수 기준 이상값의 정의는?

Q1 - 1.5 × IQR보다 작거나 Q3 + 1.5 × IQR보다 큰 값. IQR은 Q3 - Q1.

이상값을 항상 제거하지 않는 이유는?

입력 오류가 아니라 실제 현상일 수 있고, 사기 탐지·의료·부정 사용 탐지처럼 이상값 자체가 분석 대상인 경우가 있기 때문이다.

다음으로 갈 기준: 벡터 코드 세 줄을 보고 출력을 맞히고, IQR 경계를 계산할 수 있으면 통계로 넘어간다: 6편 · 통계의 이해.

정답과 해설

확인 문제 정답

  1. 문자형(character) — "1" "2" "TRUE".
  2. 11 22 33 41 52 63 — 짧은 벡터 1 2 3이 두 번 재활용된다(6은 3의 배수라 경고 없음).
  3. 6 7 — 첫째와 넷째 원소를 제외.
  4. 저항성의 강조, 잔차 계산, 자료 변수의 재표현, 그래프를 통한 현시성.
  5. 다중 대치법. 대치 → 분석 → 결합.
  6. IQR은 20이므로 70 + 1.5 × 20 → 100.

단답형 정답

  1. S 언어
  2. 재활용 규칙(Recycling rule)
  3. 데이터 프레임(data frame)
  4. na.rm = TRUE
  5. 파생변수
  6. sqldf
  7. melt()
  8. Hot-deck 대치
  9. ESD(Extreme Studentized Deviation)
  10. IQR(사분위수 범위)
오늘도 한 걸음 앞으로.

내용을 이해했다면 학습 완료를 체크해 주세요.

학습 기록은 현재 브라우저에 저장됩니다.
HJS / STUDY한지석