✏️ 데이터 사이언스 스쿨에서 공부한 내용입니다.
표본평균, 표본분산 등은 현실세계의 데이터 분포의 모양을 서술하는 특성값이다. 이제부터는 이론적인 확률분포함수의 모양을 서술하는 특성값을 살펴본다. 우선 기댓값부터 공부한다. 기댓값은 표본평균처럼 분포의 위치를 알려주는 특성값이지만 확률분포의 가중합이나 가중적분으로 정의한다.
확률변수의 확률밀도함수를 알면 확률변수의 이론적 평균값을 구할 수 있다. 이러한 이론적 평균을 확률변수의 기댓값(expectation) 이라고 한다. 단순히 평균(mean)이라고 말하기도 한다. 확률변수 의 기댓값을 구하는 연산자(operator)는 영어 Expectation의 첫 글자를 사용하여 로 표기한다. 기댓값은 그리스 문자 로 표기한다.
이산확률변수의 기댓값은 표본공간의 원소 의 가중평균이다. 이때 가중치는 가 나올 수 있는 확률 즉 확률질량함수 이다.
연속확률변수의 기댓값은 확률밀도함수 를 가중치로 하여 모든 가능한 표본 를 적분한 값이다.
기댓값은 여러 가능한 값을 확률(또는 확률밀도)값에 따라 가중합을 한 것이므로 가장 확률(또는 확률밀도)이 높은 값 근처의 값이 된다. 즉, 확률(또는 확률밀도)가 모여 있는 곳의 위치를 나타낸다.
공정한 주사위에서 나올 수 있는 숫자를 대표하는 확률변수 는 나올 수 있는 값이 1, 2, 3, 4, 5, 6 이므로,
공정하지 않은 주사위, 예들 들어 짝수가 나올 확률이 홀수가 나올 확률의 2배인 주사위에서 기댓값을 구하면 다음과 같다.
공정한 동전이 있고 이 동전의 앞면이 나오면 1, 뒷면이 나오면 0인 확률변수 가 있다. 이 확률변수의 기댓값 을 구하라.
✏️ 0.5
기댓값을 구하는 공식에서는 확률을 가중치로 곱한다. 그런데 왜 표본평균을 구하는 공식에서는 확률 가중치가 없는가?
✏️ 샘플링 될 확률은 모두 동등하다고 보고, sample을 모두 더해 총 개수로 나눈다.
회전하는 원반을 이용하여 복권 번호를 결정하는 문제에서 확률밀도함수 와 여기에서 가 곱해진 함수 의 모양은 다음과 같다. 기댓값은 이 함수 를 적분하여 구한 삼각형처럼 생긴 함수의 면적이다.
x = np.linspace(-100, 500, 1000)
p = np.zeros_like(x)
p[(0 < x) & (x <= 360)] = 1 / 360
xp = x * p
plt.subplot(121)
plt.plot(x, p)
plt.xticks([0, 180, 360])
plt.title("$p(x)$")
plt.xlabel("$x$ (도)")
plt.subplot(122)
plt.plot(x, xp)
plt.xticks([0, 180, 360])
plt.title("$xp(x)$")
plt.xlabel("$x$ (도)")
plt.show()
만약 0도에서 180도 사이에 화살이 2배 더 잘 박히도록 원반이 조작되었다면 확률밀도함수 와 여기에서 가 곱해진 함수 모양은 다음과 같다. 기댓값은 이 함수 를 적분하여 구한 함수의 면적이다.
x = np.linspace(-100, 500, 1000)
p = np.zeros_like(x)
p[(0 < x) & (x <= 180)] = 2 / (3 * 360)
p[(180 < x) & (x <= 360)] = 1 / (3 * 360)
xp = x * p
plt.subplot(121)
plt.plot(x, p)
plt.xticks([0, 180, 360])
plt.title("$p(x)$")
plt.xlabel("$x$ (도)")
plt.subplot(122)
plt.plot(x, xp)
plt.xticks([0, 180, 360])
plt.title("$xp(x)$")
plt.xlabel("$x$ (도)")\
plt.show()
확률변수 는 0도에서 180도 사이에 화살이 2배 더 잘 박히도록 조작된 원반을 이용하여 복권 번호를 결정하는 문제에서 나오는 각도다. 확률변수 의 기댓값 를 구하라.
✏️
직관적으로, 상판의 평균 90도와 하판의 평균 270도가 2:1 비율로 나올 것이다.
따라서 기댓값은 (90+90+270)/3 = 150도
적분을 사용해 정의대로 풀자면, 상수함수 에 대해
이고
이므로 p2 = 1/540, p1 = 1/270
따라서 기댓값은
계산기로 검증:
직관적으로 계산한 값과 같다.
기존의 확률변수를 사용하여 새로운 확률변수를 만드는 것을 확률변수의 변환(transform) 이라고 한다. 함수 를 사용해 확률변수를 변환할 때는 다음처럼 표기한다.
확률변수 는 주사위를 던져 나오는 수를 나타내는 확률변수다. 그리고 는 주사위를 던져나오는 수에 2배를 한 수를 나타내는 확률변수다. , 의 확률질량함수의 그래프를 각각 그려라.
✏️
import matplotlib.pyplot as plt
import numpy as np
# 주사위 던져 나오는 수 X의 확률 질량 함수
x_values = np.arange(1, 7)
x_probabilities = np.full(6, 1/6)
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.stem(x_values, x_probabilities)
plt.title("Probability Mass Function of X")
plt.xlabel("X")
plt.ylabel("P(X)")
plt.xticks(x_values)
# 주사위 던져 나오는 수의 2배 Y의 확률 질량 함수
y_values = 2 * x_values
y_probabilities = np.full(6, 1/6)
plt.subplot(1, 2, 2)
plt.stem(y_values, y_probabilities)
plt.title("Probability Mass Function of Y")
plt.xlabel("Y")
plt.ylabel("P(Y)")
plt.xticks(y_values)
plt.tight_layout()
plt.show()
확률변수 과 는 각각 주사위를 던져 나오는 수를 나타내는 확률변수다. 그리고 는 두 주사위를 동시에 던져 나오는 수의 합을 나타내는 확률변수다. 확률변수 , , 의 확률질량함수의 그래프를 각각 그려라.
✏️
X1, X2의 확률질량함수는 연습문제 7.2.4에서 구한 X의 확률질량함수와 같으므로 생략한다.
Y는 2부터 12까지 값을 가질 수 있으며, 순서대로 각 확률의 분모는 36이고 분자는 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1 이다.
import matplotlib.pyplot as plt
import numpy as np
# 확률변수 Y (두 주사위의 합)의 확률 질량 함수
y_values = np.arange(2, 13) # 가능한 합의 범위
y_probabilities = np.zeros_like(y_values, dtype=float)
for i in range(1, 7):
for j in range(1, 7):
y_sum = i + j
y_probabilities[y_sum - 2] += 1 # 해당 합의 빈도를 증가
y_probabilities /= 36 # 전체 경우의 수로 나누어 확률 계산
plt.stem(y_values, y_probabilities)
plt.title("Probability Mass Function of Y (Sum of Two Dice)")
plt.xlabel("Y (Sum)")
plt.ylabel("P(Y)")
plt.xticks(y_values)
plt.show()
확률변수 로부터 데이터 집합 을 얻었다고 하자. 이 데이터 집합의 모든 값을 정해진 어떤 공식에 넣어서 하나의 숫자를 구한 것을 통계량(statistics) 이라고 한다. 예를 들어 표본의 합, 표본평균, 표본중앙값, 표본분산 등은 모두 통계량이다. 통계량도 확률변수의 변환에 포함된다.
확률변수로부터 개의 표본을 만들어 이 표본집합의 표본평균을 구하면 이렇게 구한 표본평균 값도 확률변수가 된다. 표본평균 확률변수는 원래의 확률변수 이름에 윗줄(bar)을 추가하여 와 같이 표기한다. 예를 들어 확률변수 에서 나온 표본으로 만들어진 표본평균 확률변수는 로 표기한다.
표본평균 의 값은 확률적인 데이터이고 이를 생성하는 확률변수 는 위와 같이 정의할 수 있었다. 그렇다면 (편향)표본분산 의 값은 확률적인 데이터인가? 만약 그렇다면 이를 생성하는 확률변수 은 어떻게 정의해야 하는가?
✏️ 확률변수 에서 개의 표본 을 뽑아 표본평균이라는 새로운 확률변수 를 정의했고, 이를 이용해 편차 제곱의 평균을 계산하면 표본분산이라는 새로운 확률변수 를 정의할 수 있다. 이 값은 표본이 어떻게 선택되느냐에 따라 달라지기 때문에 확률적인 데이터이다.
표본평균의 평균은 확률변수의 기댓값과 같으므로 표본평균은 확률변수의 기댓값 근처의 값이 된다.
확률변수의 중앙값(median)은 중앙값보다 큰 값이 나올 확률과 작은 값이 나올 확률이 0.5로 같은 값을 뜻한다. 따라서 다음과 같이 누적확률분포 에서 중앙값을 계산할 수 있다.
이산확률분포에서는 가장 확률 값이 큰 수를 최빈값(most frequent value) 이라고 한다. 하지만 연속확률분포인 경우에는 어느 값에 대해서나 특정한 값이 나올 확률은 0(zero)이므로 연속확률분포의 최빈값(mode)은 확률밀도함수 의 값이 가장 큰 확률변수의 값으로 정의한다. 즉 확률밀도함수의 최댓값의 위치다.