설문 데이터 이상치, 기준은 무엇이고 어떻게 처리하나요?
발행 2026-09-16
이상치가 무엇인가요?
이상치(outlier)는 다른 응답과 크게 떨어진 값이에요. 이 가이드는 변수 하나씩 살펴보는 단변량 이상치를 다뤄요. 회귀분석에서는 변수 여러 개를 함께 보는 다변량 이상치(레버리지, Mahalanobis 거리)도 확인하는데, 이 글의 범위 밖이고 연구친구는 제공하지 않아요(Tabachnick & Fidell, 2019). 설문 데이터에서는 두 종류로 나눠서 봐요. 하나는 입력 실수로 보이는 값이에요. 나이 200이나 학점 45처럼 실제로 나올 수 없는 값이 여기에 들어가요. 1~5점 척도에 적힌 7 같은 값은 「리커트 문항에서는 왜 다르게 보나요?」에서 따로 봐요. 다른 하나는 실제 응답이지만 극단적인 값이에요. 샘플 데이터의 월소득 760만원처럼, 드물지만 있을 수 있는 값이에요.
두 종류는 처리가 달라요. 입력 실수는 고치거나 결측으로 처리하고, 실제 값은 원칙적으로 그대로 둬요(Aguinis et al., 2013). 그래서 이상치 처리에서 가장 중요한 일은 통계 기준을 고르는 게 아니라, 이 값이 두 종류 중 어느 쪽인지 확인하는 일이에요.
샘플 데이터의 나이 열을 보면 다음과 같아요. 응답자 대부분이 22~27세인데 #5는 200, #40은 1이에요. #3은 답하지 않은 빈칸이에요.
| 응답 | 나이 | 구분 |
|---|---|---|
| #1 | 24 | |
| #2 | 27 | |
| #3 | 결측 (빈칸) | |
| #4 | 27 | |
| #5 | 200 | 이상치 후보 |
| #6 | 27 | |
| … | … | |
| #38 | 22 | |
| #39 | 24 | |
| #40 | 1 | 이상치 후보 |
| #41 | 25 |
이상치와 결측은 다른 개념이에요. 결측은 값이 없는 칸이고, 이상치는 값이 있는데 그 값이 다른 응답과 동떨어진 칸이에요. 위 표에서 #3은 결측이고 #5와 #40은 이상치 후보예요. 이상치 후보는 연구자가 「입력 실수로 판단해 결측으로 처리한다」고 정한 뒤에야 결측이 돼요. 결측이 된 다음의 처리는 「설문 결측치, 어떻게 처리하고 논문에는 뭐라고 쓰나요?」에서 다뤄요.
이상치는 어떤 기준으로 찾나요?
흔히 쓰는 기준은 두 가지예요. 상자그림의 1.5×IQR 규칙과 z점수 규칙이에요. 둘 다 「이 값은 이상치다」라고 판정하는 규칙이 아니라 확인할 후보를 고르는 규칙이에요.
1.5×IQR 규칙(Tukey, 1977). 값을 크기순으로 늘어놓고 아래에서 25% 지점(Q1)과 75% 지점(Q3)을 구해요. 둘 사이의 거리가 사분위범위(IQR)예요. Q1과 Q3에서 1.5×IQR만큼 바깥에 울타리(fence)를 치고, 울타리 밖의 값을 후보로 봐요. 상자그림에서 수염 밖에 점으로 따로 찍히는 값이 바로 이 후보예요.
IQR = Q3 − Q1 아래 울타리 = Q1 − 1.5 × IQR 위 울타리 = Q3 + 1.5 × IQR
샘플 데이터의 나이에 적용하면 Q1 = 23, Q3 = 26이라 IQR = 3이고, 울타리는 18.5~30.5예요. 울타리 밖의 값은 1과 200뿐이에요. 연속형 변수 5개에 같은 규칙을 적용하면 다음과 같아요.
| 변수 | n | Q1 | Q3 | IQR | 울타리 | 후보 |
|---|---|---|---|---|---|---|
| 나이 | 178 | 23 | 26 | 3 | 18.5 ~ 30.5 | 1, 200 (2건) |
| 월소득 | 177 | 122 | 200 | 78 | 5 ~ 317 | 320 ~ 760 (10건), 99999 (1건) |
| 주당공부시간 | 180 | 16 | 27 | 11 | −0.5 ~ 43.5 | 없음 |
| 수면시간 | 178 | 6.1 | 8.0 | 1.9 | 3.3 ~ 10.8 | 없음 |
| 학점 | 180 | 2.9 | 3.6 | 0.7 | 1.8 ~ 4.7 | 45 (1건) |
z점수 규칙. 각 값이 평균에서 표준편차의 몇 배만큼 떨어져 있는지 나타낸 값이 z점수예요. 흔히 |z| > 3을 기준으로 보고, 기준값을 더 높여 정규분포에서 양측 p < .001에 해당하는 |z| > 3.29를 쓰기도 해요(Tabachnick & Fidell, 2019).
z = (값 − M) / SD
샘플 데이터의 나이에서 두 규칙이 갈려요. 나이 200의 z점수는 13.03이라 후보로 잡혀요. 그런데 나이 1의 z점수는 −1.80이라 기준 안에 들어와요. 200 하나가 평균을 25.16으로, 표준편차를 13.42로 크게 만들어요. 그래서 1은 평균에서 표준편차 두 배도 안 떨어진 값으로 계산돼요.
| 값 | z점수 | |z| > 3 규칙 | 1.5×IQR 규칙 (울타리 18.5~30.5) |
|---|---|---|---|
| 200 | 13.03 | 후보 | 후보 |
| 1 | −1.80 | 후보 아님 | 후보 |
이렇게 큰 이상치가 평균과 표준편차를 함께 바꿔서 다른 이상치를 가리는 현상을 가림 현상(masking)이라고 해요(Hawkins, 1980). z점수 규칙은 이상치의 영향을 받은 평균과 표준편차로 계산하기 때문에 이런 일이 생겨요(Leys et al., 2013). 1.5×IQR 규칙은 사분위수로 계산해서 극단값 몇 개에 영향을 덜 받아요.
후보는 판정이 아니에요. 월소득을 보면 이유가 보여요. 소득은 한쪽으로 치우친 분포라서 1.5×IQR 규칙이 11건을 후보로 잡아요. 그중 99999만원은 입력 실수로 보이지만, 320~760만원 10건은 실제 응답일 수 있어요. 어느 쪽인지는 규칙이 아니라 원자료를 확인해야 알 수 있어요(Aguinis et al., 2013).
이상치는 어떻게 처리하나요?
순서는 확인, 판단, 처리예요. 처리는 결과를 보기 전에 정해요. 빼 봤더니 유의해졌다는 이유로 판단을 바꾸지 않아요. 어느 경우든 원자료 파일은 그대로 두고 분석용 데이터만 바꿔요.
- 원자료에서 확인해요. 후보로 잡힌 값의 응답 번호로 설문지나 입력 파일을 찾아봐요. 나이 200은 숫자를 하나 더 친 값일 수 있고, 학점 45는 소수점이 빠진 값일 수 있어요. 설문지에 실제 값이 남아 있으면 그 값으로 고쳐요. 짐작으로 고치지는 않아요.
- 입력 실수인데 실제 값을 알 수 없으면 결측으로 처리해요. 그 칸만 비우고 응답자는 남겨요. 그 응답자는 그 변수를 쓰는 분석에서만 빠지고, 다른 변수의 분석에는 그대로 들어가요.
- 실제 값이면 그대로 둬요. 극단적이라는 이유만으로 실제 응답을 빼면 표본이 실제 모집단과 달라져요(Aguinis et al., 2013).
- 실제 값이 결과를 크게 바꿀 수 있으면 두 결과를 함께 보고하거나 순위 기반 방법을 써요. 유지한 극단값을 포함한 결과와 뺀 결과를 둘 다 적으면 심사자가 그 값의 영향을 볼 수 있어요(Aguinis et al., 2013). 값 대신 순위(등수)로 계산하는 스피어만 상관(Spearman ρ)이나 Mann-Whitney U 검정은 극단값 하나에 영향을 덜 받아요(Field, 2018). 연구친구에서 Mann-Whitney U 검정은 t검정 결과에서 정규성이 어긋날 때 이어서 볼 수 있고, 스피어만 상관은 순서형 변수(학년 같은 서열 변수, 척도로 묶지 않은 리커트 문항)가 포함될 때 자동으로 적용돼요. 연속형 변수끼리는 피어슨 상관으로 계산돼요. 교과서에는 로그 변환이나 윈저화(winsorizing, 극단값을 울타리 값으로 바꾸기)도 나오지만(Aguinis et al., 2013; Tabachnick & Fidell, 2019), 연구친구는 이 두 가지를 제공하지 않아요.
샘플 데이터에서 입력 실수 4건(나이 200과 1, 학점 45, 월소득 99999)을 결측으로 처리하면 기술통계가 다음과 같이 달라져요. 월소득의 나머지 후보 10건(320~760만원)은 실제 값으로 보고 그대로 뒀어요.
| 변수 | 처리 | n | M | SD | 범위 |
|---|---|---|---|---|---|
| 나이 | 전 | 178 | 25.16 | 13.42 | 1 ~ 200 |
| 나이 | 후 | 176 | 24.31 | 1.82 | 22 ~ 27 |
| 학점 | 전 | 180 | 3.46 | 3.15 | 1.92 ~ 45 |
| 학점 | 후 | 179 | 3.22 | 0.50 | 1.92 ~ 4.32 |
| 월소득 | 전 | 177 | 742.16 | 7503.71 | 80 ~ 99999 |
| 월소득 | 후 | 176 | 178.20 | 104.16 | 80 ~ 760 |
나이는 값 두 개가 빠졌을 뿐인데 표준편차가 13.42에서 1.82로 작아져요. 월소득은 99999 한 건 때문에 평균이 742.16만원이었다가 178.20만원이 돼요. 처리 전 표준편차 7503.71은 실제 값의 범위(80~760만원)보다도 커요. 이런 숫자는 그 자체로 입력 실수가 섞여 있다는 신호예요.
이상치는 평균과 표준편차만 바꾸지 않아요. 변수 사이의 관계도 바꿔요(Osborne & Overbay, 2004). 나이와 월소득의 상관을 보면 다음과 같아요.
| 조건 | r | p | n |
|---|---|---|---|
| 입력 실수를 둔 채 | −.01 | .936 | 175 |
| 결측 처리 후 | .24 | .001 | 172 |
입력 실수를 둔 채 계산하면 나이와 월소득 사이에 관계가 없는 것으로 나와요(r = −.01, p = .936). 세 값을 결측으로 처리하면 나이가 많을수록 월소득이 높은 약한 정적 상관이 나와요(r = .24, p = .001). 응답자 세 명의 값 때문에 나머지 172명 사이의 관계가 결과에 나타나지 않았던 거예요.
유지한 실제 극단값도 결과를 바꿀 수 있어요. 월소득의 실제 극단값 10건(320~760만원)을 유지한 결과와 이 10건까지 결측으로 처리한 결과를 비교하면 다음과 같아요.
| 조건 | 월소득 n | M | SD | 나이 × 월소득 r | p | 상관 n |
|---|---|---|---|---|---|---|
| 10건 포함 | 176 | 178.20 | 104.16 | .24 | .001 | 172 |
| 10건 제외 | 166 | 157.82 | 52.40 | .71 | < .001 | 162 |
10건을 빼면 월소득의 평균은 178.20만원에서 157.82만원으로, 표준편차는 104.16에서 52.40으로 작아지고, 나이와의 상관은 r = .24에서 r = .71로 커져요. 두 결과 모두 유의하지만 상관의 크기가 크게 달라요. 이럴 때는 두 결과를 함께 보고해요. 어느 쪽을 주 분석으로 삼을지는 결과가 아니라 앞서 내린 판단(실제 값이라 유지)에 따라 정해요.
처리 원칙은 한 가지예요. 원자료는 그대로 두고, 무엇을 어떻게 처리했는지 기록해요. 심사자가 물었을 때 「나이 200과 1은 입력 실수로 판단해 결측 처리했다」고 답할 수 있어야 해요. 값을 고쳤다면 어느 응답의 무엇을 무엇으로 고쳤는지도 적어 둬요.
리커트 문항에서는 왜 다르게 보나요?
1~5점 척도 문항은 값이 1에서 5 사이로 정해져 있어요. 그래서 상자그림 규칙이나 z점수 규칙을 쓰지 않아요. 1이나 5는 척도의 양 끝이지 이상치가 아니에요. 모든 문항에 5라고 답한 응답자도 값으로만 보면 이상치가 아니에요. 다만 모든 문항에 같은 값을 적은 응답은 값이 아니라 응답 패턴으로 따로 확인해요.
리커트 문항에서 확인할 값은 척도 범위 밖 값 하나예요. 샘플 데이터에서는 삶의 만족도 3번 문항(1~5점)에 7이 1건(응답 #7) 있어요. 7이 입력 실수인지, 척도가 실제로 1~7점이었는지, 9처럼 결측 코드인지는 원설문지와 코딩북으로 확인해요. 입력 실수나 결측 코드로 판단하면 척도 범위를 확인하는 단계에서 결측으로 처리하고, 척도가 실제로 1~7점이었다면 값이 아니라 범위 설정을 고쳐요.
논문에는 뭐라고 쓰나요?
방법 부분의 자료 처리 절에 다음 네 가지를 적어요. 후보가 없었다면 「1.5×IQR 규칙으로 확인한 결과 울타리 밖 값은 없었다」 한 문장이면 돼요.
- 어떤 기준으로 찾았는지. 「상자그림의 1.5×IQR 규칙(Tukey, 1977)」처럼 규칙과 출처를 적어요. z점수를 썼다면 기준값(3 또는 3.29)도 적어요.
- 몇 건이 나왔는지. 변수별 건수와 값을 적어요. 후보가 많으면 변수별 건수만 적어도 돼요.
- 어떻게 판단하고 처리했는지. 입력 실수로 판단해 결측 처리했는지, 실제 값으로 판단해 유지했는지, 원자료를 확인해 값을 고쳤는지 적어요. 유지한 극단값 때문에 순위 기반 방법을 썼다면 그 이유도 여기에 적어요. 결과를 바꿀 수 있는 극단값을 유지했다면 포함한 경우와 뺀 경우의 결과를 함께 적고, 둘이 같으면 「포함한 분석과 제외한 분석의 결과가 다르지 않았다」로 적어요.
- 최종 표본 수. 처리 후 분석에 들어간 전체 표본 수 N을 적어요. 변수마다 유효 응답 수가 다르면 결과 표에 변수별 n을 적어요.
아래 「논문에 쓰는 문장」은 샘플 데이터의 숫자로 이 네 가지를 쓴 예예요. 변수 이름과 숫자만 바꿔 쓰면 돼요.
논문에 쓰는 문장
방법
이상치는 상자그림의 1.5×IQR 규칙(Tukey, 1977)으로 확인하였다. 나이의 울타리 밖 값 2건(1세, 200세)과 학점의 울타리 밖 값 1건(45)은 입력 실수로 판단하여 결측 처리하였다.
월소득에서 1.5×IQR 울타리 밖 값 11건 중 99999만원 1건은 입력 실수로 판단하여 결측 처리하고, 320~760만원 10건은 원자료 확인 결과 실제 응답으로 판단하여 유지하였다.
삶의 만족도 3번 문항(1~5점)의 척도 범위 밖 값 1건(7)은 입력 실수로 판단하여 결측 처리하였다. 이상치 처리 후 변수별 유효 응답 수는 나이 n = 176, 학점 n = 179, 월소득 n = 176이었다(전체 N = 180).
결과
이상치 처리 후 나이의 평균은 24.31세(SD = 1.82, n = 176), 월소득의 평균은 178.20만원(SD = 104.16, n = 176)이었다.
나이와 월소득 간에는 유의한 정적 상관이 있었다(r = .24, p = .001, n = 172). 월소득의 극단값 10건(320~760만원)을 포함한 분석(r = .24, p = .001, n = 172)과 제외한 분석(r = .71, p < .001, n = 162)의 결과는 방향과 유의성이 같았으나 상관의 크기가 달랐다.
자주 묻는 질문
이상치는 꼭 지워야 하나요?+
아니요. 결측으로 처리하는 대상은 입력 실수처럼 실제 값이 아닌 경우예요. 실제 응답은 극단적이라는 이유만으로 빼지 않아요. 결과를 크게 바꾸는 실제 값이 있으면 순위 기반 방법을 쓰거나, 그 값을 포함한 결과와 뺀 결과를 함께 보고해요(Aguinis et al., 2013).
z점수 기준은 2.5, 3, 3.29 중 무엇인가요?+
셋 다 쓰여요. 3.29는 정규분포에서 양측 p < .001에 해당하는 값이고(Tabachnick & Fidell, 2019), 표본이 80명 이하로 작으면 2.5, 표본이 크면 기준을 4까지 올려 쓰는 관례도 있어요(Hair et al., 2010). 표본이 크면 |z| > 3.29인 값이 몇 건은 우연히도 나오니(Tabachnick & Fidell, 2019), 어느 값을 쓰든 논문에 기준을 적고 잡힌 값은 판정이 아니라 확인 대상으로 봐요. 큰 이상치가 있으면 표준편차 자체가 커져서 z점수가 다른 이상치를 놓칠 수 있으니 1.5×IQR 규칙과 함께 봐요.
월소득처럼 치우친 변수는 어떻게 하나요?+
한쪽으로 치우친 분포에서는 1.5×IQR 규칙이 후보를 많이 잡아요. 샘플 데이터의 월소득에서 11건이 나온 이유예요. 후보를 하나씩 확인해 입력 실수만 결측으로 처리하고 실제 값은 그대로 두되, 치우침이 분석에 문제가 되면 스피어만 상관이나 Mann-Whitney U 검정처럼 순위로 계산하는 방법을 써요. 로그 변환도 교과서에 나오는 방법이지만(Tabachnick & Fidell, 2019) 연구친구는 제공하지 않아요.
이상치를 결측 처리하면 그 응답자가 모든 분석에서 빠지나요?+
아니요. 그 칸만 비고, 그 변수를 쓰는 계산에서만 그 응답자가 빠지고 다른 변수의 계산에는 그대로 남아요. 연구친구에서도 같아요. 이상치를 결측으로 처리한 칸은 결측 정리 단계의 「제외」나 「평균값으로 채우기」 대상이 되지 않고 빈칸으로 남아요.
연구친구에서는
데이터를 올리면 숫자형 변수마다 상자그림 1.5×IQR 울타리 밖의 값을 찾아 보여드려요. 샘플 데이터 체험 화면에는 예시 후보 몇 건만 보이고, 실제로 올린 데이터에서는 울타리 밖 값을 전부 보여드려요.
- 울타리 밖 값(화면 표시는 「범위 밖」)을 응답 번호·정상 범위와 함께 보여드려요. 정상 범위는 울타리 안에 있는 값의 최솟값~최댓값이라, 나이는 울타리 18.5~30.5가 아니라 22~27로 표시돼요. 리커트 문항의 척도 범위 밖 값(1~5점 척도의 7)은 리커트 문항 확인 단계에서 척도 범위를 확정하면서 처리해요.
- 자동으로 지우지 않아요. 「결측으로 처리」와 「그대로 두기」 중 고르고 적용하면 전체 응답 표에 바로 반영되고, 고르기 전의 기본은 그대로 두기예요.
- 성별·전공 같은 범주형 변수에서 응답이 몇 명뿐인 드문 값(오타일 수 있는 값)도 확인 추천으로 표시돼요.
- 무엇을 결측 처리하고 무엇을 유지했는지가 결과 화면의 데이터 정리 내역에 논문 방법 부분용 문장으로 정리돼요.
참고 자료
- Tukey, J. W. (1977). Exploratory data analysis. Addison-Wesley. · 상자그림과 1.5×IQR 울타리 규칙
- Tabachnick, B. G., & Fidell, L. S. (2019). Using multivariate statistics (7th ed.). Pearson. · |z| > 3.29 기준, 큰 표본에서 3.29를 넘는 값이 우연히 몇 건 나오는 점, 변환 등 이상치 처리 방법
- Hair, J. F., Black, W. C., Babin, B. J., & Anderson, R. E. (2010). Multivariate data analysis (7th ed.). Pearson. · 표본 크기에 따른 z점수 기준(작은 표본 2.5, 큰 표본은 4까지)
- Aguinis, H., Gottfredson, R. K., & Joo, H. (2013). Best-practice recommendations for defining, identifying, and handling outliers. Organizational Research Methods, 16(2), 270–301. · 이상치의 종류 구분(입력 실수·실제 극단값)과 처리·보고 권고, 윈저화 등 처리 기법
- Osborne, J. W., & Overbay, A. (2004). The power of outliers (and why researchers should always check for them). Practical Assessment, Research & Evaluation, 9(6). · 이상치가 평균·상관·검정 결과에 미치는 영향
- Leys, C., Ley, C., Klein, O., Bernard, P., & Licata, L. (2013). Detecting outliers: Do not use standard deviation around the mean, use absolute deviation around the median. Journal of Experimental Social Psychology, 49(4), 764–766. · z점수 규칙의 평균·표준편차가 이상치 자체의 영향을 받는 문제
- Hawkins, D. M. (1980). Identification of outliers. Chapman and Hall. · 가림 현상(masking)
- Field, A. (2018). Discovering statistics using IBM SPSS Statistics (5th ed.). Sage. · 순위 기반 검정이 극단값의 영향을 덜 받는 이유
- American Psychological Association. (2020). Publication manual of the American Psychological Association (7th ed.). · 통계 표기(M, SD, r, p, N) 관례