2.

Большая часть млекопитающих неспособны во взрослом возрасте переваривать лактозу, содержащуюся в молоке. У людей за расщепление лактозы отвечает фермент лактаза, кодируемый геном LCT. У людей с вариантом 13910T этого гена лактаза продолжает функционировать на протяжении всей жизни. Распределение этого варианта гена сильно варьируется в различных генетических популяциях. Из 50 исследованных представителей народа майя вариант 13910T был обнаружен у одного. Постройте нормальный 95% доверительный интервал для доли носителей варианта 13910T в популяции майя. Чему равна его нижняя граница? Округлите ответ до 4 знаков после десятичной точки.

3.

В условиях предыдущей задачи постройте 95% доверительный интервал Уилсона для доли носителей варианта 13910T в популяции майя. Чему равна его нижняя граница? Округлите ответ до 4 знаков после десятичной точки.

5.

Пусть в популяции майя действительно 2% носителей варианта 13910T, как в выборке, которую мы исследовали. Какой объём выборки нужен, чтобы с помощью нормального интервала оценить долю носителей гена 13910T с точностью ±0.01 на уровне доверия 95%?

6.

Постройте график зависимости объёма выборки, необходимого для оценки для доли носителей гена 13910T с точностью ±0.01 на уровне доверия 95%, от неизвестного параметра p. Посмотрите, при каком значении p нужно больше всего испытуемых. Как вы думаете, насколько вероятно, что выборка, которую мы анализируем, взята из случайной величины с этим значением параметра?

Как бы вы не ответили на последний вопрос, рассмотреть объём выборки, необходимый при таком p, всё равно полезно — это даёт максимально пессимистичную оценку необходимого объёма выборки.

Какой объём выборки нужен в худшем случае, чтобы с помощью нормального интервала оценить долю носителей гена 13910T с точностью ±0.01 на уровне доверия 95%?


In [1]:
from statsmodels.stats.proportion import proportion_confint
proportion_confint(1, 50, method = 'normal')


Out[1]:
(-0.018805307081790981, 0.058805307081790978)

In [2]:
from statsmodels.stats.proportion import proportion_confint
proportion_confint(1, 50, method = 'wilson')


Out[2]:
(0.0035392592716462362, 0.10495443589637815)

In [3]:
from statsmodels.stats.proportion import samplesize_confint_proportion
from math import ceil
ceil(samplesize_confint_proportion(1.0/50, 0.01, method='normal'))


Out[3]:
753.0

In [9]:
import numpy as np
%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt

def get_size(p):
    return ceil(samplesize_confint_proportion(p, 0.01, method='normal'))

ps = np.arange(0, 1.01, 0.01)
sizes = [get_size(p) for p in ps]
plt.plot(ps, sizes)
plt.show()
ps[np.argmax(sizes)]
np.max(sizes)


Out[9]:
9604.0

In [ ]: