Математическая статистика (ФБМФ, ФМХФ)¶
Домашнее задание 2 — часть В¶
Правила, прочитайте внимательно:
- Выполненную работу нужно отправить телеграм-боту
@thetahat_st_bot
. Для начала работы с ботом каждый раз отправляйте/start
. Дождитесь подтверждения от бота, что он принял файл. Если подтверждения нет, то что-то не так. Работы, присланные иным способом, не принимаются. - Дедлайн см. в боте. После дедлайна работы не принимаются вообще никак, кроме случаев наличия уважительной причины.
- До дедлайна можно поменять решение любое количество раз. Начинайте точно так же сдавать задание, бот подскажет.
- Любую уважительную причину нужно подтвердить документально, отправив скан или фото боту. При этом работу можно сдать позже на столько дней, на сколько время ее действия пересекается с временем выполнения задания.
- Прислать нужно ноутбук в формате ipynb. Другие форматы не принимаются.
- Выполнять задание необходимо полностью самостоятельно. При обнаружении списывания все участники списывания будут сдавать устный зачет.
- Решения, размещенные на каких-либо интернет-ресурсах не принимаются. Кроме того, публикация решения в открытом доступе может быть приравнена к предоставлении возможности списать.
- Простой или основной уровень вы выбираете самостоятельно, выполняя или не выполняя задания типа B. При выборе простого уровня достаточно выполнить задания типа A. При выборе основного уровня нужно выполнять как задания типа A, так и задания типа B.
- Для выполнения задания используйте этот ноутбук в качествие основы, ничего не удаляя из него. Можно добавлять необходимое количество ячеек. Ячейки с assert'ами удалять и изменять нельзя, в противном случае соответствующее задание не будет оценено.
- Комментарии к решению пишите в markdown-ячейках.
- Если код студента недописан и т.д., то он не оценивается.
- Каждая задача стоит 5 баллов.
Для выполнения задания используйте этот ноутбук в качествие основы, ничего не удаляя из него. Можно добавлять необходимое количество ячеек. Ячейки с assert'ами удалять и изменять нельзя, в противном случае соответствующее задание не будет оценено.
import numpy as np
import scipy.stats as sps
import matplotlib.pyplot as plt
%matplotlib inline
Задача 4¶
В этой задаче нужно визуализировать доверительные интервалы для выборок из различных распределений.
Пусть выборка $X_1, ... X_{100}$ имеет распределение $Bern(\theta)$. Сгенерируйте такую выборку, взяв $\theta=1/2$. Для каждой подвыборке вида $X_1, ... X_i$, $1 \le i \le 100$ постройте асимптотический доверительный интервал для параметра $\theta$ уровня доверия $\alpha=0.95$. Формула для интервала была выведена на семинаре. Постройте график зависимости доверительного интервала от размера выборки (см. код с семинара).
Аналогичные действия выполните для выборки из распределения Лапласса с плотностью $p(x) = \frac{1}{2} e^{-|x-\theta|}$, сгенерировав выборку для $\theta=0$.
<...>
Вывод: <...>
Задача 5¶
Если у вас еще не установлена библиотека seaborn
для получения красивых графиков, поставьте ее.
import seaborn as sns
sns.set(font_scale=1.2, palette='Set2')
Загрузим данные "Ирисы Фишера" о цветках ириса различных сортов и посмотрим на первые пять строк таблицы. Для хранения данных используется класс DataFrame
библиотеки pandas
.
df = sns.load_dataset("iris")
df.head()
Столбцы отвечают за длину и ширину чашелистика и лепестка соответственно, а так же за тип цветка (setosa, virginica, versicolor).
Вектор значений первого столбца можно получить так
df['sepal_length']
Первую строку можно получить так
df.iloc[0]
Таблица с данными только по сорту virginica извлекается следующим образом
df[df['species'] == 'virginica']
Визуализируем данные по двумерным проекциям. Цветом обозначен тип цветка.
g = sns.PairGrid(df, hue='species', size=3)
g.map_offdiag(plt.scatter, cmap ="Blues_d")
g.map_diag(sns.kdeplot, lw=3)
plt.legend();
Для каждой характеристики цветка и каждого типа цветка проверьте с помощью критерия Шапиро-Уилка, является ли соответствующая выборка нормальной с уровнем значимости $\alpha=0.05$. Всего нужно совешить 12 проверок (4 характеристики, 3 типа). Например, нужно проверить, является ли выборка df[df['species'] == 'virginica']['sepal_length']
нормальной.
<...>
Теперь для каждой характеристики для всех пар типов цветка проверьте с уровнем значимости $\alpha=0.05$, отличаются ли значения данной харатеристики для этих типов цветков (см. презентацию с семинара). Если для обеих выборок нормальность выше не отверглась, используйте критерий Стьюдента, иначе пользуйтесь критерием Смирнова. Например, нужно проверить, отличаются ли распределения выборкок df[df['species'] == 'setosa']['sepal_length']
и df[df['species'] == 'virginica']['sepal_length']
.
Замечание. Для применения критерия Стьюдента было бы правильнее предварительно проверить, что дисперсии выборок совпадает, но в данном задании это можно не делать.
<...>
Вывод: <...>
<...>
Каким числом ограничена вероятность ошибки первого рода в каждой проверке?
<...>
Такую ошибку мы могли совершить в каждой проверке. Вероятность совершения хотя бы одной ошибки первого рода среди всех проверок не превосходит произведения указанных вами чисел. Но нам хотелось бы, чтобы вероятность совершения хотя бы одной ошибки первого рода не превосходила $\alpha=0.05$. Можете ли вы предложить решение данной проблемы?
<...>
Реализуйте этот способ для предыдущей задачи
<...>
***Вывод:** <...>