태그 보관물: normal-approximation

normal-approximation

코인 플립의 샘플 크기를 늘리면 왜 정규 곡선 근사가 향상되지 않습니까? 예를 재현하려고합니다. 먼저, 토스 수 (샘플 크기)를

나는 통계 (Freeman, Pisani, Purves) 책을 읽고 동전을 50 번 던지고, 머리 수를 세고 이것을 1,000 번 반복하는 예를 재현하려고합니다.

  1. 먼저, 토스 수 (샘플 크기)를 1000으로 유지하고 반복 횟수를 늘 렸습니다. 반복이 많을수록 데이터가 정규 곡선에 더 잘 맞습니다.

  2. 다음으로 반복 횟수를 1,000으로 고정하고 샘플 크기를 늘 렸습니다. 표본 크기가 클수록 법선 곡선이 데이터에 적합하지 않은 것 같습니다. 이것은 샘플 크기가 증가함에 따라 법선 곡선에 더 근접한 책 예제와 모순되는 것 같습니다.

  3. 샘플 크기를 늘리면 10,000으로 고정 된 반복 횟수가 더 많아지면 어떻게 될지 알고 싶었습니다. 이것은 또한 책과 모순되는 것 같습니다.

내가 잘못하고있는 아이디어가 있습니까?

아래 코드와 그래프.

%matplotlib inline

def plot_hist(num_repetitions, num_tosses):
    tosses = np.random.randint(0, 2, size=[num_repetitions, num_tosses])
    sums = np.apply_along_axis(lambda a: np.sum(a == 1), 1, tosses)

    xmin, xmax = min(sums), max(sums)
    lnspc = np.linspace(xmin, xmax, len(sums))

    m, s = stats.norm.fit(sums) # get mean and standard deviation  
    pdf_g = stats.norm.pdf(lnspc, m, s) # now get theoretical values in our interval  

    bins = np.arange(xmin, xmax) - 0.5
    step = int((xmax - xmin)/5)

    fig, ax = plt.subplots()
    _ = ax.hist(sums, bins, edgecolor='black', linewidth=1.2, density=True)
    _ = ax.plot(lnspc, pdf_g, label="Norm", color='red')
    _ = ax.set_xticks(bins[::step] + 0.5)
    _ = ax.set_title('{:,} tosses - {:,} repetitions'.format(num_tosses, num_repetitions))

1. 반복 횟수 증가 (고정 된 표본 크기 1000)로 실험

plot_hist(1000, 1000)

여기에 이미지 설명을 입력하십시오

plot_hist(10000, 1000)

여기에 이미지 설명을 입력하십시오

plot_hist(100000, 1000)

여기에 이미지 설명을 입력하십시오

2. 표본 크기 증가로 실험 (1000 회 반복 고정)

plot_hist(1000, 100)

여기에 이미지 설명을 입력하십시오

plot_hist(1000, 1000)

여기에 이미지 설명을 입력하십시오

plot_hist(1000, 10000)

여기에 이미지 설명을 입력하십시오

3. 표본 크기 증가 실험 (1 만회 반복 고정)

plot_hist(10000, 100)

여기에 이미지 설명을 입력하십시오

plot_hist(10000, 1000)

여기에 이미지 설명을 입력하십시오

plot_hist(10000, 10000)

여기에 이미지 설명을 입력하십시오

plot_hist(10000, 100000)

여기에 이미지 설명을 입력하십시오



답변

두 번째 경우, 토스 수를 늘리면 단일 시험에 들어갈 수있는 빈 수를 늘릴 수 있습니다. 실험 2의 첫 번째 경우에는 채울 수있는 최대 100 개의 빈이 있지만 마지막 예제에는 10000 개의 빈이 있습니다. 실험의 “해상도”를 계수 100만큼 높였습니다 (즉, 첫 번째 실험에서 하나의 빈은 이제 두 번째 실험에서 대략 100으로 나타납니다). 물론 이는 빈을 채우기 위해 100 배 더 많은 데이터가 필요할 것으로 예상합니다.


