확산 측정

수현·2024년 1월 14일
1

Statistics

목록 보기
7/7
post-thumbnail

확산 (Spread)

확산은 데이터 포인트들이 얼마나 서로 떨어져 있는지를 나타낸다. 데이터가 얼마나 흩어져 있는지를 측정하여 데이터 세트의 변동성을 파악할 수 있다.

분산 (Variance)

  • 분산은 각 데이터 포인트가 평균으로부터 얼마나 떨어져 있는지의 평균적인 거리를 제곱한 값이다.

계산과정

  1. 평균과의 거리 계산

    • 각 데이터 포인트(시험 점수)에서 전체 평균까지의 거리 계산
    • 코드: dists = scores - np.mean(scores)
    • 결과: [25.56, 5.11, 13.78, ..., -9.58, -5.57, -0.05]
  2. 제곱된 거리 계산

    • 계산된 거리를 제곱하여 각각의 제곱된 거리 얻음
    • 코드: sq_dists = dists ** 2
    • 결과: [653.50, 26.06, 189.99, ..., 91.78, 31.03, 0.003]
  3. 제곱된 거리의 합 계산

    • 모든 제곱된 거리를 합산
    • 코드: sum_sq_dists = np.sum(sq_dists)
    • 결과: 22856.10
  4. 분산 계산

    • 제곱된 거리의 합을 데이터 포인트 수에서 1을 뺀 값으로 나누어 분산 계산
    • 코드: variance = sum_sq_dists / (len(scores) - 1)
    • 결과: 230.87
  • np.var(data, ddof=1)를 사용하여 쉽게 계산할 수 있다.

표준 편차 (Standard Deviation)

개념

  • 표준 편차는 분산의 제곱근으로, 데이터 포인트가 평균으로부터 얼마나 떨어져 있는지를 나타내는 확산의 척도이다.
  • 표준 편차는 분산과 달리 제곱하지 않기 때문에 원래 데이터와 동일한 단위를 가져서 해석하기가 더욱 쉽다.

계산 방법

  • np.std(data, ddof=1) 또는 np.sqrt(np.var(data, ddof=1))를 사용하여 계산할 수 있다.
    • 표즌편차를 직접 계산:np.std(data, ddof=1)
    • 분산을 계산한 후, 제곱근을 취하기: np.sqrt(np.var(data, ddof=1))

평균 절대 편차 (Mean Absolute Deviation, MAD)


개념

  • 평균 절대 편차는 각 데이터 포인트와 평균 간의 절대값 차이의 평균으로, 데이터의 변동성을 측정한다.

계산 방법

  1. 데이터 포인트와 평균 간의 거리(차이) 계산
  2. 이 차이들의 절대값 취함
  3. 이 절대값들의 평균 계산
  • 계산 공식: np.mean(np.abs(data - np.mean(data)))

표준 편차와의 차이점

  • 표준 편차는 각 데이터 포인트와 평균 간의 거리를 제곱하여 계산하므로, 거리가 멀수록 더 크게 가중치를 부여한다.
  • 평균 절대 편차는 모든 거리를 동등하게 취급한다.
  • 어느 쪽이 '더 나은' 방법이라고 할 수 없으며, 사용하는 상황에 따라 적절한 방법을 선택해야 한다.
  • 표준 편차는 더 일반적으로 사용되며, 특히 정규 분포와 같이 분포가 종 모양일 때 유용하다.

분위수 (Quantiles)

개념

  • 분위수는 데이터셋을 동일한 크기의 여러 부분으로 나누는 값이.
  • 백분위수라고도 하며, 데이터의 분포를 이해하는 데 도움이 된다.

계산 방법

  • np.quantile(data, q) 함수를 사용하여 계산할 수 있다. 여기서 q는 원하는 분위수를 나타낸다.
    • 예: np.quantile(data, 0.5)는 데이터의 중앙값(50번째 백분위수)을 계산한다.
    • 여러 분위수를 한 번에 계산하기 위해 숫자 리스트를 전달할 수 있다. 예: np.quantile(data, [0, 0.25, 0.5, 0.75, 1])

Boxplot과 분위수

  • Boxplot에서 각 선은 다음을 나타낸:
    • 첫 번째 선: 1사분위수 (25번째 백분위수)
    • 두 번째 선: 중앙값 또는 2사분위수 (50번째 백분위수)
    • 세 번째 선: 3사분위수 (75번째 백분위수)

np.linspace()를 사용한 분위수 계산

  • np.linspace(start, stop, num)를 사용하여 일정한 간격의 분위수를 계산할 수 있다.
    • 예: np.quantile(data, np.linspace(0, 1, 5))는 0부터 시작하여 1에서 끝나며, 5개의 동일한 간격으로 데이터를 나눈다.

quantile은 데이터의 전반적인 분포와 위치를 파악하는 데 유용하며, 특히 데이터의 극단값이나 전반적인 경향을 이해하는 데 도움이 된다.


사분위수 범위 (IQR, Interquartile Range)

개념

  • 사분위수 범위 (IQR)는 데이터의 중앙 50%를 나타내며, 25번째 백분위수(Q1)와 75번째 백분위수(Q3) 사이의 거리이다.
  • 박스플롯에서 박스의 높이는 IQR을 나타낸다.

계산 방법

  • np.quantile(data, 0.75) - np.quantile(data, 0.25)를 사용하여 계산할 수 있다.
  • 또는 SciPy 라이브러리의 iqr 함수를 사용할 수도 있다.
    from scipy.stats import iqr
    iqr_value = iqr(data)

이상치 (Outliers)

개념

이상치는 다른 데이터 포인트들과 상당히 다른 값을 가진 데이터다.

이상치 판별 방법

  • 자주 사용되는 방법은 IQR을 기반으로 한다.
    • Q1에서 IQR의 1.5배를 뺀 값보다 작은 데이터
    • Q3에 IQR의 1.5배를 더한 값보다 큰 데이터

계산 방법

from scipy.stats import iqr
iqr_value = iqr(data)
lower = np.quantile(data, 0.25) - 1.5 * iqr_value
upper = np.quantile(data, 0.75) + 1.5 * iqr_value

outliers = data[(data < lower) | (data > upper)]

데이터프레임의 하위 집합을 지정하여 이상치를 추출할 수 있다.


데이터 요약, describe()

Pandas 데이터프레임의 describe() 메서드를 사용하여 데이터에 대한 일반적인 이해를 얻을 수 있다.

data.describe()
profile
데이터 분석 공부중:)

0개의 댓글