품질관리(QAQC) 데이터 부트캠프(본캠프)

본캠프_6주차(화)_TIL

Wat_zy 2025. 10. 21. 09:08

✅ 오늘 한 것

알고리즘 문제, 통계학 기초, 파이썬 실시간 세션(베이직, 챌린지), 기초통계 라이브 세션


✏️ 오늘 배운 점

알고리즘 문제

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