2024 - 1학기/데이터분석입문

3장: 수치를 통한 연속형 자료의 요약

SHIN JI HAN 2024. 6. 30. 16:00
728x90
728x90
Reporting Date: June. 30, 2024

 


연속형 자료가 어떤 값을 중심으로 분포되어 있는가를 나타내는 중심위치의 측도,
각 자료가 중심위치의 값으로부터 흩어진 정도를  나타내는 퍼진 정도의 측도 등을 다루고자 한다.


 

 

 

1 .  자 료 의   입 력

## 교재 출처 최하단에 표시 ##

# 예제13: 정량 100인 음료수 80병을 임의로 추출하여 그 내용물의 실제 측정된 양을 잰 자료이다.(p.42)

import numpy as np

# 변수 drink에 NumPy 배열을 할당
drink = np.array([98, 99, 100, 99, 99.4, 101.7, 98.8, 101.8, 101.5, 
                 101.8, 102.6, 101, 98.8, 101.4, 99.7, 99.7, 99.7, 
                 100.9, 98.6, 101.4, 102.1, 102.9, 100.8, 101.8, 
                 100, 101.2, 100.5, 101.2, 100.1, 101.6, 101.3, 99.9, 
                 99.4, 99.3, 99.4,101.6, 96.1, 100, 99.7, 99.1, 100.7, 
                 100.8, 100.8, 95.5,100.1, 100.5, 98.9, 99.9, 96.8, 
                 102.4, 100, 103.7, 101.4,99.7, 97.4, 99.5, 97.5, 
                 99.9, 100.3, 100.2, 101.5, 99.4, 99.7, 98.2, 100.3, 
                 100.2, 100.5, 100.4, 101.5, 98.4, 101.4, 98.8, 100.9, 
                 101.1, 100.9, 98.1, 98.7, 99.2, 98.1, 97.2])

 

 

 

 

중심위치의 측도

 

 

2 .  평 균  ( M e a n )

총 자료의 개수  n 을 모든 관측값  x​, x​, , xn 의 합으로 나눈 값.

 

이를  "산술 평균" 이라고도 하며,  공식으로 표현하면 다음과 같다:

 

표본 평균은 관측값의 산술평균이며, "극단값" 에 영향을 받는다.

  • 표 본   평 균 :   전체 데이터인 "모집단" 에서 추출한 일부 데이터의 평균을 의미한다.
  • (예시1) 예제13 에서 추출된  80 병의 음료수는 표본에 해당된다.
  • 극 단 값 ( O u t l i e r ) :   데이터 집합에서 다른 값들과 현저히 다른 값들을 의미한다.
  • (예시2) 데이터 집합 { 11,  12,  13,  300 } 에서 극단값은 300 이다.
# 2장의 예제 13에서 주어진 음료수 한 병의 부피 데이터를 기반으로 
# 평균, 중앙값, 분산, 표준편차, 범위, 사분위수범위를 파이썬을 이용하여 계산하라.(p.83)

## numpy 모듈을 이용하여 계산할 수 있음. ##

# 평균
print(np.mean(drink))

## 출력된 값 > 100.04125 ##

 

 

 

3 .  중 앙 값  ( M e d i a n )

전체 관측값을  "크기 순서로 배열" 했을 때,  "가운데" 에 위치한 값.

  • 데이터의 개수가  "홀수" 일 경우, 중앙에 위치한 값이 중앙값이다.
  • 데이터의 개수가  "짝수" 일 경우, 중앙에 위치한  "두 값의 평균" 이 중앙값이 된다.

 

항상 중앙의 값을 채택하므로,  "극단값의 영향을 받지 않는다."
따라서, 평균과 값이 다를 수 있다.

# 중앙값 계산
print(np.median(drink))

## 출력된 값 > 100.05 ##

 

 

 

 

퍼진 정도의 측도

 

 

4 .   분 산  ( V a r i a n c e )

확률 분포나 데이터 집합의 산포도 ( 분포도 ) 를 나타내는 통계적 측도.
주어진 데이터의 개별 값들이 평균으로부터 "얼마나 멀리 퍼져 있는지"를 나타내는 지표로 사용된다.

 

관측값이   x​, x​, , xn 이고,  표본평균이   일 때, 표본분산은 다음과 같다:

 

계산과정
  1. 평 균 과 의   거 리 :  각 데이터 값이 평균으로부터 얼마나 떨어져 있는지를 계산한다.
    (예시1)   xi  =  98 100.04  =  2.04
  2. 제 곱 :  거리를 제곱하여 모든 값을 양수로 만들고, 거리의 상대적 크기를 더 잘 식별하게 한다.
    (예시2)   2.04²   =  4.1616   OR   2601/625

  3. 평 균   제 곱   오 차 의   평 균 :  제곱한 값을 모두 더하고, 데이터의 개수로 나눈 값이다.

 

 

4 - 1 .  편 차 ( D e v i a t i o n ) :   각 관측값과 평균의 차이

편차의 합은 항상  0 이므로, 편차의 평균도 항상  0 이다.
그 이유는,  양수 편차들의 합과  음수 편차들의 합이 항상  "상쇄" 되기 때문이다.
퍼진 정도를 측정함에 있어,  멀리 떨어진 정도를 나타내는  "편차의 크기" 가 중요하므로, 

따라서, 편차에서 부호를 없애는 방법으로  "제곱" 을 택한 것이다.

 

 

4 - 2 .  자 유 도 ( D e g r e e s   o f   F r e e d o m ) :

위키백과:  통계적 추정을 할 때,   표본자료  중  모집단에 대한 정보를 주는   "독립적인 자료의 수".
나무위키:  추정해야  할   미지수의 개수를  내가 가진 정보의 수에서 뺀 값.

모집단의 분산인 경우:

"모든 데이터가 사용" 되므로, 자유도를 고려할 필요없이  n 으로 나누면 된다.

표본의 분산인 경우:

표본은 모집단에서 추출된  "상대적으로 적은 규모의 집단" 이다.

이 작은 규모의 집단을 바탕으로 계산된 편차의 제곱합
모집단을 바탕으로 한 것과  "차이" 가 있을 수 밖에 없다. 

우리는 편차의 크기를 나타내는 편차의 제곱합을  "정확히 구하는 것이 목적" 이므로,
표본 분산이 모집단의 분산을  "과소 추정하지 않도록" 보정하여,
"통계적 추정의 정확성" 을 높이기 위해  n 이 아닌  n 1 을 사용하는 것이다.

# 분산 계산 (표본의 분산, 자유도를 1로 설정 = n-1)
print(np.var(drink, ddof=1))

## 출력된 값 > 2.316125000000001 ##
______________________________________________

# 분산 계산 (모집단의 분산, 자유도 고려X = n)
# print(np.var(drink, ddof=0))
print(np.var(drink))

## 출력된 값 > 2.287173437500001 ##

 

자유도를 고려할 때, 표본의 분산이 더 "크게" 나타나며,
이는 표본 내의 "변동성" 을 보다 정확하게 반영하고 있음을 보여준다.

자유도1로 설정하지 않는 것은   n 1 로 나누지 않는 것과 같으므로, 이점을 주의한다.


 

 

 

5 .  표 준 편 차  ( S t a n d a r d   D e v i a t i o n )

분산의 제곱근으로, 데이터의 변동성을  "원래 데이터의 단위" 로 나타낸 값.
이는 분산의 계산과정 중 편차의 제곱합으로 인해 증가된 값을 바로잡아 준다.

# 표준편차 계산 (표본의 표준편차, 자유도를 1로 설정)
print(np.std(drink, ddof=1))

## 출력된 값 > 1.521882058505192 ##
____________________________________________________

# 표준편차 계산 (모집단의 표준편차)
print(np.std(drink))

## 출력된 값 > 1.5123403841397614 ##

표준편차에서도 분산과 동일한 이유로 자유도가 주어진다.


 

 

 

6 .  범 위  ( R a n g e )

관측값에서 가장 큰 값과 가장 작은 값의 차이.

  • 장점: 간편하게 구할 수 있고, 해석이 용이하다.
  • 단점: 양 끝점에 의해서만 결정되므로, 중간에 위치한 관측값들이 "전혀 반영되지 않는다." 

그러므로,  "극단값" 에 영향을 받는다.

# 범위 계산 (최대값 - 최소값)
print(np.max(drink) - np.min(drink))

## 출력된 값 > 8.200000000000003 ##

 

 

 

7 .  사 분 위 수 범 위  ( Q u a r t i l e )

전체 관측값을  "작은 순서로 배열" 하였을 때, 전체를  "사등분" 하는 값.

 

사분위수
  • 1 사분위수:  Q   = 25 백분위수 25%
  • 2 사분위수:  Q   =  제50 백분위수  50%  =  " 중 앙 값 "
  • 3 사분위수:  Q   =  75 백분위수  75%

 

계산방법



7 - 1 .  사 분 위 수 범 위  ( I n t e r q u a r t i l e   R a n g e ,   I Q R )

 

# 사분위수 범위 계산 (IQR, Interquartile Range)
q1, q3 = np.percentile(drink, [25, 75])  # 25%와 75% 사분위수 계산
print(q3 - q1)

## 출력된 값 > 2.0250000000000057 ##

 

 

 

pandas 모듈의 DataFrame 객체 내의 멤버 함수인 describe() 함수를 이용하면,
위의 통계량을 한 번에 계산할 수 있다.

 

 

import pandas as pd

# 데이터프레임 생성 및 요약 통계량 계산
drink_df = pd.DataFrame(drink)  # 데이터를 pandas의 DataFrame으로 변환
summary = drink_df.describe()  # 기술 통계량 요약 계산
print(summary)


describe()
함수에서의   std 는 자동적으로  n 1 로 나누어져서 계산된다.


Symbols (wumbo.net)

참고용 블로그: 작은 숫자 특수문자 첨자 및 분수숫자 모음
교제: 통계학: 파이썬을 이용한 분석

 


728x90
반응형