자신에게 친절할 것 :)

Statistics

[Statistics] mean, median, Q1, Q3, outlier, mode, .describe()

Tashapark 2024. 6. 2. 21:02
728x90

# 코드잇 데이터 사이언스 강의 듣는 중

 

- data에 따라서 대표치를 어떤 것으로 볼 지가 달라짐.

- outlier가 크면, median은 mean보다 outlier의 영향을 덜 받기 때문에 사용

- but, median은 전체 값의 분포가 달라져도 같을 수 있지만, mean은 값에 영향을 받기 때문에 median이 다 같으면 mean 더 좋은 대표치가 됨. 

 

--> numerical(수치형) data는 mean, median, mode를 구할 수 있음 

- but categorical(범주형) data는 mean, median을 구할 수 없기에 mode가 대표치가 됨. 

 

+ 수치형 데이터는 1) 이산형데이터 (값이 정확히 떨어짐; 오늘 마신 아메의 갯수) 

2) 연속형 데이터 (값이 정확하지 않음; 추정치; 오늘의 키/ 몸무게 등. 자는 164cm래.. 근데.164.3? 164.32?)로 구분

++ 연속형 데이터는 (범위로 묶는) 히스토그램으로 보는 것이 편함 

 

- median은 데이터를 sort한 후에 그 중앙에 있는 값(50%)임!

- 짝수 데이터 수일때는 중앙의 두 값의 합/2, 홀수 있때는 중앙의 값 그 자체임

 


<Q1(25%)과 Q3(75%)를 구하기>

 

 

1) 홀수 데이터는 median 포함시켜서 좌우로 나누어서 중앙 값을 구해주면 됨.

 

2) 짝수 데이터는 Q1, Q3의 인덱스를 활용함.

- 인덱스 --> 데이터 총 개수 (n-1)에서 0.25 혹은 0.75를 곱해줌. 

- 1을 빼주는 이유는 인덱스가 0부터 시작하기 때문. 

- 아래의 예) (8-1) * 0.25 = 1.75 --> Q1 인덱스는 1.75 

=> 즉, 1과 2사이에 있고 0.75(3/4)만큼 떨어져 있다는 의미임. 

 

- 계산은 조금 복잡하게 하셨는데.. 다른 분이 적어 놓은 것이 더 이해하기 좋아서 나도 그렇게 이해 했음. 

- 15 + {(20-15) * 0.75} => 두 값 사이의 거리에서 0.75만큼 떨어져 있다고 이해하는 것이 좋음. 

 

- Q3도 마찬가지임. 

- 아래의 예) (8-1) * 0.75 = 5.25 --> Q3 인덱스는 5.25

=> 즉, 5와 6사이에 있고 0.25(1/4)만큼 떨어져 있다는 의미임. 

- 57 + {(63-57) * 0.25} => 두 값 사이의 거리에서 0.25만큼 떨어져 있다고 이해하는 것이 좋음. 

 


<이상값 outlier 구하기>

 

- 구분을 위한 기준이 여러 개 있으나, 대표적으로 Q1과 Q3를 활용함. 

- IQR(Interquartile Range) = Q3-Q1 = Q1, Q3의 거리 

 

- outlier = 보통 Q1에서 아래로 1.5IQR 떨어져 있거나, Q3에서 위로 1.5IQR 떨어져 있는 값

- 위의 예시의 경우에 125만 이상치가 됨. 

 


< 기초통계 값 확인>

- .describe()를 쓰면 기초 통계 값을 확인할 수 있음. 

- but, 숫자형 데이터 값만 확인이 가능하기 때문에, 만약에 범주형도 포함해서 보고 싶다면 

- (include ='all')을 포함시켜 주면 됨. 

 

 

df.describe(include='all')

 

--> name 열이 위의 4 로우에 추가되었음. 

--> 계산이 필요한 것은 전부 NaN으로 표기됨. 

--> 그래도 총 개수(count)와 유니크 갯수(unique), 최빈값(top), 빈도(freq)를 확인할 수 있어서 필요하다면 이렇게 확인해도 좋을 듯 

728x90
반응형