기초통계 (2)변이추정

생각하는 마리오네트·2021년 7월 30일
0

통계

목록 보기
7/41

💡 변이 추정

  • 변이 추정은 데이터 값이 얼마나 밀집해 있는지 혹은 퍼져 있는지를 나타내는 산포도를 나타낸다.

📈 편차(deviation)

  • 관측값과 위치 추정값 사이의 차이
  • 쉽게 말하면 회귀식에서 실제 관측값과 우리가 추정하는 값의 차이를 뜻한다.

📈 평균절대편차

  • 변이를 측정하는 한 가지 방법은 편차들의 대푯값을 추정것인데 편차의 경우 음수와 양수가 있고, 편차의 합은 항상 0이 되기때문에 편차에 절대값을 주고 이의 평균을 구하는것이다. 이것이 평균절대편차이다.
  • 평균과의 편차의 절대값의 평균을 말한다.
  • 평균 구하기 -> 각 측정값들의 평균으로부터 얼마나 떨어져있는지 구하고 절대값 씌우기(절대편차) -> 모든 편차 더하기 -> (편차의합) / (측정값의 개수)

(가장 유명하고 자주쓰이는 추정 방법은 제곱편차를 이용한 분산과 표준편차이다)

📈 분산

  • 분산이란 내가 가진 자료(데이터)가 평균값을 중심으로 퍼져있는 거리를 말한다.
  • 평균과의 편차를 제곱한 값들의 합을 n-1로 나눈 값. n은 데이터 개수/ (편차제곱의합)/(n-1)
  • 분자를 "제곱합" 분모를 "자유도"라고 한다.
  • n-1로 나누어 주는 이유는 분자에서 평균값을 빼 주었기 때문에 평균을 빼고 나눠어 줘서 n-1이다.

📈 표준편차

  • 분산과 의미가 같지만 Scale의 차이가 있다.
  • 표준편차는 분산의 제곱근이다.(분산의 루트)
  • 분산의 경우 제곱의 합이기 때문에 값이 커지게 된다, 따라서 값의 크기를 루트를 씌워 작게 만드는것이 표준편차이고 의미는 분산과 같다고 볼 수 있다.
  • 루트를 통해 기존의 데이터와 같은 척도(scale)에 있기 때문에 분산보다 훨씬 해석하기가 쉽다
  • 실제로 더 수식이 복잡한 표준편차를 평균절대편차보다 더 선호하는 이유는 수학적인 관점으로 제곱을 하는값이 절대값을 한 값보다 통계모델을 다루는데 편리하기 때문이다.

(분산, 표준편차, 평균절대편차 모두 Outlier(특잇값, 극단값)에 로버스트하지 않다. 그 중에서도 분산과 표준편차는 제곱편차를 이용하는 계산이므로 더욱 특잇값에 민감하다.)

📈 중간값의 중위절대편차(MAD)

  • 중간값과의 편차의 절댓값의 중간값(median(abs(관측값-중앙값)))
  • 편차 값이 테일의 극값의(극단값)의 영향을 적게 받아야 하는경우 평균편차 대신 중앙값 절대 편차를 사용하게 된다.(중앙값이 평균보다 테일 값의 영향을 적게 받기 때문이다.)
# statsmodels Download
!pip install statsmodels

# import
from statsmodels import robust

# make DataFrame
state = pd.DataFrame({'State':['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware'],
              'Population':[4779736, 710231, 6392017, 2915918, 37253956, 5029196, 3574097, 897934],
              'Murder': [5.7, 5.6, 4.7, 5.6, 4.4, 2.8, 2.4, 5.8],
              'Abbreviation':['AL', 'AK', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE']})

# MAD구하기
robust.scale.mad(state['Population'])

>>>
2576836.044572552

# 실제로 해당데이터의 표준편차는 12105745.29585633 으로 MAD가 훨씬 robust한 결과를 얻는것을 알 수 있다.

📈 범위

  • 데이터의 최댓값과 최솟값의 차이

📈 사분위 범위(IQR)

  • 변이를 측정하는 가장 대표적인 방법인 사분위 범위는 25번째 백분위수와 75번째 백분위수의 차이를 보는 것이다.
  • 75번째 백분위수와 25번째 백분위수 사이의 차이를 말한다.
# make DataFrame
state = pd.DataFrame({'State':['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware'],
              'Population':[4779736, 710231, 6392017, 2915918, 37253956, 5029196, 3574097, 897934],
              'Murder': [5.7, 5.6, 4.7, 5.6, 4.4, 2.8, 2.4, 5.8],
              'Abbreviation':['AL', 'AK', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE']})
              
state['Population'].quantile(0.75) - state['Population'].quantile(0.25)
>>>
2958479.25

📈 순서통계량

  • 최소에서 최대까지 정렬된 데이터 값에 따른 계량형

변이를 측정하는방법

  • 변이를 측정하는 가장 대표적인 방법은 사분위범위(IQR)라는, 25번째 백분위수와 75번째 백분위수의 차이를 보는 것이다.
  • 이는 양 끝의 일정값을 제거하고 보기때문에 이상값의 영향을 덜 받게된다.
  • IQR을 파이썬 에서 사용할때는 IQR()함수를 사용하면 된다.
  • 혹은 .quantile(0.75) - .quantile(0.25) 를 통해 계산도 가능하다.

(정리 : 분산과 표준편차는 변이 측정에 있어서 주로 사용하는 방법이나 특잇값(outlier)에 민감하다는 단점때문에 중간값과 백분위수로부터 평균절대편차와, 중간값의 중위절대편차를 구하는 것이 좀 더 robust하다.)

profile
문제를해결하는도구로서의"데이터"

0개의 댓글