답변

개별 코인 플립은 독립적 인 Bernoulli 시험으로 생각할 수 있습니다. 한 번의 시도로 각각 머리 / 꼬리 또는 성공 / 실패가 발생합니다. 이것을 100,000 번 반복하면 동전이 공정하면 평균 헤드 수는 0.5에 매우 가깝습니다.

이제 시행 횟수를 1,000으로 늘리고 반복 횟수를 1로 유지하면 1,000 회 성공 / 실패 횟수를 얻게되며 반복 횟수를 늘리지 않는 한 평균 500 개의 헤드를 관찰 할 확률에 대해서는 말할 수 없습니다. 각각의 독립적 인 시험. 반복 횟수가 증가함에 따라 정규 분포에 대한 더 나은 근사값을 얻게됩니다.

나에게 시행 착오를 “토스”또는 “샘플 크기”가 아니라 개별 코인 대신 각 코인의 뒤집기 횟수로 반복하는 것이 더 쉽습니다. 그런 다음 코인 (또는 시행)의 수를 늘리고 총 반복 (또는 뒤집기) 수를 일정하게 유지하면 정규 분포에 대한 데이터의 근사치가 더 나빠진다는 것도 직관적으로 의미가 있습니다.


답변

여기에있는 다른 대답은 훌륭하지만 다른 통계 도구로 확장되는 대답을 추가하고 싶었습니다.

기준선으로 시작하여 법선 곡선에 근사해야한다고 생각한 다음 거기에서 법선 곡선에 더 잘 접근 할 수 있는지 확인하십시오. 다른 방향으로 가고 근사 할 때 더 나쁜 일을하기 위해 할 수있는 일을보십시오. 10 번의 플립과 1000 번의 반복이있는 시뮬레이션을 시도하십시오. 이것을 1000 번의 플립과 10 번의 반복이있는 시뮬레이션과 비교하십시오. 전자의 경우가 더 나은 근사치를 갖는 것이 분명해야합니다.

내가 만들고 싶은 확장은 분산 분석입니다. 이 문제에 대한 이해가 부족한 많은 새로운 데이터 과학자들을보고, 연구는 많은 변화를 주지만 반복은 거의하지 않도록 연구를 설계합니다. 그들은 많은 데이터를 가지고 있지만 원하는 것보다 덜 말합니다. 나무의 모든 잎을 측정하는 것과 같지만 두 개의 나무 만 있습니다. 우리는 그 두 나무의 잎에 대해 꽤 말할 수 있지만 일반적으로 나무에는 잎이 없습니다. 당신은 훨씬 더 작은 잎 샘플을 얻고 많은 나무를 얻는 것이 좋을 것입니다.


답변

추가적인 직관을 얻으려면 다음을 고려하십시오.

한 번만 반복한다고 상상해보십시오.

이 경우 원하는만큼의 토스 수를 늘릴 수 있지만 정규 분포와 비슷하지는 않습니다. 그리고 이것은 히스토그램이 단 하나의 피크를 가지기 때문에 의미가 있습니다.


정규 분포는 확률 분포 (이항 분포)에 대한 근사치입니다.

이 배포판을 만들지 않았습니다. 그러나 대신 제한된 수의 시뮬레이션을 사용하여이 분포 를 추정 했습니다. (그리고 당신이 발견 한 것은 히스토그램에서 빈의 수를 늘리면이 근사가 악화된다는 것입니다)


따라서 둘 다 많은 토스 반복이 필요합니다 .

  • 토스 수가 많으면 이항 분포 (여러 코인 토스)를 정규 분포로 근사 할 수 있습니다.
  • 반복 / 시뮬레이션의 수가이 실험의 히스토그램보다 높으면 이항 분포의 밀도와 비슷합니다.

답변