Физтех.Статистика
Скачать ipynb
Phystech@DataScience¶
Домашнее задание 6¶
Правила, прочитайте внимательно:
- Выполненную работу нужно отправить телеграм-боту
@miptstats_pds_bot
. Для начала работы с ботом каждый раз отправляйте/start
. Работы, присланные иным способом, не принимаются. - Дедлайн см. в боте. После дедлайна работы не принимаются кроме случаев наличия уважительной причины.
- Прислать нужно ноутбук в формате
ipynb
. - Выполнять задание необходимо полностью самостоятельно. При обнаружении списывания все участники списывания будут сдавать устный зачет.
- Решения, размещенные на каких-либо интернет-ресурсах, не принимаются. Кроме того, публикация решения в открытом доступе может быть приравнена к предоставлении возможности списать.
- Для выполнения задания используйте этот ноутбук в качестве основы, ничего не удаляя из него. Можно добавлять необходимое количество ячеек.
- Комментарии к решению пишите в markdown-ячейках.
- Выполнение задания (ход решения, выводы и пр.) должно быть осуществлено на русском языке.
- Если код будет не понятен проверяющему, оценка может быть снижена.
- Никакой код из данного задания при проверке запускаться не будет. Если код студента не выполнен, недописан и т.д., то он не оценивается.
- Код из рассказанных на занятиях ноутбуков можно использовать без ограничений.
Правила оформления теоретических задач:
- Решения необходимо прислать одним из следующих способов:
- фотографией в правильной ориентации, где все четко видно, а почерк разборчив,
- отправив ее как файл боту вместе с ноутбуком или
- вставив ее в ноутбук посредством
Edit -> Insert Image
(фото, вставленные ссылкой, не принимаются);
- в виде $LaTeX$ в markdown-ячейках.
- фотографией в правильной ориентации, где все четко видно, а почерк разборчив,
- Решения не проверяются, если какое-то требование не выполнено. Особенно внимательно все проверьте в случае выбора второго пункта (вставки фото в ноутбук). Неправильно вставленные фотографии могут не передаться при отправке. Для проверки попробуйте переместить
ipynb
в другую папку и открыть его там. - В решениях поясняйте, чем вы пользуетесь, хотя бы кратко. Например, если пользуетесь независимостью, то достаточно подписи вида "X и Y незав."
- Решение, в котором есть только ответ, и отсутствуют вычисления, оценивается в 0 баллов.
Баллы за задание:
Легкая часть (достаточно на "хор"):
- Задача 1 — 15 баллов
- Задача 2 — 20 баллов
Сложная часть (необходимо на "отл"):
- Задача 3 — 25 баллов
- Задача 4 — 30 баллов
Легкая часть (достаточно на "хор"):
- Задача 5 — 20 баллов
- Задача 6 — 15 баллов
Сложная часть (необходимо на "отл"):
- Задача 7 — 30 баллов
# Bot check
# HW_ID: phds_hw6
# Бот проверит этот ID и предупредит, если случайно сдать что-то не то.
# Status: not final
# Перед отправкой в финальном решении удали "not" в строчке выше.
# Так бот проверит, что ты отправляешь финальную версию, а не промежуточную.
# Никакие значения в этой ячейке не влияют на факт сдачи работы.
Теоретическая часть¶
Легкая часть¶
Задача 1.¶
Пусть $X_1,...,X_n$ выборка из некоторого распределения $\mathrm{P}$, причем ${\sf D} X_1=\sigma^2<+\infty$, и $\sigma$ неизвестно. Рассмотрим статистику $S^2=\frac1n\sum\limits_{i=1}^n(X_i-\overline{X})^2$.
Докажите, что статистика $S^2$ равна $\overline{X^2}-\overline{X}^2$.
Является ли она состоятельной оценкой $\sigma^2$? Для ответа на этот вопрос воспользуйтесь утверждениями с лекции.
Является ли статистика $S^2$ несмещенной оценкой $\sigma^2$? Для ответа на этот вопрос вспомните различные варианты определения дисперсии.
Задача 2.¶
Пусть $X_1,...,X_n$ выборка из из распределения $\mathcal{N}(\theta, \sigma^2)$, где оба параметра неизвестны.
Предложите несмещенную, сильно состоятельную, асимптотически нормальную оценку $\theta$.
Постройте асимптотический доверительный интервал для $\theta$ уровня доверия $\alpha$. Можете ли вы использовать полученную формулу, если не знаете $\sigma$?
Указание. Посмотрите пример с занятия.
Сложная часть¶
Задача 3.¶
Пусть $X_1,...,X_n$ выборка из из распределения $U(0, \theta)$.
- Проверьте на несмещенность следующие оценки параметра $\theta$: $2\overline{X}$, $X_{(n)}$, $\frac{n+1}{n}X_{(n)}$.
Указание. Найдите функцию распределения случайной величины $X_{(n)}$, посчитав вероятность того, что максимальное значение среди элементов выборки не превосходит числа $x$. Используйте при этом определение выборки. После чего получите плотность $X_{(n)}$.
Проверьте, является ли оценка $2\overline{X}$ состоятельной, сильно состоятельной и асимптотически нормальной.
Постройте асимптотический доверительный интервал для $\theta$ уровня доверия $\alpha$.
Указание. Посмотрите пример с занятия.
Задача 4¶
Рассмотрим модель линейной регрессии
$$Y = X \theta + ɛ,$$
где $Y \in \mathbb{R}^n$ - отклик, $X \in \mathbb{R}^{n \times d}$, $\theta \in \mathbb{R}^d$, $ɛ \in \mathbb{R}^n$ - шум, $n > d$, $rk X = d$.
- Опишите, какие величины в модели являются
- случайными
- неизвестными
- Покажите, что если $E ɛ = 0$, то МНК-оценка $\widehat{\theta}$ параметра $\theta$
$$\widehat{\theta} = (X^TX)^{-1}X^T Y$$
является несмещенной оценкой параметра $\theta$. Будет ли выполнено свойство несмещенности для Ridge-регрессии?
Указание: используйте свойство линейности математического ожидания в матричном виде.
- Покажите, что, если дополнительно матрица ковариаций $D ɛ = σ^2 I_n$, то дисперсия МНК-оценки: $$D \widehat{\theta} = \sigma^2 (X^TX)^{-1}$$ Что показывает данный результат в случае мультиколлинеарности признаков?
Указание: используйте свойство дисперсии в матричном виде.
Напоминание
- Матричное свойство математического ожидания:
$∀ A \in \mathbb{R}^{m \times k}$, случайного вектора $\psi \in \mathbb{R}^k$
$$E A \psi = A E \psi$$ 2. Матричное свойство дисперсии: $∀ A \in \mathbb{R}^{m \times k}$, случайного вектора $\psi \in \mathbb{R}^k$
$$D A \psi = A (D \psi) A^T$$
Практическая часть¶
import numpy as np
import scipy.stats as sps
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(font_scale=1.5, palette='Set2')
Легкая часть¶
Задача 5¶
Пусть $X_1, ..., X_n$ — выборка из распределения $\mathcal{N}(0, \sigma^2)$. Известно, что в качестве оценки параметра $\sigma^2$ можно использовать следующие оценки $S^2, \frac{n}{n-1}S^2$. Проверьте эти оценки на несмещенность повторив эксперимент с семинара.
Реализуйте две функции, каждая из которых на вход берет несколько выборок, а на выход выдает массив оценок
(первая функция - $S^2$, вторая функция - $\frac{n}{n-1}S^2$) для каждой выборки.
Примечание: У матрицы, заданной в виде numpy.array
есть метод var
вычисляющий выборочную дисперсию.
def estimate_s2(X):
'''
Принимает на вход массив размером (n_samples, sample_size), выдает массив оценок размера (n_samples,)
'''
# ваш код
def estimate_s2_corrected(X):
'''
Принимает на вход массив размером (n_samples, sample_size), выдает массив оценок размера (n_samples,)
'''
# ваш код
Проверьте правильность своей реализации
X = np.array([[1, 3, 3, 6], [2, 5, 1, 89]])
estimate_s2(X)
assert(sum(estimate_s2(X) != np.array([3.1875, 1399.6875])) == 0)
assert(sum(estimate_s2_corrected(X) != np.array((4.25, 1866.25))) == 0)
Задайте список оценок и разные параметры для отрисовки графика
estimators = [
(estimate_s2, r'$S^2$', 'purple', 0.1),
(estimate_s2_corrected, r'\frac{n}{n-1}$S^2$', 'green', 0.2)
]
Создайте 500 выборок размера sample_size
.
sample_count = 500
sample_size = 100
X = # ваш код
X.shape
Визуализируйте полученные оценки на одном графике. Средние значения по 500 экспериментам для каждой оценки нужно обозначить звездочками.
# ваш код
Напишите функцию построения таких графиков в общем виде: на вход функция может получать любые распределения (distributions
) и любые оценки (estimators
).
# ваш код
Постройте три графика, аналогичных верхнему, для разных размеров выборок (10, 100, 500).
sample_size_list = (10, 100, 500) # размеры выборок
sample_count = 500 # количество экспериментов
for sample_size in sample_size_list:
# ваш код
Изучите поведение среднего оценок из первого пункта при росте размера $n$ выборки - постройте график зависимости среднего оценки по всем экспериментам от размера выборки. Для вычисления зависимости нужно один раз сгенерировать выборки из достаточно большого размера и посчитать оценки по префиксам, используя функции из numpy
.
# ваш код
Какие из оценок являются асимптотически несмещёнными (т.е. $\forall \theta \in \Theta\colon \mathsf{E}_\theta \widehat{\theta} \to \theta$ при $n\to +\infty$)?
Ответ:¶
Задача 6.¶
Пусть $X_1, \ldots, X_n$ — выборка из распределения $\mathcal{N}(a, \sigma^2)$. Визуализируйте свойства состоятельности и асимптотической нормальности для оценки $S^2$ дисперсии $\sigma^2$.
Задача 7¶
В данной задаче нужно проверить на несмещенность МНК-оценку в линейной регрессии и оценку в Ridge-регрессии.
- При заданных $X, Y, \lambda$ выпишите формулы для
- Решения задачи МНК $\widehat{\theta}_{МНК}$
- Решения задачи Ridge-регрессии $\widehat{\theta}_{Ridge}$
- Визуализируйте, являюся ли данные оценки несмещенными аналогично задаче 5. Для этого нужно во многих экспериментах посчитать реализации оценок $\widehat{\theta}_{МНК}$, $\widehat{\theta}_{Ridge}$ и нанести их на график.
- Учитывая ответы в задаче 4, опишите, как должны генерироваться выборки для визуализации. Какие величины в формулах из п.1 должны быть зафиксированы? Какие должны меняться от эксперимента к эксперименту? Каким образом?
- Задайте сами истинное значение $\theta$ и значения признаков $X \in \mathcal{R}^{n \times d}$. Учитывайте, что для выполнения условия теоремы с лекции $n > d$ и $rk X = d$. Для Ridge-регрессии возьмите два значения $\lambda$. Сгенерируйте зашумленные значения $Y$, с помощью которых можно получить выборки для каждого вида оценки. Визуализируйте их аналогично задаче 5. Распределение шума $ɛ$ можно считать нормальным.
Внимание: вы должны получить $n$ реализаций $Y$, по которым будут посчитаны $n$ реализаций оценок каждого вида.