Текст запроса:
Финансовые схемы календарных лет иногда трудно понять, потому что они зависят от даты найма, того, работает ли сотрудник в черте города и других факторов. Например, значение в столбце «Total Compensation» выглядит немного странно.
sf2015.sort('Total Compensation')
Year Type | Year | Organization Group Code | Organization Group | Department Code | Department | Union Code | Union | Job Family Code | Job Family | Job Code | Job | Employee Identifier | Salaries | Overtime | Other Salaries | Total Salary | Retirement | Health/Dental | Other Benefits | Total Benefits | Total Compensation |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Calendar | 2015 | 1 | Public Protection | FIR | Fire Department | 798 | Firefighters - Miscellaneous, Local 798 | H000 | Fire Services | H002 | Firefighter | 43833 | 0 | 0 | 0 | 0 | 0 | 0 | -423.76 | -423.76 | -423.76 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
Перевод текста запроса на русский язык:
Схемы финансового учёта календарных лет порой бывает сложно понять, поскольку они зависят от дат приёма на работу, от того, трудится ли работник в пределах городской черты и прочих факторов. К примеру, значение в графе «Общая компенсация» кажется несколько странным.
sf2015.sort("Общая компенсация")
Тип года | Год | Код группы организации | Группа организации | Код отдела | Отдел | Код профсоюза | Профсоюз | Код семейства должностей | Семейство должностей | Код должности | Должность | Идентификатор сотрудника | Оклад | Сверхурочные | Прочие оклады | Общий оклад | Пенсионное обеспечение | Здравоохранение/стоматология | Прочие льготы | Общие льготы | Общая компенсация |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Календарный | 2015 | 1 | Общественная безопасность | FIR | Пожарная охрана | 798 | Пожарные — разные специальности, местный 798 | H000 | Пожарная служба | H002 | Пожарный | 43833 | 0 | 0 | 0 | 0 | 0 | 0 | −423,76 | −423,76 | −423,76 |
… | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … |
Примечание: перевод выполнен с помощью онлайн-переводчика. Текст запроса:
Birth Weight | Gestational Days | Ratio BW/GD |
---|---|---|
116 | 148 | 0.783784 |
Перевод:
Вес при рождении | Дни беременности | Соотношение BW/GD |
---|---|---|
116 | 148 | 0,783784 |
Примечание: в запросе не было информации о том, что делать с табличными данными, поэтому они были переведены как есть.
Далее идёт текст без табличных данных.
Один взгляд на гистограмму показывает, что она выглядит довольно симметрично, плотность находится в диапазоне от 4opd до 4,5opd. Но при ближайшем рассмотрении можно увидеть, что некоторые пропорции довольно велики. Максимальное значение соотношения составляет чуть более 0,78opd, что почти вдвое больше обычного значения.
Медиана выборки даёт ощущение типичного соотношения, поскольку она не подвержена влиянию очень больших или очень малых соотношений. Медианное значение выборки составляет примерно 0,429opd.
Однако каково общее медианное значение? Мы не знаем, поэтому мы его оценим.
Наш метод будет полностью соответствовать предыдущему разделу. Мы будем брать выборку из 5000 раз, и результатом будут оценочные значения медиан 5000 выборок. 95% доверительный интервал будет представлять собой «средние 95 %» всех наших оценок.
Вспомним определённую в предыдущем разделе функцию bootstrap_median. Мы вызовем эту функцию и построим 95%-ный доверительный интервал для медианы генеральной совокупности (соотношения). Напомним, таблица ratios содержит соответствующие данные из нашей исходной выборки.
Определив функцию bootstrap_median, авторы переходят к определению функции bootstrap_mean, которая отличается только тем, что вместо медиан используются средние значения. Далее описывается процесс вычисления доверительного интервала для среднего значения возраста матерей.
В конце авторы строят эмпирическую гистограмму 5000 средних значений выборки и наносят на график 95% -ный доверительный интервал общего среднего. Исходный текст на английском языке:
The mean of the original sample (27.23 years) is also close to the center of the interval. This is not surprising, because each bootstrap sample is drawn from the same original sample. The mean of the bootstrap samples is roughly symmetrically distributed around the mean of the original sample from which they are drawn.
It should also be noted that even though the histogram of sampled ages is not completely symmetric, the empirical histogram of the second sample mean is still roughly symmetric:
baby.select('Maternal Age').hist()
Перевод на русский язык:
Среднее значение исходного образца (27,23 года) также близко к центру интервала. Это неудивительно, поскольку каждый бутстрэп-образец берётся из одного и того же исходного образца. Среднее значение бутстрэп-выборок примерно симметрично распределено относительно среднего значения исходного образца, из которого они взяты.
Также следует отметить, что хотя гистограмма выборочных возрастов не полностью симметрична, эмпирическая гистограмма среднего значения второй выборки всё ещё примерно симметрична:
baby.select("Maternal Age").hist()
Ещё необходимо обратить внимание на то, что даже если гистограмма возрастов выборки несимметрична, гистограмма эмпирических данных среднего значения вторичной выборки всё равно приблизительно симметрична в виде колокола:
baby.select('Материнский возраст').hist()
Далее будет рассмотрена центральная предельная теорема статистики. В следующем разделе мы увидим, что это за теорема.
Вы можете использовать метод бутстрэпа для построения доверительного интервала любого уровня. Например, чтобы построить 80%-ный доверительный интервал для среднего возраста в совокупности, можно выбрать «средние 80 %» вторичной выборки. Поэтому вы захотите выделить по 10 % для каждого хвоста, так что конечные точки будут представлять собой 10-й и 90-й процентили вторичной выборки:
left_80 = percentile(10, bstrap_means)
right_80 = percentile(90, bstrap_means)
make_array(left_80, right_80)
array([ 27.01192504, 27.439523 ])
resampled_means.hist(bins=15)
plots.plot(make_array(left_80, right_80), make_array(0, 0), color='yellow', lw=8);
Этот 80%-ный интервал доверия намного короче, чем 95%-ный. Он составляет примерно от 27 до 27,4 лет. Хотя это оценка более узкого интервала, вы знаете, что этот процесс даёт хороший интервал в 80 % случаев.
Предыдущий процесс дал более широкий интервал, но у нас есть более высокая степень уверенности в процессе, который его произвёл.
Чтобы получить более узкий доверительный интервал с более высокой степенью уверенности, нужно начать с большей выборки. Мы увидим почему в следующей главе.
В выборке 39 % матерей курили во время беременности.
baby.where('Maternal Smoker', are.equal_to(True)).num_rows/baby.num_rows
0.3909710391822828
Это соотношение также можно вычислить с помощью операций над массивами:
smoking = baby.column('Maternal Smoker')
np.count_nonzero(smoking)/len(smoking)
0.3909710391822828
Примечание переводчика:
np.count_nonzero(arr)
эквивалентноnp.sum(arr != 0)
.
Какой процент матерей в совокупности курил во время беременности? Это неизвестный параметр, который мы можем оценить с помощью доверительного интервала бутстрэпа. Процесс здесь аналогичен тому, который использовался для оценки среднего значения совокупности и медианы.
Мы сначала определим функцию bootstrap_proportion
, которая возвращает массив пропорций бутстрэп-выборки. Мы снова реализуем её, отредактировав определение bootstrap_median
. Единственное изменение в расчётах — использование доли курильщиков во вторичной выборке вместо медианы. Этот код предполагает, что столбец данных состоит из логических значений. Другие изменения — это просто переименование массивов, которые помогают нам читать и понимать наш код.
def bootstrap_proportion(original_sample, label, replications):
"""Возвращает массив пропорций бутстрап-выборки:
original_sample: таблица, содержащая исходный образец
label: ярлык столбца, содержащего логическое значение
replications: количество бутстрэп-выборок
"""
just_one_column = original_sample.select(label)
proportions = make_array()
for i in np.arange(replications):
bootstrap_sample = just_one_column.sample()
resample_array = bootstrap_sample.column(0)
resampled_proportion = np.count_nonzero(resample_array)/len(resample_array)
proportions = np.append(proportions, resampled_proportion)
return proportions
Давайте используем bootstrap_proportion
для создания 95 % доверительного интервала для доли курящих матерей в популяции. Код похож на соответствующий код для средних значений и медиан.
# Генерируем пропорции из 5000 бутстрэп-выборок
bstrap_props = bootstrap_proportion(baby, 'Maternal Smoker', 5000)
# Получаем границы 95% доверительного интервала
left = percentile(2.5, bstrap_props)
right = percentile(97.5, bstrap_props)
make_array(left, right)
array([ 0.36286201, 0.41908007])
Доверительный интервал составляет от 36 % до 42 %. Исходная выборка имеет долю 39 %, которая очень близка к середине интервала. Вы можете видеть это ниже:
resampled_proportions = Table().with_column(
'Bootstrap Sample Proportion', bstrap_props
)
resampled_proportions.hist(bins=15)
plots.plot(make_array(left, right), make_array(0, 0), color='yellow', lw=8);
Метод бутстрэпа — изящный и мощный инструмент. Перед его использованием важно помнить о некоторых моментах.
Начните с большой случайной выборки. Если вы этого не сделаете, метод может не сработать. Его успех основан на больших случайных выборках (поэтому он и называется методом повторной выборки). Закон больших чисел говорит, что если случайная выборка достаточно велика, это, скорее всего, правда.
Для аппроксимации распределения вероятностей статистической величины лучше повторить процесс повторной выборки много раз. Тысячи повторений дадут правильное приближение распределения медианы выборки, особенно если распределение совокупности имеет пик и не слишком асимметрично. В нашем примере мы использовали 5000 повторений, но обычно рекомендуется 10 000.
Метод процентиля бутстрэпа подходит для оценки медианы или среднего значения совокупности на основе большой случайной выборки. Однако у него есть свои ограничения, как и у всех методов оценки. Например, он не эффективен в следующих случаях:
def bootstrap_median(original_sample, label, replications):
"""Возвращает массив медиан бутстрап-выборок:
original_sample: таблица, содержащая исходный образец
label: ярлык столбца
replications: количество бутстрэп-выборок
"""
just_one_column = original_sample.select(label)
medians = make_array()
for i in np.arange(replications):
bootstrap_sample = just_one_column.sample()
resampled_median = percentile(50, bootstrap_sample.column(0))
medians = np.append(medians, resampled_median)
return medians
def bootstrap_mean(original_sample, label, replications):
"""Возвращает массив средних значений бутстрап-выборок:
original_sample: таблица, содержащая исходный образец
label: ярлык столбца
Здесь текст запроса заканчивается. Текст после этого фрагмента не переводился. **Перевод текста на русский язык:**
Доверительный интервал имеет только одну цель — оценить неизвестный параметр по данным случайной выборки. В последнем разделе мы говорили, что интервал (36%, 42%) является примерно 95%-м доверительным интервалом доли курящих в популяции. Формально это означает, что, по нашим оценкам, доля курящих в общей популяции находится между 36% и 42%, и наша процедура оценки верна примерно в 95% случаев.
Важно не поддаваться искушению использовать доверительные интервалы для других целей. Например, вспомните, что мы вычислили интервал (26,9 года, 27,6 года) как примерно 95%-й доверительный интервал среднего возраста матерей. Удивительное неправильное использование интервала заключается в выводе о том, что примерно 95% женщин находятся в возрасте от 26,9 до 27,6 лет. Вам не нужно знать доверительный интервал, чтобы понять, что это неверно — вы не ожидаете, что 95% матерей будут иметь возраст в этом небольшом диапазоне. Фактически, гистограмма возрастов выборки показывает довольно много вариаций.
```py
baby = Table.read_table('baby.csv')
baby.select('Maternal Age').hist()
Часть выборки возрастов находится в интервале (26,9, 27,6), и вы можете ожидать, что процент населения будет небольшим. Интервал просто оценивает одно число: среднее значение всех возрастов в совокупности.
Однако, помимо того, что он просто сообщает нам, насколько велик этот параметр, использование доверительного интервала для оценки параметра действительно имеет важное применение.
95%-й доверительный интервал для среднего значения совокупности составляет от 26,9 лет до 27,6 лет. Предположим, кто-то хочет проверить следующую гипотезу:
Нулевая гипотеза. Средний возраст населения составляет 30 лет. Альтернативная гипотеза. Средний возраст населения не равен 30 годам.
Тогда, если вы используете 5%-е критическое значение в качестве p-значения, вы отклоните нулевую гипотезу. Это связано с тем, что среднее значение 30 не попадает в доверительный интервал 95%. На уровне значимости 5% 30 для среднего возраста населения не является разумным значением.
Использование доверительного интервала является бинарным результатом доверительного интервала и теста: если вы проверяете, равно ли конкретное значение x среднему значению совокупности, и вы используете 5%-е критическое значение в качестве p-значения, то если x не находится в пределах 95%-го доверительного интервала среднего значения, вы отвергнете нулевую гипотезу.
Это можно определить статистически. На практике это сводится к проверке того, находится ли указанное значение в исходной гипотезе в пределах доверительного интервала.
Если вы используете 1%-е критическое значение в качестве p-значения, вам необходимо проверить, находится ли указанное значение исходной гипотезы в пределах 99%-го доверительного интервала среднего значения.
Грубо говоря, если размер выборки большой, эти утверждения также применимы к доле совокупности.
Хотя теперь у нас есть способ использовать доверительный интервал для проверки конкретной гипотезы, вы, возможно, захотите узнать, имеет ли смысл проверять гипотезу о том, что среднее значение совокупности равно 30. На самом деле, этот смысл не ясен. Но в некоторых случаях проверка такой гипотезы естественна и полезна.
Мы рассмотрим это в контексте данных, которые представляют собой подмножество информации, собранной в ходе рандомизированного контрольного исследования лечения болезни Ходжкина. Болезнь Ходжкина — это рак, который обычно поражает молодых людей. Заболевание излечимо, но лечение может быть очень сложным. Цель исследования состоит в том, чтобы найти дозу лечения рака и минимизировать неблагоприятное воздействие на пациентов.
Эта таблица содержит данные о влиянии лечения на лёгкие 22 пациентов:
hodgkins = Table.read_table('hodgkins.csv')
hodgkins
height | rad | chemo | base | month15 |
---|---|---|---|---|
164 | 679 | 180 | 160,57 | 87,77 |
168 | 311 | 180 | 98,24 | 67,62 |
173 | 388 | 239 | 129,04 | 133,33 |
157 | 370 | 168 | 85,41 | 81,28 |
160 | 468 | 151 | 67,94 | 79,26 |
170 | 341 | 96 | 150,51 | 80,97 |
163 | 453 | 134 | 129,88 | 69,24 |
175 | 529 | 264 | 87,45 | 56,48 |
185 | 392 | 240 | 149,84 | 106,99 |
178 | 479 | 216 | 92,24 | 73,43 |
(Пропущено 12 строк)
Мы сравним базовый балл и балл через 15 месяцев. Поскольку каждая строка соответствует одному пациенту, мы говорим, что выборка базового балла и выборка балла через 15 месяцев являются парными — они не являются двумя группами из 22 значений, а представляют собой 22 пары значений, по одному для каждого пациента.
На первый взгляд, вы можете видеть, что балл через 15 месяцев обычно ниже базового балла — лёгкие пациентов, по-видимому, ухудшаются через 15 месяцев лечения. Это подтверждается столбцом «drop», который представляет собой базовое значение за вычетом балла через 15 месяцев.
hodgkins = hodgkins.with_column(
'drop', hodgkins.column('base') - hodgkins.column('month15')
)
hodgkins
height | rad | chemo | base | month15 | drop |
---|---|---|---|---|---|
164 | 679 | 180 | 160,57 | 87,77 | 72,8 |
168 | 311 | 180 | 98,24 | 67,62 | 30,62 |
173 | 388 | 239 | 129,04 | 133,33 | -4,29 |
157 | 370 | 168 | 85,41 | 81,28 | 4,13 |
160 | 468 | 151 | 67,94 | 79,26 | -11,32 |
170 | 341 | 96 | 150,51 | 80,97 | 69,54 |
163 | 453 | 134 | 129,88 | 69,24 | 60,64 |
175 | 529 | 264 | 87,45 | 56,48 | 30,97 |
185 | 392 | 240 | 149,84 | 106,99 | 42,85 |
178 | 479 | 216 | 92,24 | 73,43 | 18,81 |
(пропущено 12 строк)
hodgkins.select('drop').hist(bins=np.arange(-20, 81, 20))
np.mean(hodgkins.column('drop'))
28,615909090909096
Но может ли это быть результатом случайной вариации? Похоже, что нет, но данные взяты из случайной выборки. Может ли быть так, что в целом населении среднее снижение равно нулю?
Чтобы ответить на этот вопрос, мы можем установить две гипотезы:
Нулевая гипотеза: среднее значение выборки равно нулю. Альтернативная гипотеза: среднее значение выборки не равно нулю.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )