부트 스트랩 샘플 수에 대한 경험 법칙


40

데이터 특성 (관찰 횟수 등) 및 / 또는 포함 된 변수를 기반으로 사용해야하는 부트 스트랩 샘플 수에 관한 일반적인 경험 법칙을 누군가가 알고 있는지 궁금합니다.


2
시뮬레이션 분석을 계획하면서 이것에 대해서도 궁금했습니다. 실행 가능한 / 실용적인만큼 많은 샘플을 사용하지 않을 이유가 있습니까? 환경 문제 (예 : 전력 소비) 및 개인 문제 (예 : 지속 가능한 신경의 임계 값 초과, 순수한 괴짜로의 전환)를 제외 하고는 지금까지 답변에 금기 사항이 없습니다 (BTW 주변의 모든 +1). .
닉 Stauner

4
@Nick 나는 크게 동의한다. 나는 일반적으로 기다릴 수있는만큼을 사용한다 (보통 항상 그렇지는 않지만 항상 백만에서 토핑한다). 첫 번째 시도로 종종 타이밍 정보를 얻기 위해 1K를 수행 한 다음 실제 답변을 기다릴 준비가 된 배수의 수를 계산하십시오.
Glen_b

1
프로세스에서 시간이 많이 걸리는 부분이 시뮬레이션을 생성하는 경우 시뮬레이션을 통해 관찰 한 내용을 쉽게 집계 할 수있는 경우 (보통 약간의 추가 코딩만으로도 가능), 과잉 달성 측면에서 실수를하지 않을 이유가 거의없는 것 같습니다. 사람들이 모두이 일을하고 그 이유를 잊어 버렸다면 시간이 지남에 따라 확대 될 수있을 것 같지만, 아마도 그럴 수는 없을 것입니다 ... 실제로 의심의 여지가 남지 않을 때까지 더 많은 노력을 기울여야하므로 암묵적으로 낙담하지 마십시오.
Nick Stauner

명확한 수렴이 보일 때까지 부트 스트랩을합니다. 검토 자의 우려를 덜고 싶다면 부트 스트랩 반복 시각화와 결과 추정을 포함시켜 수렴을 설명합니다.
RTbecard

답변:


33

내 경험에 따르면 통계가 반복 횟수가 1,000을 초과하지 않으면 시뮬레이션이나 부트 스트랩을 심각하게 고려하지 않습니다. MC 오류는 이해하기 어려운 큰 문제입니다. 예를 들어이 백서Niter=50 는 LASSO를 기능 선택 도구로 시연 하는 데 사용 되었습니다. 내 논문은 50 번의 반복이 수용 가능한 것으로 판단되면 실행하는 데 훨씬 적은 시간이 걸렸을 것입니다! 부트 스트랩 샘플의 히스토그램을 항상 검사하는 것이 좋습니다 . 그들의 분포는 상당히 규칙적으로 보일 것입니다. 나는 명확한 수치 규칙이 충분하지 않다고 생각하며 MC 오류를 평가하기 위해 이중 부트 스트랩을 수행하는 것이 과도합니다.

두 개의 독립적 인 표준 정규 확률 변수의 비율에서 평균을 추정한다고 가정하면 일부 통계학자는 적분을 계산하기가 어렵 기 때문에 부트 스트랩을 권장 할 수 있습니다. 벨트 아래에 기본 확률 이론이있는 경우이 비율이 존재하지 않는 평균을 가진 Cauchy 랜덤 변수를 형성한다는 것을 인식 할 것입니다. 다른 leptokurtic 분포는보다 일반적인 Gaussian 밀도에 비해 몇 가지 추가 부트 스트랩 반복이 필요합니다. 이 경우 1000, 100000 또는 10000000 부트 스트랩 샘플이 존재하지 않는 것으로 추정하기에는 불충분합니다. 이 부트 스트랩의 히스토그램은 계속 불규칙하고 잘못 보입니다.

그 이야기에는 몇 가지 주름이 더 있습니다. 특히, 부트 스트랩은 데이터 생성 확률 모델의 모멘트가 존재하는 경우에만 정당화됩니다. 실제 확률 모델에 대한 경험적 분포 함수를 짚맨으로 사용하고 동일한 평균, 표준 편차, 왜도, 99 번째 백분위 수 등이 있다고 가정하기 때문입니다.

간단히 말해, 통계 및 표준 오류의 부트 스트랩 추정치는 부트 스트랩 된 샘플의 히스토그램이 합리적으로 의심 할 여지없이 규칙적으로 나타날 때와 부트 스트랩이 정당화 될 때만 정당화됩니다.


3
나는 항상 큰 부트 스트랩 샘플을 보았습니다. 그러나 Efron과 Tibshirani의 "부트 스트랩 소개"(1994)에서 B = 25로 적절한 추정치를 얻을 수 있으며 B = 200으로 무한대와 유사한 변동 계수에 접근한다고보고합니다. 다양한 B의 변동 계수 표를 제공합니다 (52-53 페이지, Google 도서에서 두 페이지를 모두 사용할 수 있음).
jeramy townsley

