확률변수를 이해하려면 필요한 것은?
통계분석을 위한 기초 수학
Python 라이브러리를 활용한 데이터 분석
이산형과 연속형
이산형은 셀 수 있는 데이터고 연속형은 값들 사이에서 무수히 많은 값들이 존재할 수 있기에 셀 수 없는 데이터이다.
확률변수
변수가 취할 수 있는 값과 그 값이 나오는 확률에 의해서 정의된다.
이산형 확률변수와 연속형 확률변수
이산형 확률변수는 확률변수로 취할 수 있는 값들이 셀 수 있는 데이터이고, 연속형 확률변수는 확률변수로 취할 수 있는 값들이 셀 수 없는 데이터를 말한다.
확률질량함수(Probability Mass Function)
확률변수 X가 취할 수 있는 값에 대한 집합을 {x1,x2,....}으로 가정을 한다면, 그때 확률변수 X가 xk라는 값을 취할 확률을 P(X=xk) = pk (k=1,2,...)로 정의된다.
확률은 변수가 취할 수 있는 값 x를 인수로 하는 함수로 f(x) = P(X=x)라고 표현이 가능하고 이를 확률질량함수 혹은 확률함수로 정의된다.
확률은 2가지 식을 만족해야 한다.
확률이 절대적으로 0이상이어야 한다. f(xk) >= 0
모든 확률을 더하면 1이 되어야 한다. sum of f(xk) = 1
확률이 모두 0이상인지 모든 요소가 참일 때만 참을 반환하는 np.all 함수로 확인이 가능하다.
확률함수는 P(X=x)로 표현이 되지만, 누적분포함수는 P(X<=x)로 표현된다.
정의: 확률변수 X가 x이하가 될 때의 확률을 반환하는 함수이다.
특징
확률함수는 소문자인 f(x)로 표현이 되고, 누적분포함수는 대문자인 F(x)로 표현이 된다.
F(x) = P(X<=x) = sum of f(xk) (xk<=x이다.)
확률변수의 X에 2를 곱하고 3을 더한 2X+3과 같은 연산하기
2X +3이 변환이 되어도 확률변수의 X가 취할 수 있는 값만 변환일 뿐 확률값은 그대로 유지
[Python] 2X+3으로 변환된 확률변수 Y 계산
## 코드로 보는 확률질량함수
#Python 확률질량함수로 표현
x_set = np.array([1,2,3,4,5,6])
def f(x):
if x in x_set:
return x/21
else:
return 0
import sys
print(sys.version)
3.7.13 (default, Apr 24 2022, 01:04:09)
[GCC 7.5.0]
X = [x_set, f]
#확률 p_k = p(x_k) 계산
prob = np.array([f(x_k) for x_k in x_set])
#x_k와 p_k의 대응을 사전식으로 표시
dic_k = dict(zip(x_set, prob))
dic_k
{1: 0.048, 2: 0.095, 3: 0.143, 4: 0.190, 5: 0.238, 6: 0.286}
#확률 정의
np.all(prob >=0)
True
np.sum(prob)
1.000
#CDF
def F(x):
return np.sum([f(x_k) for x_k in x_set if x_k <=x])
F(3)
0.286
#확률변수의 변환
y_set = np.array([2*x_k +3 for x_k in x_set])
prob = np.array([f(x_k) for x_k in x_set])
dict(zip(y_set, prob))
{5: 0.048, 7: 0.095, 9: 0.143, 11: 0.190, 13: 0.238, 15: 0.286}