Как рассчитать размер выборки в Python, используя это уравнение? - PullRequest
0 голосов
/ 29 апреля 2020

В следующем уравнении мне трудно перевести в Python. Когда я делаю это, это выскакивает смехотворно большое количество. Мой код 100000/1+((2.575**2)*.38*(1-.38)/(.005**2)*100000), но он неправильный.

Вот уравнение - Sample Size Formula

В этой формуле предположим, что доля населения составляет .38 ( 38%). Оценка z составляет 2,575. Погрешность составляет 0,005 (0,5%). Численность населения составляет 100 000 человек.

Может ли кто-нибудь помочь мне перевести это на Python? Ожидаемый результат - 38 549

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

У вас есть ошибка в скобках частей деления!

 100000 / (1 + ((2.575**2) * .38 * (1-.38) / ((.005**2) * 100000)))

Помимо помещения всех частей деления в скобки, вы должны также поместить * второго деления в скобки.

1 голос
/ 29 апреля 2020
100000/1+((2.575**2)*.38*(1-.38)/(.005**2)*100000)

У вас отсутствуют скобки, из-за которых python выполняет неправильный расчет. Помните свои PEMDAS. 100000/1 имеет более высокий приоритет, чем +

В любом случае, вот фиксированная версия:

def the_factor(n, z, p_cap, epsilon, N):
    return n / (1 + (((z**2) * (p_cap * (1 - p_cap)))/((epsilon**2) * N)))

print(the_factor(100000, 2.575, 0.38, 0.005, 100000))

Вывод:

61543.38122167427
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...