이 연속 데이터에 부트 스트랩이 적합합니까?


11

나는 완전한 초보자입니다 :)

약 745,000 명의 인구에서 10,000의 표본 크기로 연구하고 있습니다. 각 샘플은 "백분율 유사성"을 나타냅니다. 대부분의 표본은 약 97 % -98 %이지만 일부는 60 %와 90 % 사이입니다. 즉, 분포가 크게 부정적입니다. 결과의 약 0.6 %는 0 %이지만 샘플과 별도로 처리됩니다.

모든 10,000 샘플의 평균은 97.7 %이며 Excel에서는 StdDev가 3.20입니다. StdDev는 결과가 정상적으로 배포되지 않기 때문에 (그리고 +3.20이 100 % 이상이되기 때문에) 실제로 적용 할 수 없음을 이해합니다.

내 질문은 :

  1. 부트 스트랩 (새로운 개념)이 적절한가요?
  2. 내가 올바르게 부트 스트랩하고 있습니까 :)
  3. 충분한 표본 크기는 얼마입니까?

내가하고있는 일은 10,000 개의 결과를 리샘플링하고 (대체로) 새로운 평균을 계산하는 것입니다. 나는 이것을 수천 번 수행하고 각 평균을 배열에 저장합니다. 그런 다음 "평균의 평균"을 계산하면 통계 결과입니다. 99 % CI를 계산하기 위해 0.5 % 값과 99.5 % 값을 선택하면 97.4 %-98.0 %라는 매우 엄격한 범위가 생성됩니다. 이것이 유효한 결과입니까, 아니면 내가 잘못하고 있습니까?

표본 크기의 경우, 인구의 약 1.3 % 만 표본 추출하고 있습니다. 이것이 "충분한 지"모르겠습니다. 표본이 모집단을 대표하는지 어떻게 알 수 있습니까? 이상적으로는 +/- 0.50 % 퍼센트 포인트 (즉, 97.2 %-98.2 %) 인 평균을 99 % 확신하고 싶습니다.

모든 팁에 미리 감사드립니다!

답변:


19

표준 편차는 다른 어느 곳에서나 적용 할 수 있습니다 . 데이터 분산에 대한 유용한 정보를 제공합니다. 특히, sd를 표본 크기의 제곱근으로 나눈 값은 하나의 표준 오차입니다. 평균의 샘플링 분포의 분산을 추정합니다. 계산하자 :

3.2%/10000=0.032%=0.00032.

그건 작은 댄 --far 작은 당신이 찾는 정밀.±0.50%

데이터는 정규 분포가 아니지만 표본 크기가 너무 커서 표본 평균이 정규 분포에 매우 가깝습니다. 예를 들어, 여기에는 귀하와 동일한 특성을 가진 샘플의 히스토그램이 있으며 오른쪽에는 동일한 모집단의 추가 샘플 수천 개에 대한 히스토그램이 있습니다.

그림 1

보통과 매우 비슷해 보이지 않습니까?

따라서 올바르게 부트 스트랩하는 것처럼 보이지만 부트 스트랩은 필요하지 않습니다. 평소와 같이 표준 오차에 표준 정규 분포의 적절한 백분위 수를 곱하여 평균에 대한 대칭 신뢰 구간을 얻습니다. wit, ) 및 해당 거리를 평균의 양쪽으로 이동합니다. 귀하의 경우 이므로 신뢰 구간은100α%Z1α/200Z1α/200=2.575899%

(0.9772.5758(0.032)/10000, 0.977+2.5758(0.032)/10000)=(97.62%,97.78%).

이 관계를 반전시켜 샘플 크기를 풀면 충분한 샘플 크기 를 찾을 수 있습니다. 여기에서 샘플 크기가 필요하다는 것을 알려줍니다.

(3.2%/(0.5%/1α/200))2272.

이것은 평균의 샘플링 분포가 보통이라는 결론을 다시 확인하기에 충분히 작습니다 . 나는 인구에서 샘플을 채취 하여 평균을 반복했습니다.99992729999

그림 2

물론 정상으로 보입니다. 실제로 부트 스트랩 신뢰 구간 은 정규 이론 CI 거의 동일합니다 .( 97.19 % , 98.24 % )(97.16%,98.21%)(97.19%,98.24%)

이들 실시 예는 표시로서 절대 샘플 크기는 추정의 정확도보다 인구 크기의 비율을 결정한다. (극단이지만 직관적 인 예는 한 방울의 바닷물이 바다의 소금 농도를 정확하게 추정 할 수 있다는 것입니다. 비록 그 방울이 모든 바닷물의 아주 작은 부분 일지라도 말입니다. 의 (이상 필요 의 샘플 많은 작품으로 번 과잉이다).36 2721000036272


R이러한 분석을 수행하고 그래픽을 플롯하는 코드는 다음과 같습니다. 평균 , SD 의 베타 분포를 갖는 모집단에서 표본을 추출합니다 .0.0320.9770.032

set.seed(17)
#
# Study a sample of 10,000.
#
Sample <- rbeta(10^4, 20.4626, 0.4817)
hist(Sample)
hist(replicate(10^3, mean(rbeta(10^4, 20.4626, 0.4817))),xlab="%",main="1000 Sample Means")
#
# Analyze a sample designed to achieve a CI of width 1%.
#
(n.sample <- ceiling((0.032 / (0.005 / qnorm(1-0.005)))^2))
Sample <- rbeta(n.sample, 20.4626, 0.4817)
cat(round(mean(Sample), 3), round(sd(Sample), 3)) # Sample statistics
se.mean <- sd(Sample) / sqrt(length(Sample))      # Standard error of the mean
cat("CL: ", round(mean(Sample) + qnorm(0.005)*c(1,-1)*se.mean, 5)) # Normal CI
#
# Compare the bootstrapped CI of this sample.
#
Bootstrapped.means <- replicate(9999, mean(sample(Sample, length(Sample), replace=TRUE)))
hist(Bootstrapped.means)
cat("Bootstrap CL:", round(quantile(Bootstrapped.means, c(0.005, 1-0.005)), 5))

2
이 게시물이 꽤 오래되었지만 매우 유용하다는 것을 알고 있습니다. 지식을 공유해 주셔서 감사합니다.
RDizzl3
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.