✅ 오늘 한 것
알고리즘 문제, 통계학 기초, 파이썬 실시간 세션(베이직, 챌린지), 기초통계 라이브 세션
✏️ 오늘 배운 점
알고리즘 문제
SELECT ANIMAL_ID,
NAME,
CASE WHEN SEX_UPON_INTAKE LIKE 'Neutered%' OR SEX_UPON_INTAKE LIKE 'Spayed%' THEN 'O' ELSE 'X' END '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC;
CASE WHEN문에서 LIKE '%'을 통해 해당 문자를 포함하고 있는지를 확인해주어 포함한다면 O, 아니면 X를 출력할 수 있도록 배치하는 코드 문제였다. 처음에 '%'를 포함하지 않아 정확히 문자와 일치할 때에만 O로 출력하여 코드 결과가 오답으로 나타났으며, 이후 수정을 통해 처리할 수 있었다.
빈 병 a개를 가져가면 콜라 b병을 주는 마트에서 빈 병 n개를 가지고 있을 때 마실 수 있는 콜라의 총 병 수를 구하는 문제.
def solution(a, b, n):
result = 0
while n >= a:
result += b * (n // a)
n = b * (n // a) + n % a
return result
- result = 0
→ 아직 받은 콜라가 없으니 0으로 시작. - while n >= a:
→ 교환 단위 a개 이상의 빈 병이 있을 동안 계속 교환합니다.
→ 더 이상 교환할 수 없을 때(= a 미만) 루프 종료. - result += b * (n // a)
- n // a는 이번 턴에 교환 가능한 횟수(몫)입니다.
- 한 번 교환할 때 b병을 받으니, 이번 턴에 받는 콜라는 b * (n // a)병.
- 이를 총합 result에 누적합니다.
- n = b * (n // a) + n % a
- 교환 후, 새로 생긴 빈 병 = 받은 콜라를 모두 마신 뒤 나온 빈 병 = b * (n // a)
- 교환에 쓰고 남은 빈 병 = n % a
- 다음 턴에 가지고 시작할 빈 병은 이 둘의 합. 그래서 n을 이렇게 갱신합니다.
- return result
→ 더 이상 교환 불가가 되면(빈 병이 a 미만) 누적값을 반환.
통계학 기초
통계를 활용한 데이터 분석은 필수적이다.
기술통계
데이터를 요약하고 설명하는 통계방법
평균, 중앙값, 분산, 표준편차 등 사용
추론통계
표본 데이터를 통해 모집단의 특성을 추정하고 가설을 검정하는 통계 방법
신뢰구간, 가설검정 등 사용
데이터의 일부를 가지고 데이터 전체를 추정하는 것이 핵심
신뢰구간: 모집단의 평균이 특정 범위 내에 있을 것이라는 확률(95% 신뢰구간, 99% 신뢰구간)
가설검정: 모집단에 대한 가설을 검증하기 위해 사용
귀무가설(H0): 검증하고자 하는 가설이 틀렸음을 나타내는 기본 가설(변화가 없다, 효과가 없다 등)
대립가설(H1): 그 반대 가설로 주장하는 바(변화가 있다, 효과가 있다 등)
p-value를 통해 귀무가설을 기각할지 여부 결정
p-value <= 0.05: 귀무가설 기각
p-value > 0.05: 귀무가설 채택
numpy를 활용할 수 있는 요소들
mean: 평균
median: 중앙값
var: 분산
std: 표준편차
max: 최대값
min: 최소값
corrcoef: 상관관계 정도 계산
상관관계는 두 변수 간의 관계를 나타냄.
인과관계는 한 변수가 다른 변수에 미치는 영향을 나타냄. 원인과 결과가 분명해야 함.
모집단: 관심의 대상이 되는 전체 집단
표본: 모집단에서 추출한 일부
전수조사: 모집단 전체를 조사하는 방법
표본조사: 표본만을 조사하는 방법
numpy.random
np.random.normal: 함수는 정규분포(가우시안 분포)를 따르는 난수를 생성
np.random.normal(loc(평균), scale(표준편차), size(개수))
np.random.choice: 주어진 배열에서 임의로 샘플링하여 요소를 선택
np.random.choice(a, size, replace, p)
a: 샘플링할 원본 배열, size: 출력 배열의 크기(기본값: None), replace: 복원 추출 여부(기본값: True)[True면 동일한 요소가 여러 번 선택될 수 있음.], p: 각 요소가 선택될 확률
표본오차: 표본에서 계산된 통계량과 모집단의 진짜 값 간의 차이
표본 크기가 클수록 표본오차는 작아짐
신뢰구간: 모집단의 특정 파라미터에 대해 추정된 값이 포함될 것으로 기대되는 범위
95% 신뢰수준의 z-값: 1.96
99% 신뢰수준의 z-값: 2.58
scipy.stats.t.interval(alpha, df, loc=0, scale=1)
alpha: 신뢰수준(0.95, 0.99)
df: 자유도(표본 크기 - 1)
loc: 위치(표본 평균 설정)
scale: 표본 표준 오차 = 표본 표준편차/표본 크기의 제곱근 ( scale = sample_std / sqrt(n) )
정규분포: 대부분의 데이터가 평균 주위에 몰려 있는 분포
평균에서 멀어질수록 데이터의 빈도 감소
대부분의 상황에서 관찰되는 분포
긴 꼬리 분포: 대부분의 데이터가 분포의 한쪽 끝에 몰려 있고, 반대쪽으로 긴 꼬리가 이어지는 형태의 분포
일부가 전체적으로 큰 영향을 미치는 경우에 사용
스튜던트 t 분포: 모집단의 표준편차를 알 수 없고 표본의 크기가 작은 경우(일반적으로 30 미만)
표본 크기가 커지면 정규분포에 가까워짐
데이터가 적은 경우에 사용
카이제곱분포: 범주형 데이터의 독립성 검정이나 적합도 검정에 사용되는 분포
자유도에 따라 모양이 달라짐
범주형 데이터 분석에 사용
상관관계나 인과관계를 판별하고자 하는 원인의 독립변수가 '완벽하게 서로 다른 질적 자료'일 때 활용
독립성 검정이나 적합도 검정이 필요할 때 사용
- 독립성 검정: 두 범주형 변수 간의 관계가 있는지 확인할 때 사용
- 적합도 검정: 관측한 값들이 특정 분포에 해당하는지? 검정할 때 사용
이항분포: 성공/실패와 같은 두 가지 결과를 가지는 실험을 여러 번 반복했을 때 성공 횟수의 분포(이산형 분포에 해당)
실험 횟수(n)와 성공 확률(p)로 정의
결과가 2개만 나오는 상황을 여러 번 하는 경우에 사용
푸아송분포: 희귀한 사건이 발생할 때 사용하는 분포(이산형 분포에 해당)
평균 발생률 λ가 충분히 크다면 정규분포에 근사
단위 시간 또는 단위 면적당 발생하는 사건의 수를 모델링할 때 사용하는 분포
분포 고르는 경우
데이터 수가 충분하다 -> 정규분포
데이터 수가 작다 -> 스튜던트 t 분포
일부 데이터가 전체적으로 큰 영향을 미친다 -> 긴 꼬리 분포
범주형 데이터의 독립성 검정이나 적합도 검정 -> 카이 제곱 분포
결과가 두 개(성공 or 실패)만 나오는 상황 -> 이항 분포
특정 시간, 공간에서 발생하는 사건 -> 푸아송 분포
기초통계
기술통계: 수집된 데이터를 요약•정리•시각화하여 특징을 파악하는 통계
대표값: 평균(Mean), 중앙값(Median), 최빈값(Mode)
산포도: 범위(Range), 분산(Variance), 표준편차(Standard Deviation)
분포 형태: 히스토그램, 막대그래프, 원그래프 등
추론통계: 표본 데이터를 바탕으로 모집단의 특성을 추정하거나 검정하는 통계
확률 개념
추정: 모평균, 모비율 추정, 신뢰구간
가설검정: "효과가 있는가?"를 통계적으로 판단
상관분석/회귀분석: 변수 간 관계 파악
데이터의 종류
| 수치형 (Quantitative) | 연속형 | Continuous | 값이 연속적인 수치로 이루어져 있으며, 구간 간격이 의미 있음. 예: 키, 몸무게, 온도 등. 소수점 단위까지 표현 가능. |
| → 사칙 연산이 가능 | 이산형 | Discrete | 값이 정수 단위로 구분되는 수치형 데이터. 셀 수 있는 개수(Count) 형태로 나타남. 예: 학생 수, 사고 건수 등. |
| 범주형 (Categorical) | 명목형 | Nominal | 이름(label)만으로 구분되는 데이터. 크기나 순서 개념이 없음. 예: 성별(남/여), 혈액형(A/B/O/AB), 지역명 등. |
| → 범주로 나눠진다. | 순서형 | Ordinal | 범주는 있으나 순서가 존재하는 데이터. 간격은 일정하지 않음. 예: 만족도(매우 좋음~매우 나쁨), 등수(1등·2등·3등) 등. |
| 개념 | 정의 | 특징 |
| 편차 (Deviation) | 개별 값이 평균에서 얼마나 떨어져 있는가 | 개별 값이 평균에서 얼마나 떨어져 있는지에 대한 지표 |
| 분산 (Variance) | 편차를 제곱하여 평균을 낸 값 | 데이터의 전체적인 퍼짐 정도 확인 |
| 표준편차 (Standard Deviation) | 분산의 제곱근 | 데이터의 실제 변동성 해석 |
| 변동 계수(Coefficient Variable,CV) | 표준편차를 평균으로 나눈 값 | 서로 다른 단위의 데이터 비교 |
✏️ 오늘의 핵심
SQL에서는 문자열 포함 조건(LIKE '%')을 활용하는 중요성을 다시 확인했고,
알고리즘에서는 단순 반복보다 “상태 변화의 흐름”을 코드로 구현하는 사고력을 익혔다.
통계학에서는 기술통계와 추론통계의 차이, 각 분포의 활용 조건,
그리고 표본 기반 추정의 의미를 수학적·프로그래밍적으로 모두 이해할 수 있었다.
오늘 학습을 통해 데이터 분석의 기반이 되는 논리적 사고력과 수리적 이해를 함께 강화할 수 있었다.
📌추가로 해야할 점
통계학 기초, 머신러닝의 이해와 라이브러리 활용 기초, SQLD
'품질관리(QAQC) 데이터 부트캠프(본캠프)' 카테고리의 다른 글
| 본캠프_6주차(목)_TIL (0) | 2025.10.23 |
|---|---|
| 본캠프_6주차(수)_TIL (0) | 2025.10.22 |
| 본캠프_6주차(월)_TIL (0) | 2025.10.20 |
| 본캠프_5주차(금)_TIL (0) | 2025.10.17 |
| 본캠프_5주차(목)_TIL (0) | 2025.10.16 |