큰일이다. 정말 모르겠다.
통계... 일단 개념의 체계부터 다시 바로 잡고 필수로 알아야 하는 핵심 위주로만 철저하게 익히자! 할 수 있다!!!
요약/나만의 인사이트
- 베이즈 정리는 관측된 결과를 보고 원인을 추정하는 것이다. 즉 P(A), P(B), P(B|A)가 있을 때 P(A|B)를 구하는 것이다.
- P(A|B)는 B가 일어났을 때 A가 일어날 확률을 말한다. 사후확률이라고도 한다.
- 기술통계가 데이터를 해석하고 요약하는 통계기법이였다면 추론 통계는 표본집단을 통해 모집단을 추정하거나 어떤 주장이 맞는지 검정하는 통계이다.
- 신뢰구간 95%는 100번 중 95번 참값 포함
새롭게 알게 된 것
- 통계와 머신러닝
- 통계 : 해석에 초점
- x, y의 차이
- 머신러닝 : 예측에 초점
- 잘 예측하면 good
- 통계 : 해석에 초점
- 통계와 머신러닝의 원리는 같음.
- 베이즈 정리 복습 (사후확률 구하기)
- 정의
- 조건부 확률을 사용해서 반대의 경우의 확률을 구하는 로직
- 관측된 결과(이메일 오픈)를 보고 원인(구매)를 추정하는 것
- 개념
- 사전확률 (P(A)) : 아무런 정보가 없을 때, 사건이 발생할 확률
- 일반적으로 고객의 구매 확률이 10%라면, 구매에 대한 사전확률은 0.01
- 우도(P(B|A)) : 특정한 가정하에 실제로 관측한 데이터가 나올 가능성
- 구매자라면 이메일을 열 확률은 80%
- 사후확률(P(A|B)): 관측한 정보를 반영해서 우리가 알고 싶은 사건의 확률
- 고객이 이메일을 열었을 때, 그게 실제 구매자일 확률은 얼마나 될까?
- 사전확률 (P(A)) : 아무런 정보가 없을 때, 사건이 발생할 확률
- 수식
- P(A) : A가 일어날 사전확률
- P(B) : B가 일어날 전체확률
- P(B | A) : A가 일어났을 때 B가 일어날 확률 (likehood)
- P(A | B) : B가 일어났을 때 A가 일어났을 확률 (사후 확률)
- 정의

- 참고 P(B)를 구하기 위한 전체 확률의 법칙
- 어떤 사건이 여러 하위 그룹(구매/비구매)에 의해 나눠질 때, 그 사건의 전체 확률은 각 그룹에서 그 사건이 일어날 확률 X 그 그룹에 속할 확률을 모두 더한 값이 된다.

