HW7 // Оценивание параметров в практике статистического анализа. Тестирование статистических гипотез
Основные задания
#1
Нам вновь потребуются сгенерированные данные.
Сгенерируйте 1000 независимых выборок по 100 наблюдений из генеральной совокупности, в которой некоторый признак подчиняется распределению хи-квадрат (rchisq()
) с параметром 3 (df = 3
) — \(X \sim \chi^2(3)\).
В качестве зерна датчика случайных чисел используйте 333 (set.seed(333)
).
Описание формата инпута.
Подсказки
- Требуется сгенерировать матрицу, размером 100×1000, в каждой колонке которой будут содержаться наблюдения одной выборки.
- Так как выборки независимы, сгенерировать 1000 выборок по 100 наблюдений это то же самое, что сгенерировать одну большую выборку из 100 000 наблюдений, а затем сложить в матрицу по колонкам.
- Сгенерировать выборку поможет функция
rchisq()
, которая работает аналогично хорошо знакомойrnorm()
, только принимает в себя один параметрdf
(помимо количества наблюдений, которые нужно сгенерировать). - По заданию
df = 3
, именно такое значение параметра и нужно передать в функцию. - Сложить сгенерированный вектор в матрицу поможет функция
matrix()
.
#2
На практике мы посмотрели, что центральная предельная теорема (ЦПТ) выполняется в случае с симметричным распределением, а именно с нормальным. Однако сама по себе ЦПТ не оговаривает какие-либо специальные требования к форме исходного распределения. Покажите с помощью симуляции, что распределение выборочных средних большого числа ассиметричных случайных величин будет стремиться к нормальному распределению.
Используйте матрицу sim1
.
Описание формата инпута.
Подсказки
- Сгенерированная в предыдущем задании матрица содержит 1000 выборок, на каждой из которых необходимо рассчитать среднее значение.
- Для того, чтобы выполнить какую-либо функцию на каждой из колонок, можно воспользоваться функцией
apply()
. - Функция
apply()
вернет вектор из средних значений, который дальше необходимо визуализировать средствами пакетаggplot2
.
#3
Мы также увидели на практике, что среднее арифметическое является несмещенной оценкой математического ожидания. Ну, в какой-то мере это был ожидаемый результат — распределение всё-таки у нас было симметричное. Не вполне ясно, будет ли сохранться несмещенность оценки, если наше распределение в генеральной совокупности теперь асимметрично.
Проверьте, является ли среднее арифметическое несмещенной оценкой математического ожидания в случае асимметричного распределения. Математическое ожидание распределения \(\chi^2(3)\) равно 3: \(\mathbb E \big( \chi^2(3) \big) = 3\). Используйте матрицу sim1
.
Сделайте вывод о (не)смещенности оценки.
Описание формата инпута.
Подсказки
- За основу возьмите график из предыдущего задания — ровно он нам и нужен.
- На график необходимо добавить две линии: одна будет обозначать генеральное среднее, другая — среднее выборочных средних.
- Обе линии визализируются с помощью
geom_vline()
, однако в первом случае функцияaes()
не используется, а во втором — используется, так как среднее средних рассчитается на основе данных. - Генеральное среднее в случае распределение хи-квадрат будет совпадать с параметром
df
. - Если линии находятся близко друг к другу, то оценку можно считать несмещенной. Если оценка значительно отклоняется от параметра генеральной совокупности, то оценка является смещенной.
#4
Вопрос про состоятельность также возникает в случае асимметричного распределения. Потребуется другая структура данных, чтобы проверить сохранение этого свойства оценки.
Сгенерируйте 1000 выборок, объемом от 1 до 1000 наблюдений, из генеральной совокупности, в которой некоторый признак подчиняется распределению хи-квадрат (rchisq()
) с параметром 3 (df = 3
) — \(X \sim \chi^2(3)\). Результаты генерации сохраните в список sim2
.
Описание формата инпута.
Подсказки
- В случае проверки оценки на состоятельность необходимы выборки разного объема, поэтому сложить их в матрицу будет сложнее — проще использовать список.
- Создайте пустой список
sim2
, а затем с помощью цикла сложите в него выборки, объемом от 1 до 1000 наблюдений, из того же распределения, что и в первом задании. - В функции
rchisq()
один из параметров теперь будет меняться — в качестве этого параметра необходимо передать итератор (обычноi
) из условия цикла.
#5
На сгенерированных в предыдущем задании данных проверьте, является ли выборочная дисперсия s^2
(var()
) состоятельной оценкой дисперсии генеральной совокупности в случае асимметричного распределения. Дисперсия распределения \(\chi^2(3)\) равна 6 — \(\mathbb D \big( \chi^2 (3) \big) = 6\).
Описание формата инпута.
Подсказки
- На каждом элементе списка
sim2
необходимо рассчитать дисперсию с помощью функцииvar()
. - Прогнать функцию по всем элементам списка поможет функция
map()
. - Результатом функции
map()
является список, который необходимо прекратить в вектор, чтобы с ним дальше было удобно работать на визуализации. Здесь пригодится функцияunlist()
. - При построении визуализации нужно отобразить, как меняется оценка дисперсии с ростом выборки, а также добавить горзионтальную линию, обозначающую дисперсию генеральной совокупности, чтобы из графика было видно, куда сходится оценка.
- Дисперсия генеральной совокупности в случае распределения хи-квадрат равна \(2 \times \text{df}\), то есть в нашем случае 6.
#6
Напишите функцию ci
для вычисления 90% доверительного интервала для среднего. Считайте, что мы работем с выборокой большого объема (порядка 100 наблюдений).
Пороговыми значениями стандартного нормального распределения считайте следующие: \(z_{0.05} = -1.64\), \(z_{0.95} = 1.64\).
Для самопроверки в поле ответа введите доверительный интервал для среднего первой выборки из симуляции sim1
в формате lower,upper
. Значения округлите до сотых. Проверка игнорирует все пробелы.
Подсказки
- Логика расчета границ доверительного интервала всегда одна и та же — \([\text{se}_X \cdot z_q + \bar X, \text{se}_X \cdot z_{1-q} + \bar X]\).
- Если в случае 95% доверительного интервала \(z_q = -1.96\), а \(z_{1-q} = 1.96\), то в случае 90% доверительного интервала — \(z_q = -1.64\), а \(z_{1-q} = 1.64\).
- Таким образом, можно просто изменить значения, умножаемые на стандартрую ошибку, в коде из практики.
- Если в самопроверке ответ неверный, то проверьте округление (должно быть до сотых) и формат ввода (значения разделяются запятой, десятичный разделитель — точка).
#7
- Постройте визуализацию, выражающую статистически корректную интерпретацию 90% доверительного интервала для среднего. Используйте матрицу
sim1
. - Рассчитайте долю доверительных интервалов симуляции
sim1
, в границы которых попало значение параметра генеральной совокупности.
Для самопроверки в поле ответа введите значение, получившееся в пункте b. Значение округлите до тысячных. В качестве десятичного разделителя используйте точку.
Подсказки
- Чтобы визуализировать статистически корректную интерпретацию доверительного интервала, необходимо отобразить все доверительные интервалы, полученные в симуляции (1000 штук), и генеральное среднее (удобнее всего в виде линии).
- Цветом необходимо обозначить, попало ли генеральное среднее в конкретный доверительный интервал, или нет. Для этого в данных нужно создать колонку (например, логического типа), в которой для каждого доверительного интервала будет указано, принадлежит ли ему значение среднего генеральной совокупности, или не принадлежит.
- По этой колонке можно рассчитать и долю доверительных интервалов, содержащих генеральное среднее, с помощью функции
mean()
(если колонка была типаlogical
). - Сами данные для визуализации получаются применением функции
ci
, созданной в предыдущем задании, к матрицеsim1
с помощью функцииapply()
. - Результатом работы функции
apply()
будет матрица 3×1000, которую необходимо привести к датафрейму (тибблу), предварительно транспонировав фунциейt()
— так будет удобнее с ней работать. - Также для удобства визуализации можно создать в получившемся тиббле колонку с номером выборки в симуляции.
- Если в самопроверке ответ неверный, то проверьте округление (должно быть до тысячных) и формат ввода (десятичный разделитель — точка).
#8
- Постройте визуализацию, показывающую графически смысл capture percentage. Считайте, что мы работаем с 1000-ой выборкой из симуляции
sim1
— capture percentage именно для этого доверительного интервала нас интересует. - Рассчитайте capture percentage для этого доверительного интервала.
Для самопроверки в поле ответа введите значение, получившееся в пункте b. Значение округлите до тысячных. В качестве десятичного разделителя используйте точку.
Подсказки
- Чтобы визуализировать capture percentage, аналогично предыдущему заданию, необходимо отобразить все доверительные интервалы, полученные в симуляции (1000 штук). Генеральное среднее также можно отобразить (удобнее всего в виде линии).
- Цветом необходимо обозначить те средние (с доверительными интервалами), которые попали в доверительный интервал для какого-либо отдельного среднего.
- АНалогично предыдущему заданию, необходимо создать колонку в данных визуализации. По заданию мы работаем с доверительным интервалом 1000-ой выборки симуляции, поэтому при создании колонки (например, логического типа) необходимо проверить, попадают ли средние все выборок в доверительных интервал среднего 1000-ой выборки.
- По этой колонке можно рассчитать и capture percentage рассматриваемого доверительного интервала, с помощью функции
mean()
(если колонка была типаlogical
). - Сами данные для визуализации получаются применением функции
ci
, созданной в предыдущем задании, к матрицеsim1
с помощью функцииapply()
, то есть абсолютно аналогично предыдущему заданию. - Результатом работы функции
apply()
будет матрица 3×1000, которую необходимо привести к датафрейму (тибблу), предварительно транспонировав фунциейt()
— так будет удобнее с ней работать. - Также для удобства визуализации можно создать в получившемся тиббле колонку с номером выборки в симуляции.
- Если в самопроверке ответ неверный, то проверьте округление (должно быть до тысячных) и формат ввода (десятичный разделитель — точка).
#9
Согласно формуле расчета стандартной ошибки среднего \(\text{se}_X = \frac{\text{sd}_X}{\sqrt{n}}\), стандартная ошибка должна уменьшаться с ростом объема выборки. Соответственно, границы доверительных интервалов также должны становиться более узкими.
Используя симуляцию sim2
покажите графически, что:
- стандартная ошибка среднего уменьшается с ростом объема выборки
- доверительные интервалы становятся более узкими с ростом объема выборки
Для расчета доверительного интервала используйте функцию ci
, написанную в задании 6. Для визуализации доверительных интервало в этом задании лучше подойдет geom_errorbar()
.
Описание формата инпута.
Подсказки
- Чтобы отобразить искомые закономерности, нам необходимо построить графики, на которых по оси
x
будет располагаться объем выборки (он же будет её порядковым номером — такова структура спискаsim2
), а по осиy
— стандартная ошибка или доверительный интервал. - Аналогично симуляции для проверки состоятельности оценки, необходимо выполнить функции
se()
иci()
соответственно на элементах спискаsim2
. Вновь пригодится функцияmap()
. - В случае с функцией
se()
можно написать такую функцию отдельно, а можно воспользоваться анонимными функциями. - Результат работы функции
map()
необходимо преобразовать к датафрейму (тибблу) — это будет данными для визуализации. - Далее построить соответствующие графики — для стандартной ошибки подойдет
geom_point()
, а для доверительных интервалов —geom_errorbar()
, так как он не отображает среднее и визуализация будет менее нагружена.
#10
Согласно всё той же формуле расчета стандартной ошибки среднего \(\text{se}_X = \frac{\text{sd}_X}{\sqrt{n}}\), она должна расти с увеличением дисперсии. Соответственно, границы доверительных интервалов также должны становиться более широкими.
- Сгенерируйте 200 выборок по 100 наблюдений из генеральной совокупности, в которой некоторый признак подчиняется распределению хи-квадрат (
rchisq(n, df = k)
) \(X \sim \chi^2(k)\), а параметр \(k\) меняется от 1 до 200. Сохраните результаты в списокsim3
. В качестве зерна датчика случайных чисел используйте значение 555 (set.seed(555)
).
Используя полученную симуляцию sim3
покажите графически, что:
- стандартная ошибка растет с увеличением дисперсии выборки
- доверительные интервалы становятся более широкими с увеличением дисперсии выборки
Для расчета доверительного интервала используйте функцию ci
, написанную в задании 6. Для визуализации доверительных интервало в этом задании лучше подойдет geom_errorbar()
.
Описание формата инпута.
Подсказки
- Чтобы отобразить искомые закономерности, нам необходимо построить графики, на которых по оси
x
будет располагаться значение параметра распределения хи-квадрат (он же будет её порядковым номером, а также будет связан с дисперсией — таково устройство распределения хи-квадрат), а по осиy
— стандартная ошибка или доверительный интервал. - Симуляция
sim3
для этого задания создается аналогично симуляцииsim2
, только теперь варьироваться будет не количество наблюдений, а параметр распределения (df
) — именно ему нужно передать итератора (обычноi
) из условия цикла. - Далее необходимо выполнить функции
se()
иci()
соответственно на элементах спискаsim3
. Вновь пригодится функцияmap()
. - В случае с функцией
se()
можно написать такую функцию отдельно, а можно воспользоваться анонимными функциями. - Результат работы функции
map()
необходимо преобразовать к датафрейму (тибблу) аналогично предыдущему заданию — это будет данными для визуализации. - Далее построить соответствующие графики — для стандартной ошибки подойдет
geom_point()
, а для доверительных интервалов —geom_errorbar()
, так как он не отображает среднее и визуализация будет менее нагружена.