대수의 법칙 때문에 시도했다.
대수의 법칙이란?
서로 독립적인 확률 변수 $X_1,X_2,...,X_n$가 모평균 $\mu$일 때 표본 평균 $\frac{X_1+X_2+...+X_n}{n}$는 n이 크다. 과연 모 평균에 가까워지는 것.
\lim_{n \to \infty}\frac{X_1+X_2+...+X_n}{n} \rightarrow \mu
이 수식은 수학적으로 엄격하지 않을 수도 있지만 이미지는 이것으로 괜찮다고 생각합니다. 직감적으로는 이해할 수 있습니다만, 실세계에서 대량으로 시행한다(n을 늘린다)라고 하는 것도 좀처럼 근기가 있어요? 그렇다면 주사위를 예로 들어 "대수의 법칙"이 사실인지 시뮬레이션 해 나갑니다.
주사위 시뮬레이션
1~6까지가 같은 확률($\frac{1}{6}$)로 나오는 주사위로, 주사위를 흔드는 횟수를 1~10000회까지 늘려 가고, 시행 횟수가 표본 평균에 미치는 영향을 그래프로 확인 할 수 있도록 합니다.
시뮬레이션 코드
import matplotlib.pyplot as plt
%matplotlib inline
import random
from collections import Counter
# 試行回数リスト
numTrials = list(range(1,10001))
meanlist = []
for numTrial in numTrials:
resultData = [ random.randrange(1,7) for _ in range(numTrial)]
countResult = Counter(resultData)
sumCountResult = 0
for num in (countResult.keys()):
sumCountResult += num * countResult[num]
mean = sumCountResult / numTrial
meanlist.append(mean)
plt.plot(numTrials,meanlist)
plt.xlabel("Trials")
plt.ylabel("mean")
plt.axhline(3.5, ls="--", color="magenta")
plt.savefig("verification_lawOfLargeNumber.png")
plt.show()
시뮬레이션 결과
다음은 시뮬레이션 결과입니다. 가로축은 주사위를 흔든 횟수, 세로축은 주사위를 n회 흔들었을 때 나온 눈의 평균값입니다.
분홍색 점선이 평균 3.5의 라인에서 횟수를 겹칠 때마다 수렴하고 있음을 알 수 있습니다. 「대수의 법칙」은 역시 맞을 것 같네요. 뭐 당연한가・・・(웃음)
그리고, 이번 주사위의 출목을 난수를 사용해 시뮬레이션을 하고 있습니다만, 시트를 고정하고 있지 않으므로, 같은 프로그램을 실행해도, 같은 그래프를 쓸 수 없기 때문에, 양해 바랍니다. 그러나 평균값이 3.5로 수렴한다는 점은 여러 번 실행해도 변하지 않습니다.
마지막으로
이번은 단지 확인이었기 때문에, 특히 재미있는 이야기는 아니었군요. 더 재미있는 이야기를 할 수 있도록 공부 노력하겠습니다.
Reference
이 문제에 관하여(대수의 법칙 때문에 시도했다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Tusnori/items/df327b07a14b361041d2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
\lim_{n \to \infty}\frac{X_1+X_2+...+X_n}{n} \rightarrow \mu
1~6까지가 같은 확률($\frac{1}{6}$)로 나오는 주사위로, 주사위를 흔드는 횟수를 1~10000회까지 늘려 가고, 시행 횟수가 표본 평균에 미치는 영향을 그래프로 확인 할 수 있도록 합니다.
시뮬레이션 코드
import matplotlib.pyplot as plt
%matplotlib inline
import random
from collections import Counter
# 試行回数リスト
numTrials = list(range(1,10001))
meanlist = []
for numTrial in numTrials:
resultData = [ random.randrange(1,7) for _ in range(numTrial)]
countResult = Counter(resultData)
sumCountResult = 0
for num in (countResult.keys()):
sumCountResult += num * countResult[num]
mean = sumCountResult / numTrial
meanlist.append(mean)
plt.plot(numTrials,meanlist)
plt.xlabel("Trials")
plt.ylabel("mean")
plt.axhline(3.5, ls="--", color="magenta")
plt.savefig("verification_lawOfLargeNumber.png")
plt.show()
시뮬레이션 결과
다음은 시뮬레이션 결과입니다. 가로축은 주사위를 흔든 횟수, 세로축은 주사위를 n회 흔들었을 때 나온 눈의 평균값입니다.
분홍색 점선이 평균 3.5의 라인에서 횟수를 겹칠 때마다 수렴하고 있음을 알 수 있습니다. 「대수의 법칙」은 역시 맞을 것 같네요. 뭐 당연한가・・・(웃음)
그리고, 이번 주사위의 출목을 난수를 사용해 시뮬레이션을 하고 있습니다만, 시트를 고정하고 있지 않으므로, 같은 프로그램을 실행해도, 같은 그래프를 쓸 수 없기 때문에, 양해 바랍니다. 그러나 평균값이 3.5로 수렴한다는 점은 여러 번 실행해도 변하지 않습니다.
마지막으로
이번은 단지 확인이었기 때문에, 특히 재미있는 이야기는 아니었군요. 더 재미있는 이야기를 할 수 있도록 공부 노력하겠습니다.
Reference
이 문제에 관하여(대수의 법칙 때문에 시도했다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Tusnori/items/df327b07a14b361041d2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(대수의 법칙 때문에 시도했다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Tusnori/items/df327b07a14b361041d2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)