본문 바로가기
  • "You can't manage what you can't measure" Peter Drucker
데이터 분석 (with Rstudio)

Rstudio 사분위수(Quartile) Outliers(이상치) IQR (사분범위)

by Vitaminymc 2023. 7. 31.
반응형

Rstudio의 summary 함수를 통해서, 1사분위수(Q1), 2사분위수(Q2, 중앙값) 3사분위수(Q3)을 확인

summary (slam_dunk)
uniform_no
4 : 1
5 : 1
6 : 1
7 : 1
8 : 1
9 : 1
(Other):6
name
Length:12
Class :character
Mode  :character



height
Min.   :162.0
1st Qu.:169.5
Median :174.5
Mean   :176.7
3rd Qu.:184.8
Max.   :197.0
weight
Min.   :59.00
1st Qu.:64.00
Median :72.50
Mean   :73.17
3rd Qu.:81.00
Max.   :90.00
NA's   :6
blood type
Length:12
Class :character
Mode  :character


 
age
Min.   :17.00
1st Qu.:17.00
Median :18.00
Mean   :17.83
3rd Qu.:18.25
Max.   :19.00
position
Length:12
Class :character
Mode  :character


 

사분위수 (Quartile)

https://en.wikipedia.org/wiki/Quartile

 

Quartile - Wikipedia

From Wikipedia, the free encyclopedia Statistic which divides data into four same-sized parts for analysis In statistics, a quartile is a type of quantile which divides the number of data points into four parts, or quarters, of more-or-less equal size. The

en.wikipedia.org

사분위수는 데이터를 4등분 한 것이다. 통계의 변량을 도수 분포로 정리하였을 때 적은 것으로부터 1/4, 1/2, 3/4 자리의 변량값이다. 임의의 확률변수 축에서 확률분포를 4등분하는 값의 조합이다.

사분위수를 계산하려면 데이터를 가장 작은 것부터 가장 큰 것까지 정렬해야 합니다. 따라서 사분위수는 순서 통계의 한 형태입니다. 세 가지 주요 사분위수는 다음과 같습니다.

첫 번째 사분위수(Q1)는 데이터 세트의 가장 작은 숫자(최소값)와 중앙값 사이의 중간 숫자로 정의됩니다. 
             데이터의 25%가 이 지점 아래에 있으므로 하위 사분위수라고도 합니다.
두 번째 사분위수(Q2)는 데이터 세트의 중앙값입니다. 
             따라서 데이터의 50%가 이 지점 아래에 있습니다.
세 번째 사분위수(Q3)는 데이터 세트의 중앙값과 가장 높은 값(최대값) 사이의 중간 값입니다. 
             데이터의 75%가 이 지점 아래에 있기 때문에 상위 사분위수로 알려져 있습니다

사분위수 Q1과 Q3 사이를 사분위 범위라 하고 2Q로 나타낸다. 