18

편집하다:

충분한 샘플이 필요한 경우 부트 스트랩 프로 시저, 원하는 것, 충분한 샘플을 여러 번 실행하고 부트 스트랩이 "점프"하는 정도를 확인하는 것이 좋습니다. 반복되는 추정치가 크게 다르지 않은 경우 ( "많은"특정 상황에 따라 다름) 가장 좋습니다. 물론 샘플 SD 등을 계산하여 반복 된 추정치가 얼마나 많이 이동하는지 추정 할 수 있습니다.

Wilcox (2010)는 참조 및 경험 법칙을 원하면 "일반적으로 599를 권장합니다."라고 말합니다. 그러나 이것은 지침 또는 고려해야 할 최소 샘플 수로 만 고려해야합니다. 안전한면에 있기를 원한다면 (계산적으로 가능한 경우) 더 많은 샘플을 생성하지 않아야하는 이유가 없습니다.

개인 메모에서 나는 "나 자신을 위해"를 추정 할 때 10,000 개의 샘플을 실행하고 다른 사람에게 전달 된 것을 추정 할 때 100,000 개의 샘플을 실행하는 경향이 있습니다 (그러나 작은 데이터 세트로 작업 할 때 빠릅니다).

참고

RR Wilcox (2010). 현대 통계 방법의 기초 : 실질적으로 힘과 정확도 향상. 봄 병아리.


17
599? 오백 구십 구? 이 숫자에 찬성하여 지구상에서 무엇을 주장 할 수 있습니까?
아메바는

Wilcox (2010)에게 물어보십시오. 아마도 Rasmus가 인용문을 둘러싼 좀 더 많은 맥락으로 우리를 우아하게 해주었 을까요?
Nick Stauner 2014

599가 어디에서 왔는지 불분명합니다.하지만 대답에 더 좋은 조언을 추가했습니다 ...
Rasmus Bååth

8
@amoeba 스스로 "통로"를 읽을 수 있습니다 . 이것은 통계적으로 기록이 매우 불명확 한 예이며, 특히 Windsorized 표준 오차 추정값 을 사용하여 잘린 평균에 대한 추론에만 적용됩니다 .
AdamO

11

사전에 또는 몇 번의 반복 후에 많은 수의 부트 스트랩 반복이 결국에는 도움이되지 않는다고 말할 수있는 상황이 있습니다.

  • 결과의 의미있는 해석에 필요한 정밀도의 차수에 대한 아이디어가 있기를 바랍니다. 그렇지 않다면 데이터 분석의 문제에 대해 조금 더 배울 시간입니다. 어쨌든, 몇 번의 반복 후에 얼마나 많은 반복이 필요한지 추정 할 수 있습니다.

  • 분명히, 사례가 극소수 인 경우 (예 : 윤리위원회에서 5 마리의 쥐를 허용 한 경우) 수만 번의 반복을 생각할 필요가 없습니다. 어쩌면 가능한 모든 추첨을 보는 것이 좋습니다. 그리고 5 마리의 쥐를 기반으로 어떤 결론을 내릴 수 있는지를 멈추고 생각하는 것이 훨씬 낫습니다.

  • 결과의 불확실성을 생각해보십시오. 내 분야에서 부트 스트래핑으로 측정하고 줄일 수있는 불확실성 부분은 전체 불확도의 작은 부분 일 수 있습니다 (예 : 실험 설계의 제한으로 인해 중요한 변동 원인은 종종 실험에 포함되지 않습니다) 최종 목표는 물론 환자 일지라도 세포주에 대한 실험으로 시작합니다. 이 상황에서는 너무 많은 반복을 실행하는 것이 이치에 맞지 않습니다. 어쨌든 최종 결과에 도움이되지 않으며 잘못된 확신을 유발할 수 있습니다.

  • 부트 스트랩 밖 또는 모델의 교차 검증 중에 관련 (정확히 동일하지는 않지만) 문제가 발생합니다. 두 가지 불확실성의 원인이 있습니다 : 유한 (그리고 제 경우에는 일반적으로 매우 적은 수의 독립적 인 경우) 및 (에서) 부트 스트랩 된 모델의 안정성. 리샘플링 유효성 검사 설정에 따라 리샘플링 추정에 기여하는 것 중 하나만있을 수 있습니다. 이 경우 다른 분산 원의 추정값을 사용하여 리샘플링으로 달성해야 할 확실성과 최종 결과를 돕기 위해 중단되는 시점을 판단 할 수 있습니다.

  • 마지막으로, 지금까지 반복 횟수를 줄이는 방법에 대한 생각은 많았지 만 더 많은 것을 선호하는 실질적인 고려 사항은 다음과 같습니다
    . 실제로 부트 스트랩이 실행 된 후에는 제 작업이 수행되지 않습니다. 부트 스트랩의 출력은 요약 통계 및 / 또는 수치로 집계되어야합니다. 논문이나 보고서를 작성하려면 결과를 해석해야합니다. 부트 스트랩의 몇 번의 반복에 대한 예비 결과를 통해 이러한 작업의 대부분을 이미 수행 할 수 있습니다 (결과가 명확하면 몇 번의 반복 후에 이미 표시됩니다. 경계선 인 경우 경계선을 유지함). 그래서 나는 종종 컴퓨터를 계산하는 동안 일을 계속할 수 있도록 예비 결과를 가져올 수있는 방식으로 부트 스트랩을 설정했습니다. 그렇게하면 부트 스트랩에 며칠이 더 걸리더라도 크게 신경 쓰지 않습니다.


