✅ 통계의 양대산맥
🔰 기술통계
데이터를 요약하고 설명하는 통계 방법
- 데이터를 특정 대표값으로 요약
- 데이터에 대한 대략적인 특징을 간단하고 쉽게 알 수 있음
- 단, 데이터 중 예외(이상치)라는게 항상 존재할 수 있고 데이터의 모든 부분을 확인할 수 있는 것은 아님
- 평균 (Mean)
- : 데이터의 대표값을 나타내는 값
- 모든 데이터를 더한 후 데이터의 개수로 나누어 계산
- 일반적인 경향 파악하는데 유용
- 중앙값 (Median)
- : 크기 순서대로 정렬했을 때, 중앙에 위치한 값
- 이상치에 영향을 덜 받기 때문에 데이터의 중심 경향을 나타내는 또 다른 방법
- 분산 (Variance)
- : 데이터 값들이 평균으로부터 "얼마나 떨어져있는지" 나타내는 척도
- 데이터의 흩어짐 정도를 측정
- 분산이 크면 데이터가 넓게 퍼져있고, 작으면 평균에 가깝게 모여있음
- 데이터 값에서 평균을 뺀 값을 제곱 → 모두 더하고 데이터의 개수로 나눔
- 표준편차 (Standard Deviation)
- : 데이터의 변동성을 측정, 값이 클수록 데이터가 평균으로부터 더 넓게 퍼져 있음을 의미
- : 분산이랑 똑같은데, 표준편차는 원래 데이터 값과 동일한 단위로 변환함 ⇒ 직관적
🔰 추론통계
표본 데이터를 통해 모집단의 특성을 추정하고 가설을 검정하는 통계 방법 데이터의 일부를 가지고 데이터 전체를 추정하는 것이 핵심
- 신뢰구간
- : 모집단의 평균이 특정 범위 내에 있을 것이라는 확률
- 일반적으로 95% 신뢰구간이 사용됨 = 모집단 평균이 95% 확률로 이 구간 내에 있음을 의미
- 표본의 평균을 가지고 모집단의 평균이 대략 어느정도이다 를 알 수 있음
- 표본 평균 만족도가 75점이고, 신뢰구간이 70~80점이라면 95% 확률로 실제 평균 만족도가 (모집단0이 이 범위 내에 있다고 말할 수 있음
- 모집단-전체 데이터 / 샘플,표본-전체 데이터의 일부분. 최대한 모집단과 비슷한 특성이 비슷해야함
- 가설검정
- 모집단에 대한 가설을 검증하기 위해 사용
- 귀무가설(H0) : 검증하고자 하는 가설이 틀렸음을 나타내는 기본 가설. - 변화 x 효과 x
- 대립가설(H1) : 귀무가설과 반대. 주장하는 바를 나타냄. - 변화o효과o\
- p-value를 통해 귀무가설을 기각할 지 여부를 결정
✅ 분석 방법
🔰 위치추정
- np.mean() : 평균값
- np.median() : 중앙값
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
data = [85, 90, 78, 92, 88, 76, 95, 89, 84, 91]
mean = np.mean(data)
median = np.median(data)
print(f"평균값 : {mean} / 중앙값 : {median}")
*>>>
평균값 : 86.8 / 중앙값 : 88.5*
🔰 변이추정
- np.var() : 분산
- np.std() : 표준편차
- 범위(R) : np.max() - np.min()
variance = np.var(data)
std_dev = np.std(data)
data_range = np.max(data) - np.min(data)
print(f"분산 : {variance} / 표준편차 : {std_dev} / 범위 : {data_range}")
>>>
분산 : 33.36 / 표준편차 : 5.775811631277461 / 범위 : 19
🔰 데이터 분포 탐색
- 히스토그램, box plot ⭕
plt.hist(data, bins=5)
plt.title("histogram")
plt.show()
plt.boxplot(data)
plt.title("boxplot")
plt.show()


🔰 이진 데이터와 범주 데이터 탐색
- 수치형 데이터 : 숫자로 이루어진 데이터 // 범주 데이터 : 텍스트가 들어가 있는 데이터
- 최빈값(개수가 제일 많은 값) 주로 사용
- 파이, 막대 그래프 ⭕
satisfaction = ['satisfaction', 'satisfaction', 'dissatisfaction',
'satisfaction', 'dissatisfaction', 'satisfaction', 'satisfaction',
'dissatisfaction', 'satisfaction', 'dissatisfaction']
satisfaction_counts = pd.Series(satisfaction).value_counts()
satisfaction_counts.plot(kind='bar')
plt.xticks(rotation=30)
plt.title('satisfaction distribution')
plt.show()

❓ 히스토그램 / 막대 그래프 ❓
히스토그램 : 수치형 데이터에서 사용. 반드시 구간 정하고 그 구간에 대한 개수를 세는 것
막대 그래프 : 범주형 데이터에서 사용
🔰 상관관계
- : 두 변수 간의 관계를 측정하는 방법
- -1(음의 방향)이거나 1(양의 방향)에 가까워지면 강력한 상관관계를 가짐
- 0에 가까울 수록 상관관계 X
- 산점도 scatter ⭕
- np.corrcoef() : 상관관계 계수. 0.7이상이면 꽤 강한 상관관계가 있다고 봄
study_hours = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
exam_scores = [95, 90, 85, 80, 75, 70, 65, 60, 55, 50]
correlation = np.corrcoef(study_hours, exam_scores)[0, 1]
print(f"공부 시간과 시험 점수 간의 상관계수: {correlation}")
plt.scatter(study_hours, exam_scores)
plt.show()
>>>
공부 시간과 시험 점수 간의 상관계수: 1.0

❓ 인과관계 / 상관관계 ❓
인과관계 : 한 변수가 다른 변수에 미치는 영향. 원인, 결과가 분명해야 함
상관관계 : 두 변수 간의 관계
🔰 다변량 분석
- : 여러 변수 간의 관계를 분석하는 방법
- sns.pairplot() : 산점도인데 각각 변수와의 관계를 다 그려줌
- sns.heatmap()
- df.corr() : pandas에서의 상관계수 계산
data = {'TV': [230.1, 44.5, 17.2, 151.5, 180.8],
'Radio': [37.8, 39.3, 45.9, 41.3, 10.8],
'Newspaper': [69.2, 45.1, 69.3, 58.5, 58.4],
'Sales': [22.1, 10.4, 9.3, 18.5, 12.9]}
df = pd.DataFrame(data)
sns.pairplot(df)
plt.show()
df.corr()

⇒ 대각선
: 자기 자신과의 상관관계임. 무조건 1이 나올 수밖에 없음
그러므로 굳이 그리지 않아도 되므로 각 순서대로 TV, Radio, Newspaper, Sales에 대한 히스토그램을 그림

# heatmap 까지 그린다면
sns.heatmap(df.corr())

'Sparta > Theory' 카테고리의 다른 글
| [250916] 통계 03 - 검정 (0) | 2025.09.16 |
|---|---|
| [250916] 통계 02 - 분포 (0) | 2025.09.16 |
| [250901] pandas visualizer (0) | 2025.09.01 |
| [250830] pandas (1) | 2025.09.01 |
| [250829] 스파르타코딩 본캠프 19일차 (1) - pandas 02 (0) | 2025.08.29 |