이번 글은 코드잇 강의를 수강하면서 배운 내용을 주로 하여 정리되어 있습니다. (코드잇 스프린트 데이터 애널리스트 트랙 1기 훈련생)
기술통계와 추론통계
통계
통계란 어떤 상황을 쉽게 이해할 수 있도록 숫자로 정리하는 것이다.
통계는 기술통계와 추론통계로 나뉜다.
기술통계(Descriptive Statistics)
데이터를 요약하고 핵심적인 특징을 파악하는 통계
- 기술통계량 : 평균 / 중간값 / 이상점
추론통계(Inferential statistics)
표본을 바탕으로 모집단을 추론하는 통계 (모집단의 사이즈가 너무 커서 표본을 추출하여 모집단을 추론한다.)
- 모집단(Population) : 관심 대상의 전체집합
- 표본(sample) : 모집단에서 뽑아낸 일부
대표값과 산포도
기술통계의 대표값
- 평균 (mean) : 데이터 합계 / 데이터 개수
- 중위수(=중앙값 , median) : 데이터를 순서(크기)대로 정렬했을 때 중간에 있는 값
데이터가 홀수인 경우, 가운데 있는 값이 중위수이다.
데이터가 짝수인 경우, 중간의 2가지 값의 평균이 중위수이다.- 데이터를 순서대로 정렬했을 떄 가장 작은 값을 최솟값(minimum value)이라고 한다.
- 데이터를 순서대로 정렬했을 떄 가장 큰 값을 최댓값(maximum value)이라고 한다.
- 최빈값 (mode) : 가장 빈번하게 등장하는 값 / 범주형 데이터의 대표값
산포도
- 사분위수 범위 (IQR) : Q3 - Q1
- 범위 (range) : 최대값 - 최소값
- 분산 (variance) : 편차 제곱의 평균 (편차를 극대화시키기 위해 제곱을 함)
- 표준편차 (standard Deviation) : 분산의 제곱근 (단위를 원래대로 돌리기위해 제곱근을 함)
사분위수
데이터를 크기대로 정렬했을 떄 25%가 되는 지점은 제 1 사분위수(first quartile; Q1)
데이터를 크기대로 정렬했을 떄 50%가 되는 지점은 제 2 사분위수(=중간값, second quartile; Q2)
데이터를 크기대로 정렬했을 떄 75%가 되는 지점은 제 3 사분위수(third quartile; Q3)
데이터를 크기대로 정렬했을 떄 가장 큰 값이 있는 지점은 제 4 사분위수라고 할 수 있지만, 최댓값으로 표현한다.
평균 VS 중위수
어떤 값을 대표값으로 사용할까?
평균과 중위수 중에 어떤 값을 대표값으로 사용할 지는 상황에 따라 다르다.
데이터에는 종종 튀는 값들이 섞여 있는 경우가 있는데 이 값들로 인해 평균이 데이터의 전반적인 경향을 제대로 표현하지 못한다.
이런 경우에는 튀는 값이 있어도 중간값은 영향을 받지 않기 때문에 대표값으로 사용하기에 적절하다.
즉, 데이터에 이상치가 포함된 경우에는 평균이 작아지거나 커질 수 있어 중위수를 대표값으로 활용한다.
수치형 데이터와 범주형 데이터
수치형 데이터
숫자로 표현할 수 있는 데이터로 사칙연산이 가능하고 크고 작음을 비교할 수 있다.
이산형 데이터(예) 나이)와 연속형 데이터로 구분
예) 학생 수, 주사위 눈, 키, 몸무게
범주형 데이터
범주 또는 그룹으로 표현되는 데이터로 평균, 중간값, 사분위수를 구할 수 없는 대신 최빈값과 범주의 종류 파악 가능
예) 성별, 고객 만족도(매우 만족, 만족 등등)
파이썬을 이용한 기술 통계
파일 경로를 가져오기
import os # os : operating system
os.getcwd() # current working directory 현재 디렉토리 위치를 출력
# 추가적안 os 명령어
os.chdir() # 원하는 디렉토리로 위치 변경
라이브러리 불러오기
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
데이터 불러오기
df = pd.read_csv('data/파일명.csv')
df
기술통계
- describe() 함수 활용 (기본적으로 수치형 데이터의 통계만을 제공)
df.describe()
'''
출력하는 정보들 :
count - 각 칼럼의 데이터의 개수 출력
mean - 각 칼럼의 데이터의 평균 출력
std - 각 칼럼의 데이터의 표준편차 출력
min - 각 칼럼의 데이터의 최솟값 출력
25% - 각 칼럼의 데이터의 제 1사분위수 값 출력
50% - 각 칼럼의 데이터의 제 2사분위수 값 출력
75% - 각 칼럼의 데이터의 제 3사분위수 값 출력
max - 각 칼럼의 데이터의 최댓값 출력
'''
- describe(include=’all’) 활용
수치형 데이터뿐만 아니라 모든 데이터에 대한 통계 정보를 확인하고 싶을 때에는 describe() 함수 안에 include=’all’ 를 지정한다.
test_df.describe(include='all')
'''
출력하는 정보들 :
count - 각 칼럼의 데이터의 개수 출력
unique - 범주형 데이터들의 종류의 개수 출력, 중복을 제외한 고유한 값의 개수 출력
top - 범주형 데이터들 중 가장 많이 중복된 데이터값 출력
freq - 범주형 데이터들 중 중복된 값의 개수를 출력
mean - 각 칼럼의 데이터의 평균 출력
std - 각 칼럼의 데이터의 표준편차 출력
min - 각 칼럼의 데이터의 최솟값 출력
25% - 각 칼럼의 데이터의 제 1사분위수 값 출력
50% - 각 칼럼의 데이터의 제 2사분위수 값 출력
75% - 각 칼럼의 데이터의 제 3사분위수 값 출력
max - 각 칼럼의 데이터의 최댓값 출력
'''
- 칼럼의 데이터의 종류를 알고 싶을 때 unique() 사용
df['컬럼명'].unique()
# 출력 : array(['Chinese', 'Japanese', 'Russian', 'German', 'French'], dtype=object)
- 데이터의 종류 개수를 알고 싶을 때는 앞에 n을 추가하여 nunique() 사용
df['컬럼명'].nunique()
# 출력 : 5
- 한 가지 컬럼에 대한 통계도 describe()으로 볼 수 있다.
df['컬럼명'].describe()
'''
출력하는 정보들 :
count : 300.000000
mean : 62.295667
std : 10.528884
min : 27.000000
25% : 57.500000
50% : 62.500000
75% : 70.000000
max : 97.000000
'''
이번 글에서는 통계 / 기술통계 및 추론통계 / 대표값과 산포도 / 평균과 중위수 / 수치형 데이터와 범주형 데이터 / 파이썬을 이용한 기술통계 방법들이 포함된 내용을 정리했으며, 데이터 분석과 데이터를 다루는 경우에 모두 필수적인 개념들로 꼭 잊지 말고 알아가야 하는 내용인 것 같습니다.
글 읽어주셔서 감사합니다.
출처 및 참고자료 : 코드잇 사이트 강의 '기초 통계와 데이터 시각화' https://www.codeit.kr/topics/statistics-and-visualization
'통계' 카테고리의 다른 글
[통계 개념 정리 4] 추론 통계 개념 정리 3️⃣ (회귀 분석) (0) | 2024.07.07 |
---|---|
[통계 개념 정리 3] 추론 통계 개념 정리 2️⃣ (통계적 가설 검정) (0) | 2024.07.06 |
[통계 개념 정리 2] 추론 통계 개념 정리 1️⃣ (추론 통계 개요, 통계 리터러시) (0) | 2024.07.06 |
데이터 분석을 공부하고 카페를 열심히 돌아다니는 이야기
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!