10

TLDR. 10,000은 좋은 경험 법칙 인 것처럼 보입니다. 예를 들어,이 크고 큰 부트 스트랩 샘플의 p- 값은 약 95 %의 방법에 대한 "진정한 p- 값"의 0.01 내에 있습니다.

아래 백분위 수 부트 스트랩 접근 방법 만 고려합니다.이 방법은 가장 일반적으로 사용되는 방법이지만 내 약점있으며 작은 샘플에는 사용해서는 안됩니다 .

약간 재조명. 부트 스트랩의 사용으로 인한 불확실성을 감지하기 위해 부트 스트랩의 결과와 관련된 불확실성을 계산하는 것이 유용 할 수 있습니다. 이는 부트 스트랩의 가능한 약점을 해결하지는 않지만 (예 : 위의 링크 참조) 특정 응용 프로그램에 "충분한"부트 스트랩 샘플이 있는지 평가하는 데 도움이됩니다. 일반적으로 부트 스트랩 샘플 크기 와 관련된 오류 는 무한대 nn갈수록 0이되고 n작은 부트 스트랩 샘플 크기와 관련된 오류가 작을수록 얼마나 커야하는지 질문합니다 .

p- 값의 부트 스트랩 불확실성 pv_est는 부트 스트랩에서 추정 된 p- 값이라고하는 추정 된 p- 값의 부정확도는 약 2 x sqrt(pv_est * (1 - pv_est) / N)이며, 여기서 N부트 스트랩 샘플의 수는 어디 입니까 ? pv_est * N(1 - pv_est) * N둘 다인 경우에 유효 합니다 >= 10. 이 중 하나가 10보다 작 으면 정확도가 떨어지지 만 추정치와 같은 동네에서 매우 대략적으로 나타납니다.

신뢰 구간의 부트 스트랩 오류. 95 % 신뢰 구간을 사용하는 경우 (2.5 번째 백분위 수)의 백분위 수를 확인하여 부트 스트랩 분포의 Quantile의 변동성이 2.5 % 및 97.5 %에 가까운 지 살펴보십시오 2.5 +/- 2 * 100 * sqrt(0.025 * 0.975 / n). 이 공식은 채취 한 부트 스트랩 샘플 수에 따라 95 % 신뢰 구간의 하단에 대한 불확실성을 나타냅니다. 상단에서 비슷한 탐색을 수행해야합니다. 이 추정치가 다소 변동이 심하면 부트 스트랩 샘플을 더 많이 가져와야합니다!


n

7

599

αB

α(1+B)=integer

α1=0.1α2=0.05

우리는

B1=integer0.11,B2=integer0.051

599

나는 JG (2000)의 Davidson, R. 및 MacKinnon 에서 다음 정보를 얻었습니다 . 부트 스트랩 테스트 : 얼마나 많은 부트 스트랩? 계량 경제적 평가, 19 (1), 55-68. (작업 용지 버전은 무료로 다운로드 할 수 있습니다).

0.053990.011499

B

"사전 테스트 절차가 잘 작동하는 이유를 쉽게 이해할 수 있습니다. 귀무 가설이 참이면 전력에 전혀 신경을 쓰지 않기 때문에 B가 작을 수 있습니다. 마찬가지로 귀무가 거짓이고 검정력이 극도로 높으면 전력 손실이 심각한 문제가 아니기 때문에 B를 크게 할 필요는 없지만, 널 (null)이 거짓이고 테스트 전력이 약간 높으면 전력 손실을 피하기 위해 B가 커야합니다. B가 클 필요가있을 때 안전하게 작고 클 수 있으면 작습니다. "

B


4

내가 본 대부분의 부트 스트랩 응용 프로그램은 약 2,000에서 100k 반복을보고했습니다. 적절한 소프트웨어를 사용하는 현대 실무에서 부트 스트랩의 주요 문제는 시간 및 컴퓨팅 용량보다 통계적인 문제입니다. Excel을 사용하는 초보자 사용자에게는 고급 Visual Basic 프로그래밍을 사용하기 전에 수백 개만 수행 할 수있었습니다. 그러나 R은 사용이 훨씬 간단하며 수천 개의 부트 스트랩 값을 쉽고 간단하게 생성 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.