데이터 분석을 시작하기 전에 알아야할 통계 지식을 정리함.
코드를 쉽게 이해하기 위해서 영문도 같이 이해하면 좋을듯 함.
관련 pandas 코드를 본문 끝에 같이 정리하였음.
수치형(Numerical)
범주형(Categorical)
데이터가 치우친 경우 차이 발생
정규분포 (Normal Distribution)
치우친 분포 (Skewed Distribution)



모집단의 분산 vs 표본 집단의 분산
모집단 분산(Population Variance): 모든 데이터를 포함한 분산 계산
→ 분모는 데이터 개수 N
→ 편차 제곱의 평균을 구하는 방식
표본 분산(Sample Variance): 모집단 일부 데이터(표본)로 분산 추정
→ 분모는 n-1 (자유도)
→ 표본이 모집단의 분산을 과소평가하지 않도록 보정
*데이터 규모가 더 큰 모집단의 편차가 더 클 것이라고 예측하여 보정하는 방법
→ n-1을 사용하면 불편분산(unbiased variance)이 됨
기술통계(Descriptive Statistics)
추론통계(Inferential Statistics)
import pandas as pd
import numpy as np
# 예시 데이터 생성
data = {
"Height": [165, 170, 155, 180, 175, 160, 168, 172],
"Weight": [62, 70, 55, 80, 75, 58, 65, 68],
"Score": [90, 85, np.nan, 88, 92, np.nan, 80, 87]
}
df = pd.DataFrame(data)
### 결측치 확인
```python
df.isna() # 각 요소가 NaN인지 True/False 반환
df.isna().sum() # 컬럼별 결측치 개수
df.mean() # 평균값 (NaN 무시)
df.median() # 중앙값
df.mode() # 최빈값
df['Height'].sub(df['Height'].mean()) # 각 값에서 평균 뺀 편차
df.var() # 표본 기준 분산 (n-1)
df.std() # 표준편차
df.quantile([0.25, 0.5, 0.75]) # Q1, Q2(중앙값), Q3
df.cumsum() # 각 컬럼별 누적합 계산
df.cumprod() # 각 컬렴벌 누적곱 계산
df.describe() # 평균, 표준편차, 최소/최대, 4분위수 등 요약
s.var() # 기본 ddof=1 → 표본 분산
s.var(ddof=0) # 모집단 분산
# 기본 var()는 표본 분산(n-1) 계산
# ddof는 “delta degrees of freedom”의 약자로, 분산 계산 시 분모에서 뺄 값을 의미함
isna(), sum()mean(), median(), mode()sub(), var(), std()quantile()cumsum()describe()var(ddof=0), var()