Могу ли я использовать анализ разрежды для оценки минимального размера выборки, необходимого для захвата дисперсии выборPython

Программы на Python
Anonymous
Могу ли я использовать анализ разрежды для оценки минимального размера выборки, необходимого для захвата дисперсии выбор

Сообщение Anonymous »

В экологии анализ разрежды может быть использован для оценки минимального размера выборки, необходимого для обнаружения всех видов в популяции. Мне было интересно, можно ли это использовать для оценки минимального размера выборки, необходимого для захвата дисперсии конкретного параметра популяции. население). Чтобы генерировать кривую разрешения, я могу увеличить размер выборки с 1 до 100. При каждом размере выборки n я могу случайным образом генерировать 10000 образцов (размер = n ) из Оригинальный образцы и рассчитайте среднюю дисперсию этих 10000 образцов. Затем постройте среднюю дисперсию в зависимости от размера выборки. Мой вопрос: кажется, что независимо от того, какая у меня оригинальная выборка, размер выборки, необходимый для покрытия 95% дисперсии популяции, всегда одинаков: около 16 образцов. Это кажется мне немного странным.sample_size = data.shape[0]

data_n_variance = [] #initialize the list to store the average variance of the measurements of that specific parameter at different sample size

#generate random seeds for the 10000 times bootstrapping for reproducibility
rng = np.random.RandomState(seed=42)
seed_list = rng.choice(10000, size=10000, replace=True)

for i in range(1, sample_size+1):
subsample_i_variance = [] #initialize the list to store the variance of 10000 randomly generated subsamples at a certain sample size

for j in range(10000):
rng = np.random.RandomState(seed=seed_list[j])
subsample = rng.choice(data, size=i, replace=False)
subsample_i_variance.append(np.var(subsample))

data_n_variance.append(sum(subsample_i_variance)/10000)
< /code>
код для решения минимального размера выборки < /p>
for i in range(1, sample_size+1):
if data_n_variance > 0.95*data_n_variance[-1]:
print(i)
break
< /code>
И я попытался смоделировать два разных исходного образца, минимальный размер выборки одинаково
нормальное распределение: < /p>
data = np.random.normal(loc=100, scale=10, size=100)
< /code>
Бимодальное распределение: < /p>
data1 = np.random.poisson(lam=1, size=60)
data2 = np.random.normal(loc=1000, scale=100, size=40)
data = np.concatenate((data1, data2))


Подробнее здесь: https://stackoverflow.com/questions/793 ... ded-to-cap

Вернуться в «Python»