Я изучаю проверку гипотез и изучаю следующий пример:
Генеральный директор крупного предприятия электроснабжения утверждает, что 80 процентов его 1 000 000 клиентов очень довольныс услугой, которую они получают.Чтобы проверить это утверждение, местная газета опросила 100 клиентов, используя простую случайную выборку.Среди опрошенных клиентов 73 процента говорят, что они очень довольны.Основываясь на этих выводах, можем ли мы отвергнуть гипотезу генерального директора о том, что 80% клиентов очень довольны?Используйте уровень значимости 0,05.
Я получаю разные результаты при вычислении значения p с использованием z-критерия для одной выборки по сравнению с методом начальной загрузки в python.
Метод Z-теста:
σ = sqrt [(0,8 * 0,2) / 100] = sqrt (0,0016) = 0,04 z = (p - P) / σ= (.73 - .80) /0.04 = -1.75
Двусторонний тест, поэтому P (z <-1.75) = 0,04 и P (z> 1,75) = 0,04.
Таким образом, P-значение = 0,04 + 0,04 = 0,08.
Метод начальной загрузки (в Python):
Общий метод состоит в том, чтобы взятьслучайная выборка размером 100 от населения (1 000 000), из которых 80% удовлетворяются
repeat 5000 times:
take random sample of size 100 from population (1,000,000, 80% of which are satisfied)
count the number of satisfied customers in sample, and append count to list satisfied_counts
calculate number of times that a value of 73 or more extreme (<73) occurs. Divide this by the number of items in satisfied_counts
Since it's a two-tailed test, double the result to get the p-value.
С помощью этого метода p-значение 0,11.
Здеськод:
population = np.array(['satisfied']*800000+['not satisfied']*200000) # 80% satisfied (1M population)
num_runs = 5000
sample_size = 100
satisfied_counts = []
for i in range(num_runs):
sample = np.random.choice(population, size=sample_size, replace = False)
hist = pd.Series(sample).value_counts()
satisfied_counts.append(hist['satisfied'])
p_val = sum(i <= 73 for i in satisfied_counts) / len(satisfied_counts) * 2
Почему два результата отличаются?Любая помощь / точка в правильном направлении приветствуется!