- 구하려고 하는 값: 이메일을 오픈하는 사건이 일어날 확률
- 분류
- 구매한 사람 - 오픈할 확률
- 구매하지 않은 사람 - 오픈할 확률
- 전체 고객의 30%는 구매자, 70%는 비구매자라고 하면 구매자는 80% 확률로 열고, 비구매자는 20%확률로 열었다. 그럼 이메일을 오픈할 전체 확률은 0. 3 * 0.8 + 0.7 * 0.2 이다.
- 즉 0.3의 구매자는 0.8확률로 열었고 0.7의 비구매자는 0.2열었을 때 이를 각각 곱한 값을 더하면 전체 확률이 된다.
- 모수 추정하기(이부분이 잘 이해되지 않음)
- 모집단의 특성(=모수)
- 모집단의 평균(μ[뮤]), 모집단의 표준편차(σ[시그마]), 표본의 평균 (𝑥̅)
- 표본오차 : 표본평균과(𝑥̅) - 모집단평균(μ) 즉 표본평균과 실제 모집단평균의 차이
- 표본의 크기가 커지수록 표본평균은 모집단 평균에 가까워지고, 표본오차는 작아지는 경향을 갖는다.
- 모집단이 어떤 분포를 가지고 있든 간에, 표본의 크기 n이 충분히 크다면 표본평균의 분포는 정규분포로 수렴한다.
- 따라서 표본오차도 결국 정규분포의 성질을 따라간다. = 중심극한 정리
- 표본을 통해 모집단의 평균 μ를 추정할 순 있으나, 단 하나의 값만으로 오차가 얼마나 클지 알 수 없고, 실제 모수와 정확히 일치할 가능성이 낮음. 따라서 모수가 이정도 범위 안에 있을 것이라고 추정하는 구간이 필요
- 표본오차와 표준오차
| 표준오차 (Standard Erro) |
표본오차 (Sampling Erro) |
|
| 대상 | 여러번 표본 뽑았을 때의 통계량 변동성 | 한번 뽑은 표본과 모집단 간의 차이 |
| 용도 | 신뢰구간 계산 가설검정 |
도시 사람들의 평균 키 170인데 표본조사로 평균이 168이면 2cm가 표본 오차 |
| 의미 | 오차의 흩어짐 정도 | 실제로 발생한 오차 |
- 중심극한정리
- 모집단이 어떤 분포를 가지고 있든 간에, 표본의 크기 n이 충분히 크다면 표본평균의 분포는 정규본포를 수렴한다.
- z-분포 기반 신뢰구간
- z-분포는 평균이 0, 표준편차가 1인 정규분포
- 모집단의 표준편차 σ를 알고 있을 때, 표본평균이 얼마나 떨어져 있는지 (상대적인 위치) z값으로 계산가능
- 가설검정의 활용
- T검정
- 1개 또는 2개의 집단 간 평균 차이를 비교하는 검정
- 표본이 정규분포를 따르는 모집단에서 나왔다고 가정 (정규성)
- 두 집단에 분산이 동일하다고 가정 (등분산성)
- 단일 표본 검정
- 학생들의 평균 수면시간이 7시간과 다른가?
- 이표본 T검정(=독립표본검정)
- 남학생과 여학생의 평균 키가 다른가?
- 대응표본T검정
- 약 복용 전후를 비교 (같은사람)
- 비모수 검정
- 표본이 30보다 작을 때
- 이상치 또는 극단값이 존재할 때
- 자료가 순서형이고 간격이 일정하지 않을 때 (EX 만족도 점수)
- 아노바분석
- 3개 이상의 집단의 평균 차이를 비교 (T검정의 확장 형태)
- 검정이 반복될 수록 1종오류가 커기지 때문에 3개 집단을 한꺼번에 검정할 수 있는 아노바분석을 한다.
- 집단 간 평균의 다름을 알 수 있지만 구체적으로 어떤 집단끼리 다른지는 알 수 없으므로 사후검정이 필요하다.
- 사후검정
- 아노바 집단들 사이에 평균 차이가 존재한다고 했을 때 구체적으로 어떤 집단끼리 차이가 있는지 확인하기 위한 검정
- A VS B B VS C C VS A
- 이산형변수
- 예: 고객 수, 방문 횟수, 사고 건수 (연속형 변수는 2.XXXX 소숫점 등으로 쭉 이어지는 값)
- 이항 분호
- 성공 / 실패 두가지 결과만 있고, 성공 확률은 일정함.
- 포아송 분포
- 한시간 동안 들어오는 전화 수
- 범주형변수
- 범주형 변수
- 명목형 변수:성별, 지역, 혈액형
- 순서형 변수: 만족도(상/중/하), 학점(A,B,C)
- 검정
- 이항검정
- 하나의 이진 범주형 변수에서 특정 비율이 기준과 다른지 검정할 때 사용
- Z검정
- 남성과 여성의 뉴스레터 오픈률이 다른가?
- 카이제곱 적합도 검정
- 고객이 A/B/C 브랜드를 고른 비율이 1:1:1일까?
- 카이제곱 독립성 검정
- 성별과 구매여부와 관련이 있을까? (독립인가, 관계가 있는가?)
- 이항검정
- 범주형 변수
- 실습
- 박스플롯에 이상치가 많다 → 이상치가 아닐 수 있다. 어떻게 처리하면 좋을지 생각해야 한다.
- 평균을 알고 있다면 전체중에 하나는 고정이 된다. N-1의 자유도
- T검정
- 내가 가지고 있는 데이터와 분석 목적에 따라 적절한 가설 검정 방법이 다르다.
특히 어려웠던 것
- 파이썬 알고리즘 최대공약수, 최소공배수
- 일단 최대공약수, 최소공배수 복습해보자.
- 최대공약수 : 두 수의 공통된 약수 중 가장 큰 수
- 최소공배수 : 두 수의 공통된 배수 중 가장 작은 수
- 예시
큰 수인 12부터 곱한 36까지의 숫자 순회 (배수니까 12보다 클 테니) - </aside>
- 3의 약수 : 1, 3 12의 약수 : 1, 2, 3, 4, 6, 12 최대공약수 : 3 작은 수인 3부터 1까지 -1씩 하며 순회 (약수니까 3보다 더 작을테니)
- 문제
- 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
- 풀이
def solution(n, m): answer = [] #리턴할 빈리스트 만들어놓기 #최대공약수 구하기 for i in range(min(n, m), 0, -1): #둘중 작은 값에서 -1씩 1까지 순회 if n % i == 0 and m % i == 0: answer.append(i) break #가장 큰 값을 출력하면 그만하기 #최소공배수 구하기 for i in range(max(n, m), n*m+1): #둘 중 큰 값에서 n*m까지 순회, n*m은 항상 n과 m의 배수이고, 공배수중 가장 큰 수라 할 수 있으니 if i % n == 0 and i % m == 0: answer.append(i) break #가장 작은 값 출력하면 그만하기 return answer solution(2, 5) - 일단 최대공약수, 최소공배수 복습해보자.
- sql 카티전 곱 (행*행)
- 문제
- id이전 날짜(어제)보다 기온이 더 높은 모든 날짜를 찾는 솔루션을 작성하세요 .결과 표를 원하는 순서 대로 반환합니다 .결과 형식은 다음 예와 같습니다.
- 풀이
#오늘온도 t, 전날온도 y #오늘온도 t - 전날온도 y 인 경우만 SELECT t.id FROM Weather t, Weather y WHERE datediff(t.recordDate, y.recordDate) = 1 AND t.temperature > y.temperature; # FROM Weather t, Weather y : 모든 행을 서로 짝지워서 보여줌. 3행이 있다면 3*3해서 총 9행이 됨. 이것을 카티전 곱이라고 함. # 그다음에 오늘, 어제 데이터로 짝지어진 행만 필터링 # 그리고 그 행에서 오늘 온도가 높은 것만 추가 필터링 하면 끝- 핵심 개념
- 카티전곱: 두 테이블의 가능한 모든 조합의 데이터가 조회됨. 가령 A테이블 2행, B테이블 3행이라면 2*3행의 데이터가 조회됨. FROM A, B
- 문제
'기타 > 통계, 머신러닝' 카테고리의 다른 글
| 250702_머신러닝(머신러닝이란, 머신러닝을 위한 전처리과정) (1) | 2025.07.02 |
|---|---|
| 250701_기초 통계학(선형회귀, 다중선형회귀), 파이썬(클래스) (1) | 2025.07.01 |
| 250627_기초 통계학(다양한 상관계수, 가설검정 시 주의점), 파이썬(map, split, strip 내장함수) (0) | 2025.06.28 |
| 250626_기초 통계학(유의성 검정, 회귀) (4) | 2025.06.26 |
| 250625_기초 통계학(다양한 분포들) (2) | 2025.06.25 |