ADsP 필기 06 — R 기초와 데이터 마트 (데이터 전처리·결측값·이상값·EDA)
출제기준 대단원 3-1: R 프로그래밍 기초 / 데이터 마트 / 데이터 전처리·EDA
3과목의 첫 장입니다. 중요도는 ★★ 수준이에요. R 코드를 직접 짜는 문제는 거의 안 나오고,
결측값·이상값·EDA·상자그림 같은 "개념 + 결과 해석" 문제가 나옵니다.
코드 암기에 시간을 쓰지 마세요.
시험 구조 다시 확인 (3과목이 합격을 결정합니다)
- 50문항 / 90분 / 문항당 2점, 전체 60점 이상 + 과목별 40% 이상 득점
- 배점 구조: 1과목 10문항, 2과목 10문항, 3과목 30문항
- 과락 방지 최소 정답 수: 1과목 4개 / 2과목 4개 / 3과목 12개, 전체 30개
- 3과목은 문항 수가 가장 많고 통계·마이닝 비중이 높습니다. 이 장은 가볍게, 07편부터 본격적으로 갑니다.
R 기초 ⭐
R은 1995년 Ihaka와 Gentleman이 만든 통계 분석용 오픈소스 언어이고, RStudio는 R을 쓰기 편하게 해주는 IDE입니다.
데이터 타입과 특수값
character — 문자열 ("abc")
numeric — 숫자 (기본 double, 정수는 1L, complex·Inf 포함)
logical — TRUE(=1) / FALSE(=0)
NA — 결측값(값이 없음) NaN — 수학적으로 정의 불가(0/0)
NULL — 아예 존재하지 않음(빈 객체)
⚠️ x == NA는 항상 NA를 반환합니다. 결측 여부는 반드시 is.na(x)로 확인하세요.
연산자
<- : 할당 <<- : 전역 할당
%in% : 포함 여부 %/% : 몫 %% : 나머지
벡터 연산은 길이가 다르면 짧은 쪽을 재사용(recycling) 합니다.
자료구조
| 구조 | 특징 |
| 벡터 | 같은 타입만. 섞이면 character > numeric > logical 순으로 형 변환 |
| factor | 범주형(levels). as.numeric(factor)는 값이 아니라 내부 코드를 반환 → 먼저 as.character() |
| matrix | 2차원, 같은 타입, 열 우선(column-major) 채움 (byrow=TRUE로 변경) |
| array | 3차원 이상 (dim) |
| list | 서로 다른 타입 혼합. L[[i]]는 원소 자체, L[i]는 리스트 |
| data.frame | 열마다 타입이 달라도 됨(분석의 기본 단위) |
자주 나오는 내장 함수
paste / paste0, seq, rep, rm / ls
sum, mean, median, var, sd, summary, cov, cor, table, order
apply(X, MARGIN, FUN) → MARGIN 1=행, 2=열
dnorm/pnorm/qnorm/rnorm (d=밀도, p=누적확률, q=분위수, r=난수), runif, sample
날짜 기준: 1970-01-01
read.csv, saveRDS, head, str, summary (EDA 기본 3종)
제어문은 for / while / break / next, if / else / ifelse, 사용자 정의 함수 function(x){...}, 행·열 결합은 rbind / cbind 입니다.
데이터 마트 ⭐⭐
DW와 DM
데이터 웨어하우스(DW) — 전사 통합 데이터 저장소 (주제 지향·통합·시계열·비휘발)
데이터 마트(DM) — 특정 부서·목적에 맞게 DW에서 뽑아낸 소규모 저장소
유형: 종속 마트(DW에서 추출) / 독립 마트(DW 없이 독자 구축) / 가상 마트(물리적 저장 없이 뷰로 구현)
설계 3단계: 개념 → 논리 → 물리 스키마
- 스타 스키마: 중앙에 팩트 테이블(측정값) + 주변에 차원 테이블. 구조가 단순하고 조회가 빠름
- 스노우플레이크: 차원 테이블을 정규화해 더 쪼갠 형태. 저장 공간은 절약되지만 조인이 늘어남
구축 6단계: 수집 → 정제 → 통합 → 변형 → 적재 → 최적화
데이터 전처리 ⭐⭐⭐ (이 장의 핵심)
결측값 처리
결측 유형: MCAR(완전 무작위) / MAR(다른 변수에 의존) / MNAR(자기 자신 값에 의존)
| 방법 | 설명 |
| 완전 제거 | complete.cases() 등으로 결측 행 삭제(listwise deletion). 표본 수 감소 |
| 단순 대치 | 평균·중앙값 등으로 채움(조건부/비조건부). 분산이 줄어들 수 있음 |
| 다중 대치 | 여러 번 대치해 불확실성까지 반영 (Amelia, mice) |
| kNN 대치 | VIM 패키지. K가 너무 작으면 잡음에 민감, 너무 크면 과도하게 평활 |
⚠️ 결측값을 0으로 바꿔서 평균을 구하면 값이 왜곡됩니다. (45회 기출)
💡 missmap()(Amelia)으로 결측 분포를 시각화할 수 있고, caret의 medianImpute로 중앙값 대치를 합니다.
이상값 처리
탐지 기준 두 가지
ESD : 평균 ± 3σ 밖 (정규분포 가정, 99.7%)
IQR : Q1 − 1.5×IQR 미만, Q3 + 1.5×IQR 초과
처리 방법: 수정 / 제거 / 캡핑(상·하한값으로 대체). 이상값은 "무조건 삭제 대상"이 아닙니다.
원인(입력 오류인지 실제 극단값인지)을 보고 판단합니다.
변수 가공
파생변수(기존 변수 조합), 요약변수(집계), 스케일링(표준화·정규화), 불균형 데이터 보정(오버/언더샘플링) 등이 있습니다.
데이터 가공 패키지 ⭐
reshape — melt(wide→long) / cast(long→wide)
sqldf — R 안에서 SQL 사용
plyr — ddply 등, split-apply-combine
data.table — DT[i, j, by], setkey 로 빠른 처리
시험에서는 "어떤 패키지가 어떤 역할인가" 정도만 알면 충분합니다.
EDA(탐색적 데이터 분석) ⭐⭐⭐
John Tukey가 제안한 방법으로, 가설을 세우기 전에 데이터를 눈으로 보며 구조를 파악하는 단계입니다.
EDA 4대 특징: 저항성 · 잔차 해석 · 자료 재표현 · 시각화(현시성)
상자그림(Boxplot) 읽는 법
상자 = Q1~Q3 (IQR, 전체 데이터의 50%)
상자 안 선 = 중앙값
수염(whisker) = 이상값 기준 안쪽의 최소/최대
점 = 이상값
각 사분위 구간(Q1 아래, Q1~중앙값, 중앙값~Q3, Q3 위)에 각각 25%씩
⚠️ 상자의 폭이나 길이로는 관측치 개수를 알 수 없습니다. 개수가 아니라 분포의 분산·치우침을 보는 그림이에요.
기출 문제 풀이
Q1. (48회) 상자그림에 대한 설명으로 적절하지 않은 것은?
① 상자그림 내부의 수평선은 해당 데이터의 중앙값을 나타낸다.
② 사분위수 범위(IQR)는 전체 데이터의 50%가 분포하는 구간의 길이를 나타낸다.
③ IQR의 1.5배를 초과하여 벗어난 관측치는 이상치로 정의할 수 있다.
④ 상자그림의 폭과 길이 비교를 통해 해당 데이터의 관측치 개수를 파악할 수 있다.
A. ④ — 상자그림은 분포의 위치·퍼짐·이상값을 보는 도구이며 관측치 개수는 알 수 없습니다.
Q2. (49회) 이상값(Outlier)에 대한 설명으로 옳지 않은 것은?
① 입력 오류, 측정 오류, 표본추출 오차 등 다양한 원인으로 발생할 수 있다.
② 일반적으로 데이터 전처리 단계에서 탐색하고 처리한다.
③ IQR, 상자그림, 산점도 등을 이용해 판별할 수 있다.
④ 이상값은 분석 결과를 왜곡하므로 발견되면 반드시 모두 제거해야 한다.
A. ④ — "반드시 모두"라는 단정 표현은 거의 항상 오답 신호입니다. 수정·대체·캡핑도 가능합니다.
Q3. (48회) 이상값 탐지 및 처리 방법에 대한 설명으로 적절하지 않은 것은?
① IQR의 1.5배를 기준으로 상·하한 임계치를 설정한다.
② 정규분포 가정 시 평균에서 표준편차의 3배 이상 떨어진 값을 이상값으로 본다.
③ 표본 평균의 표준오차 범위를 벗어나는 값을 이상값으로 처리한다.
④ 평균·중앙값·회귀 예측값으로 대체해 데이터 손실을 최소화할 수 있다.
A. ③ — 표준오차는 표본평균의 변동성을 나타내는 값이지 개별 관측치의 이상 여부 기준이 아닙니다. 개별 값은 표준편차(ESD)나 IQR로 봅니다.
Q4. (46회) 결측값 처리에 대한 설명으로 옳은 것은?
① 결측값은 평균값으로만 대체해야 한다.
② 결측값 대체는 표본 수는 유지하여 데이터 손실을 최소화하는 데 목적이 있다.
③ 결측값은 일반적으로 삭제하는 것이 가장 좋다.
④ 결측값을 대체해도 데이터 편향은 유발되지 않는다.
A. ② — ①③④ 모두 "만", "가장 좋다", "않는다" 같은 단정 표현이 들어간 오답입니다.
Q5. (47회) 탐색적 데이터 분석(EDA)의 특징으로 적절하지 않은 것은?
① 데이터의 전반적인 구조를 파악하고 이상치 및 결측치를 발견한다.
② 동일한 분석 결과를 얻기 위해 재현성을 검증하는 단계이다.
③ 상관관계 분석 및 시각화로 종속변수에 영향을 주는 독립변수를 탐색한다.
④ 변수 개수, 데이터 타입, 기초 통계량을 확인한다.
A. ② — 재현성 검증은 EDA가 아니라 이후 모델 검증 단계의 성격입니다.
Q6. (45회) 기술통계와 관련된 설명 중 틀린 것은?
① 결측치를 모두 0으로 변환하여 평균을 계산한다.
② 기술통계는 데이터를 요약하고 설명하는 데 사용된다.
③ 대표값으로는 평균, 중앙값, 최빈값 등이 있다.
④ 산포도는 데이터의 분포 범위를 파악할 수 있는 도구이다.
A. ① — 결측을 0으로 바꾸면 평균이 인위적으로 낮아집니다.
실무 한마디
인프라·보안 쪽에서는 로그 데이터를 분석할 때가 가장 비슷합니다.
장애 로그에서 비정상적으로 큰 응답시간 하나를 "오류니까 삭제"하면 정작 장애 징후를 지워버릴 수 있어요.
이상값은 버릴 대상이 아니라 먼저 원인을 확인할 대상이라는 시험의 논리가 실무에서도 그대로 통합니다.
그리고 데이터 마트는 보안 관점에서 부서별 접근권한을 나누는 구조와도 맞닿아 있습니다.
핵심 정리
✅ R: x==NA 는 항상 NA → is.na() / factor는 as.character 후 숫자 변환
✅ 벡터 형 변환 우선순위: character > numeric > logical
✅ DW(전사 통합) vs DM(부서 목적) / 스타(팩트+차원) vs 스노우플레이크
✅ 결측 대치: 표본 수 유지가 목적, 0 대치 평균은 오류
✅ 이상값 기준: ESD(±3σ), IQR(1.5배). 표준오차는 기준 아님
✅ 이상값 "반드시 모두 제거" = 오답 (수정·캡핑 가능)
✅ EDA: 저항성·잔차해석·재표현·시각화. 재현성 검증은 아님
✅ 상자그림: 개수는 알 수 없다
다음 편 예고
07편 — 통계분석 ① 기초통계: 표본추출·척도, 확률분포, 추정, 가설검정, t검정·ANOVA·카이제곱까지. 3과목의 본격적인 시작입니다.
'자격증 정복 > 데이터분석준전문가(ADsP)' 카테고리의 다른 글
| ADsP 필기 08 — 통계분석 ② 통계분석 기법 (상관·회귀·다중공선성·PCA·MDS·시계열) (0) | 2026.10.06 |
|---|---|
| ADsP 필기 07 — 통계분석 ① 기초통계 (표본추출·척도·확률분포·추정·가설검정·t검정·ANOVA·카이제곱) (0) | 2026.10.05 |
| ADsP 필기 05 — 분석 마스터 플랜과 데이터 거버넌스 (우선순위 사분면·성숙도 모델) (0) | 2026.10.03 |
| ADsP 필기 04 — 데이터분석 기획의 이해 (분석 주제 4유형·CRISP-DM·하향식·상향식) (0) | 2026.10.02 |
| ADsP 필기 03 — 데이터의 가치와 미래 + 데이터 사이언스와 전략 인사이트 (0) | 2026.10.01 |