Python으로 통계학 이해하기(2)

안장훈·2025년 1월 7일

python 공부

목록 보기
6/6

모집단을 모두 조사하면 정확한 값을 얻을 수 있지만 비용이 많이 소모 되기 때문에 이 경우 대표성이 있는 샘플로 표본집단을 추출하여 추론하게된다.

추론통계를 통해 표본으로 부터 모집단을 추정할때 분포라는 개념을 쓰게 된다.
분포는 데이터가 특정값을 중심으로 흩어진 형태를 나타내는데 데이터의 형태에 따라 다양하게 나타난다.

  • 균등 분포(Uniform Distribution): 모든 X에 대해 확률이 동일 한 분포(연속확률 분포중 하나)
    -python 구현 -> 함수명: uniform.rvs
    • rvs함수: Random Variated Sampling의 약자로 표본데이터를 사용하는 기능으로 사용( Numpy.random 모듈과 같은 존재)
from scipy.stats import uniform

# 균등 분포 생성 (예시: 0에서 1 사이)
uniform_dist = uniform.rvs(size=10, loc=0, scale=1)

# 결과 출력 (선택 사항)
uniform_dist
  • 베르누이 분포(Bernoulli): 확률 변수가 취할수 있는 겨웅가 두가지 인 경우 (ex.동전 던지기,클릭)
    - python 구현 -> 함수명: bernoulli.rvs
    유저가 웹 페이지에서 클릭할 확율이 0.5일때 10번 q방문했을때의 경우의 수
from scipy.stats import bernoulli

# p는 성공 확률 (0과 1 사이)
p = 0.5

# size는 생성할 샘플의 개수
size = 10

# 베르누이 분포 샘플 생성
samples = bernoulli.rvs(p, size=size)

samples

####
출력결과 : array([0, 0, 0, 0, 0, 1, 1, 0, 1, 1], dtype=int64)
####
  • 이항 분포(Binominal Distribution): 여러 유저가 입장하는 경우 경우의 수로 확장하여 표현

    - python 구현 -> 함수명: binom.pmf
    - pmf함수: Probability Density Function은 확률 밀도 함수로, 특정 값에서 확률을 계산할 때 사용
from scipy.stats import binom

# n: 시행 횟수 (3명)
# p: 성공 확률 (클릭 확률, 0.5로 가정)
# k: 성공 횟수 (클릭한 유저 2명 나올 경우)

n = 3
p = 0.5
k = 2

# 이항 분포 확률 계산
probability = binom.pmf(k, n, p)

probability	
  • 정규분포(Normal Distribution): 평균을 기준으로 좌우 대칭이며,종 모양으로 봉우리가 1개인 연속 확률 분포(평균과 표준 편차를 알고있으면 전체 데이터에서 % 알수 있음)
    - python 구현
    • 함수명: norm.cdf
      - cdf함수: Cumulative Distribution Function 누적분포함수로, 특정 K값 이하의 확률을 계산할때 사용
from scipy.stats import norm

# 1380점에 대한 백분율 계산
percentile = norm.cdf(1380, loc=1150, scale=150) * 100

print(f"SAT 점수 1380점의 백분율은 약 {percentile:.2f}% 입니다.")

점수가 주어졌을때 백분율을 구할수도 있지만 백분율이 주어졌을때 점수를 구할수도 있다.
- ppf함수: percent point function cdf의 역함수로 백분율을 알때 거꾸로 x값 구할때 사용
- pdf함수: Probability density function(확률밀도함수) 특정위치의 확률을 구할수 있다.

import scipy.stats as stats
stats.norm.ppf(0.937,  loc = 1150, scale= 150)
import scipy.stats as stats
stats.norm.pdf(x = 1380, loc = 1150, scale = 150)
  • 왜도와 첨도
    - 왜도(skewness): 확률의 비대칭 정도를 나타내는 측도로 결제 금액이나 월급 같은 수치가 right skewness특성을 띈다.( 긴꼬리 분포라고도 함)

    - 첨도(kurtosis): 종모양의 뾰족한 정도를 나타내는 측도로 첨도가 정규분포보다 높으면 이상치가 많고 낮으면 이상치가 적다.

  • 표준정규분포: 평균 = 0, 분산 = 1 인 정규분포로 모든 데이터에 대해 정규화를 수행한것인데 모든 Z값에 대해 계산해놓은 표준정규분포표가 존재한다.

0개의 댓글