다음 함수들을 다룹니다:
- 팩토리얼 계산
- 조합 수 계산 C(n, x)
- 이항 확률 분포
- 포아송 분포
기존에 사용되었던 함수들은 다음과 같습니다:
create_rand_list() # 지정된 개수의 요소를 가진 리스트 생성 sum_fun() # 합계 계산 len_fun() # 요소 개수 세기 multiply_fun() # 곱셈 누적 sum_mean_fun() # 산술 평균 계산 sum_mean_rate() # 산술 평균 기반 수익률 계산 median_fun() # 중앙값 계산 modes_fun() # 최빈값 계산 ext_minus_fun() # 범위 계산 geom_mean_fun() # 기하 평균 계산 geom_mean_rate() # 기하 평균 기반 수익률 계산
var_fun() # 표본 분산 S^2 계산 covar_fun() # 표본 공분산(표준 편차) S 계산 trans_coef_fun() # 변동 계수 CV 계산 pearson_fun() # 표본 상관계수 r 계산
unite_rate_fun # 결합 확률 condition_rate_fun # 조건부 확률 e_x # 랜덤 변수의 기대값 var_rand_fun # 랜덤 변수의 분산 covar_rand_fun # 랜덤 변수의 공분산 covar_rand_xy_fun # 결합 공분산 e_p # 포트폴리오 기대 수익률 var_p_fun # 포트폴리오 위험도 bayes # 베이지안 정리
이전 내용은 여기까지입니다.
이제 새로운 내용으로 넘어갑니다:
이항 분포와 포아송 분포는 예측 모델링에 유용한 확률 분포입니다. 이번에는 각 함수를 설명하며 코드 예제를 제공합니다.
- 팩토리얼 n! 팩토리얼은 n부터 1까지의 모든 정수의 곱을 의미합니다. 예를 들어, 5! = 5 * 4 * 3 * 2 * 1 = 120입니다. 그러나 효율적인 구현을 위해 역순으로 계산하는 것이 좋습니다.
def factorial(n):
if n == 0:
return 1
result = 1
for i in range(1, n + 1):
result *= i
return result
- 조합 수 C(n, x) 계산 C(n, x) = n! / (x! * (n - x)!) 이는 n개의 항목 중에서 x개를 선택할 때 가능한 모든 조합의 수를 나타냅니다.
def combination(n, x):
fact_n = factorial(n)
fact_x = factorial(x)
fact_n_x = factorial(n - x)
comb = fact_n / (fact_x * fact_n_x)
return comb
- 이항 확률 분포 n번의 베르누이 시험이 수행될 때, 성공 확률 p인 사건이 k번 발생할 확률을 계산합니다. P(X=k) = C(n, k) * p^k * (1-p)^(n-k)
def binomial_distribution(n, k, p):
comb = combination(n, k)
probability = comb * (p ** k) * ((1 - p) ** (n - k))
return probability
- 포아송 분포 특정 시간이나 공간 내에서 특정 이벤트가 발생할 확률을 계산합니다. 예를 들어, 한 시간 동안 평균적으로 10명의 고객이 방문하는 상점에서 13명의 고객이 방문할 확률을 계산할 수 있습니다. P(X=x) = (e^-λ * λ^x) / x!
import math
def poisson_distribution(x, avg_value):
fact_x = factorial(x)
e = math.e
probability = (e ** (-avg_value)) * (avg_value ** x) / fact_x
return probability