1️⃣ 데이터 사이언스 개요
- 데이터에서 특징을 찾아내고 가치 있는 정보를 도출하는 과정
- 데이터를 분석하기 위해 통계학, 머신러닝, 프로그래밍(주로 Python) 활용
- 데이터 분석의 핵심 요소 : 데이터, 알고리즘, 컴퓨팅
2️⃣ 데이터 분석을 위한 통개학 개념
✨ 확률의 개념
- 확률(Probability) : 특정 사건이 발생할 가능성을 나타내는 값
- 주사위를 던질 때 각 숫자가 나올 확률은 6분의 1 (1/6)
- 시행 횟수가 많아질수록 실제 확률값이 이론적 확률값에 가까워짐 (대수의 법칙)
확률의 기본 법칙
1. 덧셈 법칙
-
두 사건 A, B가 발생할 확률:
P(AB)=P(A)+P(B)−P(AB)
-
예: 주사위에서 짝수(2, 4, 6) 또는 3이 나올 확률
- 조건부 확률
-
어떤 사건 B가 발생한 경우, 사건 A가 발생할 확률:
P(A∣B)= P(B)P(AB)
-
예: 비가 오는 날(조건) 우산을 들고 다닐 확률
- 독립 사건 & 종속 사건
- 독립 사건 : 이전 사건이 이후 사건에 영향을 주지 않음 (예: 동전 던지기)
- 종속 사건 : 이전 사건이 이후 사건에 영향을 줌 (예: 카드를 한 장 뽑고 다시 넣지 않는 경우)
✨ 순열과 조합
- 순열(Permutation)
-
서로 다른 n개 중 r개를 뽑아 순서대로 배치
-
공식:
P(n,r)= (n−r)!n!
-
예: 5명의 학생 중 3명을 뽑아 자리 순서를 정하는 경우
- 조합(Combination)
-
서로 다른 n개 중 r개를 뽑되 순서를 고려하지 않음
-
공식:
C(n,r)= r!(n−r)!n!
-
예: 5명의 학생 중 3명을 뽑아 조를 구성하는 경우
💡 순열 > 조합
- 순열은 조합보다 경우의 수가 더 많음 (순서까지 고려하기 때문)
✨ 확률 변수와 확률 분호
- 확률 변수 (Random Variable) : 실험 결과를 수치로 표현한 변수
- 이산 확률 변수 : 값이 뚝뚝 떨어지는 경우 (예: 주사위 눈금, 경기 점수)
- 연속 확률 변수 : 특정 구간 내 모든 값을 가질 수 있음 (예: 사람의 키, 몸무게)
확률 분포
- 정규 분포(Normal Distribution)
- 평균을 중심으로 종 모양의 좌우대칭 형태
- 많은 자연현상에서 나타남 (예: 시험 성적, 사람 키)
- 정규 분포의 특징
- 평균값 주변에 데이터가 가장 많음
- 평균에서 멀어질수록 데이터가 줄어듦
- 공식:
Z= σX−μ
- Z : 표준 점수
- X : 특정 데이터 값
- μ : 평균
- σ : 표준 편차
- 베르누이 분포(Bernoulli Distribution)
- 성공(1) 과 실패(0) 두 가지 결과만 존재하는 분포
- 예: 동전 던지기, 정답 맞출 확률
- 이항 분포(Binomial Distribution)
- 베르누이 시행을 n번 반복할 때 특정 횟수만큼 성공할 확률
3️⃣ 통계적 추론(Statistical Inference)
- 추정(Estimation) : 표본을 이용해 모집단의 특성을 추론
- 가설 검정(Hypothesis Testing) : 어떤 가설이 맞는지 검증하는 과정
- 귀무 가설(H0) : 기존의 주장 (예: 비타민C 는 감기 예방 효과가 없다)
- 대립 가설(H1) : 새로운 주장 (예: 비타민C 는 감기 예방 효과가 있다)
- 유의 확률(p-value) : p값이 낮으면 귀무 가설 기각
4️⃣ 주요 통계 분석 기법
| 분석 기법 | 설명 | 예시 |
|---|
| 빈도 분석 | 데이터가 얼마나 자주 발생하는지 분석 | 야식 배달 주문 시간별 빈도 |
| 평균 분석 (t-검정) | 두 집단의 평균 차이를 비교 | 남녀 평균 키 비교 |
| ANOVA (분산 분석) | 3개 이상의 그룹 평균 차이 비교 | A/B/C 학습법의 성적 비교 |
| 상관 분석 | 두 변수 간의 관계 정도 분석 | 키와 몸무게의 상관 관계 |
| 회귀 분석 | 독립 변수(X) 가 종속 변수(Y) 에 미치는 영향 분석 | 광고비(X) 와 매출(Y) 관계 |
5️⃣ 데이터 분석을 위한 Python 기초
a = "20250308Sunny"
year = a[:4]
day = a[4:8]
weather = a[8:]
a = [1, 2, 3, ['a', 'b', 'c']]
print(a[0])
print(a[3][1])
name = "홍길동"
age = 25
print(f"나의 이름은 {name}이고, 나이는 {age}살 입니다.")