(출처 : https://en.wikipedia.org/wiki/Quartile)
[예제 1]

15  6 49 36 42 40 41 39 43 47  7

eg1 <- c(15,  6, 49, 36, 42, 40, 41, 39, 43, 47,  7)

summary(eg1)
[예제 2]

7 15 36 39 40 41 45 90

eg2 <- c(7, 15, 36, 39, 40, 41, 45, 90)

summary(eg2)
   Min.    1st Qu.     Median       Mean    3rd Qu.    Max. 
   6.00      25.50         40.00       33.18      42.50   49.00 
   Min.    1st Qu.     Median       Mean    3rd Qu.    Max. 
   7.00      30.75         39.50       39.12      42.00   90.00 

 

300x250

IQR (사분범위)과 Outliers (이상치, 일반적인 값과 다른 특이한 값)

  • IQR (Inter Quatile Range)는 Q1과 Q3의 범위(차이)
    • 데이터의 75번째 백분위수와 25번째 백분위수 간의 차이
    • 하위 사분위수는 25번째 백분위수에 해당하고 상위 사분위수는 75번째 백분위수에 해당하므로 IQR = Q3 − Q1
  • 이상치는 대부분의 데이터와는 동떨어진 특이한 값으로, 전체 데이터의 분포에서 크게 벗어나는 값들을 의미
  • 이상치는 일반적인 데이터 패턴과는 다른 특성을 가지고 있어, 데이터의 분석과 모델링에 영향을 줄 수 있음
  • 이상치는 여러 가지 원인에 의해 발생할 수 있으며, 측정 오류, 자연적인 변동, 혹은 정상적인 데이터 범위를 벗어나는 이벤트 등이 그 원인이 될 수 있음
  • 데이터 분석과 통계적 모델링에서 이상치를 식별하고 처리하는 것은 매우 중요함

Lower Fence (하단 경계)

  • Lower fence는 Q1보다 작은 값 중에서 가장 큰 값 중 하나
  • Lower fence는 데이터의 하위 25%에 해당하는 값보다도 더 작은 값 중 가장 큰 값을 의미 
  • 이 값은 이상치를 식별하는데 사용되며, 일반적으로 다음과 같이 계산함
    • Lower fence = Q1 - 1.5 * IQR 
    • IQR = Q3 - Q1

Upper Fence (상단 경계)

  • Upper fence는 Q3보다 큰 값 중에서 가장 작은 값 중 하나
  • Upper fence는 데이터의 상위 25%에 해당하는 값보다도 더 큰 값 중 가장 작은 값을 의미
  • 이 값은 이상치를 식별하는데 사용되며, 일반적으로 다음과 같이 계산함
    • Upper fence = Q3 + 1.5 * IQR
    • IQR = Q3 - Q1

Lower Fence와 Upper Fence를 사용하여 이상치를 식별하기 위한 경계로 사용되는 값은  1.5를 사용하는 것이 일반적인 접근 방식이지만, 절대적인 규칙은 아니며, 데이터의 특성과 분포를 고려하여 적절한 k 값을 선택

  • Lower fence = Q1 - k * IQR,
  • Upper fence = Q1 + k * IQR
  • 상수 k값을 조정하여 이상치 감지에 더 유연하게 대응하는 것이 가능
  • 일반적으로 1.5를 사용하면 대부분의 이상치를 잘 감지함
  • 1.5는 이상치를 식별하는 기준을 설정하는 값이며, k값을 조절하여 이상치를 감지하는 민감도를 조절할 수 있음
[예제 1]

eg1 <- c(15,  6, 49, 36, 42, 40, 41, 39, 43, 47,  7)
[예제 2]

eg2 <- c(7, 15, 36, 39, 40, 41, 45, 90)
# IQR 계산
Q1 <- quantile(eg1, 0.25)
Q3 <- quantile(eg1, 0.75)
IQR <- Q3 - Q1

# Lower fence 계산
k <- 1.5  # 이상치 감지를 위한 상수, 일반적으로 1.5 사용
lower_fence <- Q1 - k * IQR

# Upper fence 계산
upper_fence <- Q3 + k * IQR

# 결과 출력
cat("IQR:", IQR, "\n")
cat("Lower fence:", lower_fence, "\n")
cat("Upper fence:", upper_fence, "\n")
# IQR 계산
Q1 <- quantile(eg2, 0.25)
Q3 <- quantile(eg2, 0.75)
IQR <- Q3 - Q1

# Lower fence 계산
k <- 1.5  # 이상치 감지를 위한 상수, 일반적으로 1.5 사용
lower_fence <- Q1 - k * IQR

# Upper fence 계산
upper_fence <- Q3 + k * IQR

# 결과 출력
cat("IQR:", IQR, "\n")
cat("Lower fence:", lower_fence, "\n")
cat("Upper fence:", upper_fence, "\n")
Q1: 25.5 

Q3: 42.5 

IQR: 17

Lower fence: 0

Upper fence: 68
Q1: 30.75 

Q3: 42 

IQR: 11.25

Lower fence: 13.875  

Upper fence: 58.875 
  • 예제2의 Max 값인 90은 Upper fence (58.875)보다 크며, Box Plot에서 이상치로 표시됨 

Box Plot 해석방법 (Outliers 이상치, IQR, Upper / Lower fence)

  • 박스 플롯(Box Plot)은 '상자 수염 그림'(Box-and-Whisker Plot)',  '상자 그림' 등으로 불림
  • 박스 플롯은 데이터의 분포와 이상치를 시각적으로 표현하는데 사용되는 그래프
  • 박스 플롯은 데이터의 중심 경향성(Q1, Median, Q3)과 데이터의 흩어짐(IQR, Whisker)을 한 눈에 파악할 수 있어서 데이터의 분포를 빠르게 이해할 수 있는 유용한 시각화 기법임
  • 이상치를 포함하여 데이터의 전반적인 특성을 파악하고, 데이터 간 비교나 패턴 탐색에도 유용하게 사용됨
  • 박스 플롯에는 다음과 같은 정보들이 표현됨
    • 1사분위수(Q1): 데이터를 작은 값부터 나열했을 때, 하위 25% 지점에 해당하는 값
    • 중앙값(Median): 데이터를 작은 값부터 나열했을 때, 중간에 위치하는 값으로, Q2(또는 중앙값)
    • 3사분위수(Q3): 데이터를 작은 값부터 나열했을 때, 상위 75% 지점에 해당하는 값
    • 상자(Box): 1사분위수(Q1)부터 3사분위수(Q3)까지의 범위를 나타내는 상자로, Q3과 Q1의 차이를 나타내는 값인 IQR (Interquartile Range)이 Box의 높이에 해당
    • Whisker(수염): 일반적으로 1.5배의 IQR을 사용한 경계선
    • 이상치(Outliers): Whisker를 벗어난 값들로, 박스 플롯에 따로 표시되어 특이값임을 나타냄
728x90