Выбрано из dataquest, автор: Кристиан Паскуаль, составлено сердцем машины, участие: Ван Шутин, Сыюань.
Теория вероятностей и статистика являются основой машинного обучения, но многие новички плохо их знают. В этой статье представлены основные понятия, связи и использование вероятности и статистики, а в качестве примера используется нормальное распределение, чтобы показать, что такое распределение вероятностей, функция распределения и эмпирические правила. В этой статье также дается концептуальное объяснение центральной предельной теоремы и того, почему нормальное распределение так важно в статистике в целом. Кроме того, многие эксперименты в этой статье могут быть реализованы на Python, и читатели, не знающие Python, также могут их пропустить.
Чтобы изучить статистику, необходимо сначала понять вероятность. Вероятность включает в себя столько формул и теорий, что в ней легко заблудиться, но она играет важную роль в работе и повседневной жизни. Ранее мы обсуждали некоторые основные понятия описательной статистики, а теперь исследуем взаимосвязь между статистикой и вероятностью.
Предварительные условия:
Как и в предыдущем блоге, эта статья не требует от читателя статистических знаний, но требует хотя бы базового понимания Python. Учитывая, что читатель может мало знать о циклах for и списках, мы кратко представим их ниже.
Что такое вероятность?
На самом базовом уровне вероятность отвечает на вопрос: «Какова вероятность того, что событие произойдет?» Чтобы вычислить вероятность события, мы также рассматриваем все другие возможные события.
Типичное представление вероятностной задачи — подбрасывание монеты. В процессе подбрасывания монеты возможны только два исхода:
1. Лицом вверх
2. Изнаночной стороной вверх
Эти два исхода образуют выборочное пространство, набор всех возможных исходов. Чтобы вычислить вероятность события, мы подсчитываем количество раз, когда это событие (например, подбрасывание орла монеты) и делим его на общее количество испытаний. Таким образом, вероятность говорит нам, что вероятность того, что монета выпадет либо орлом, либо решкой, равна 1/2. Рассматривая возможные события, вероятность может дать нам основу для предсказания того, как часто будут происходить события.
Однако, даже если результат кажется очевидным, если мы действительно попытаемся подбросить некоторые монеты, мы, вероятно, получим либо слишком высокую, либо слишком низкую вероятность выпадения орла. Предполагая, что подбрасывать монету несправедливо, что мы можем сделать? Сбор данных! Мы можем использовать статистику для расчета вероятностей на основе реальных наблюдений и сравнения их с идеальными вероятностями.
От статистики к вероятности
Мы можем получить данные, подбросив монету 10 раз и подсчитав количество выпавших орлов. Мы будем рассматривать 10 бросков монеты как эксперимент, а количество орлов будет точкой данных. Возможно, количество хедз-апов не является «идеальным» 5, но не волнуйтесь, потому что испытание — это всего лишь точка данных.
При множественных испытаниях мы ожидаем, что средняя вероятность того, что все испытания выпадут орлом, будет близка к 50%. Код ниже имитирует 10, 100, 1000 и 1000000 попыток, а затем вычисляет среднюю частоту хедз-ап. На рисунке ниже показан этот процесс.
import random
def coin_trial():
heads = 0
for i in range(100):
if random.random() <= 0.5:
heads +=1
return heads
def simulate(n):
trials = []
for i in range(n):
trials.append(coin_trial())
return(sum(trials)/n)
simulate(10)
>> 5.4
simulate(100)
>>> 4.83
simulate(1000)
>>> 5.055
simulate(1000000)
>>> 4.999781
Функция coin_trial представляет собой симуляцию 10 подбрасываний монеты. Он использует функцию random() для генерации случайного числа с плавающей запятой от 0 до 1, если число с плавающей запятой меньше 0,5, оно увеличивает орел (лицевой стороной вверх). Затем функция имитации повторяет испытания столько раз, сколько необходимо, и возвращает среднее количество орлов по всем испытаниям.
Интересны результаты моделирования подбрасывания монеты. Во-первых, смоделированные данные показывают, что среднее количество голов близко к оценке вероятности. Во-вторых, по мере увеличения числа испытаний средний результат становится ближе к ожидаемому. При выполнении 10 симуляций есть небольшая ошибка, но при количестве испытаний 1 000 000 ошибка почти полностью исчезает. По мере увеличения числа испытаний отклонение от ожидаемого среднего уменьшается. Звучит знакомо, не так ли?
Конечно, мы могли бы сами подбросить монетку, но могли бы сэкономить много времени, смоделировав этот процесс в коде Python. По мере того, как мы получаем все больше и больше данных, реальный мир (результаты) начинает совпадать с идеальным миром (ожиданиями). Таким образом, имея достаточно данных, статистика позволяет нам оценивать вероятности на основе реальных наблюдений. Вероятность предоставляет теорию, а статистика предоставляет инструменты для проверки этой теории с использованием данных. Таким образом, числовые характеристики статистических выборок, особенно среднее значение и стандартное отклонение, становятся суррогатом теории.
Вы можете спросить: «Зачем мне использовать суррогат, если я уже могу вычислять теоретические вероятности?» Подбрасывание монеты — очень простой пример, но некоторые из наиболее интересных вероятностных задач вычислить не так просто. Какова вероятность того, что человек со временем заболеет? Когда вы едете, какова вероятность отказа критического компонента автомобиля?
Не существует простого способа рассчитать вероятности, поэтому мы должны полагаться на данные и статистику. Учитывая больше данных, мы больше уверены в наших результатах, что рассчитанные результаты представляют истинную вероятность того, что эти важные события произойдут.
Допустим, я работающий сомелье и перед покупкой хочу разобраться, какие вина лучше. У меня есть много данных, поэтому мы будем использовать статистику для принятия решений.
данные и распространение
Прежде чем обратиться к вопросу о том, какое вино лучше, нужно обратить внимание на характер данных. Интуитивно мы хотим оценивать вина лучше, но проблема в том, что оценки обычно распределяются по диапазону. Так как же нам сравнить оценки разных типов вин и определить, в какой степени одно лучше другого?
Существование нормального распределения (также известного как распределение Гаусса) является особенно важным явлением в областях вероятности и статистики. Нормальное распределение выглядит так:
Наиболее важными свойствами нормального распределения являются его симметрия и форма, а также его широкая общность. Мы продолжаем называть это дистрибутивом, но что такое дистрибутив? Мы можем интуитивно думать, что распределение вероятностей — это все возможные события в задаче и их соответствующие вероятности.Например, в задаче «подбрасывание монеты» два события, «орел» и «решка», и их соответствующая вероятность 1/2 могут сформировать дистрибутив.
В теории вероятности нормальное распределение — это конкретное распределение всех событий и соответствующих им вероятностей. Ось X представляет события, для которых мы хотим знать вероятность, а ось Y — это вероятность, связанная с каждым событием — от 0 до 1. Здесь мы не будем подробно обсуждать распределения вероятностей, но важно знать, что нормальное распределение является особенно важным распределением вероятностей.
В статистике нормальное распределение — это распределение значений данных. Здесь ось x — это значения данных, а ось y — количество этих значений. Вот два графика одного и того же нормального распределения, но помеченные в соответствии с вероятностью и статистикой:
При нормальном распределении вероятностей наивысшая точка соответствует событию с наибольшей вероятностью наступления. Чем дальше от этого события, тем больше падает вероятность, и оно принимает форму колокола. В нормальном распределении статистики самая высокая точка представляет собой среднее, аналогично ситуации с вероятностью, чем дальше от среднего, тем сильнее снижается частота. То есть точки на обоих концах имеют чрезвычайно большие отклонения от среднего, а выборки очень редки.
Если вы подозреваете, что существует другая связь между вероятностью и статистикой через нормальное распределение, то вы угадали! Мы рассмотрим эту важную взаимосвязь позже в этой статье, но не волнуйтесь.
Поскольку мы намерены использовать распределение показателей качества для сравнения различных вин, нам необходимо задать некоторые критерии для поиска интересующих вин. Мы соберем данные о винах, а затем выделим некоторые интересующие нас показатели качества вин.
Для получения данных нам понадобится следующий код:
import csv
with open("wine-data.csv", "r", encoding="latin-1") as f:
wines = list(csv.reader(f))
Данные представлены ниже в табличной форме. Нам нужен столбец точек, поэтому мы выделим его в отдельный список. Винный эксперт сказал нам, что венгерский белый Токай был великолепен, а друг предложил начать с итальянского Ламбруско. Мы можем сравнить эти вина с данными!
Если вы не помните, как выглядели данные, вот краткая таблица для справки и освежения.
# Extract the Tokaji scores
tokaji = []
non_tokaji = []
for wine in wines:
if points != '':
points = wine[4]
if wine[9] == "Tokaji":
tokaji.append(float(points))
else:
non_tokaji.append(points)
# Extract the Lambrusco scores
lambrusco = []
non_lambrusco = []
for wine in wines:
if points != '':
points = wine[4]
if wine[9] == "Lambrusco":
lambrusco.append(float(points))
else:
non_lambrusco.append(float(points))
Если мы визуализируем каждый набор показателей качества как нормальное распределение, мы можем сразу сказать, являются ли два распределения одинаковыми, основываясь на том, где они лежат, но этот подход быстро сталкивается с проблемами, как показано ниже. Поскольку у нас много данных, предполагается, что баллы будут распределены нормально. Хотя это предположение подходит здесь, на самом деле это опасно, как будет обсуждаться позже.
Когда два распределения оценок слишком сильно перекрываются, лучше предположить, что ваши оценки относятся к одному и тому же распределению, а не к разным. С другой стороны, когда два распределения не перекрываются, можно с уверенностью предположить, что они из разных распределений. Проблема в том, что некоторые случаи перекрытия являются особыми. Например, крайние максимумы одного распределения могут пересекаться с крайними минимумами другого распределения, и в этом случае как мы можем определить, получены ли оценки из разных распределений.
Итак, мы снова ожидаем, что нормальное распределение даст нам ответ и устранит разрыв между статистикой и вероятностью.
Возвращаясь к нормальному распределению
Нормальное распределение имеет решающее значение для вероятности и статистики по двум причинам: центральная предельная теорема и критерий 3σ.
Центральная предельная теорема
В предыдущем разделе мы показали, что если эксперимент с подбрасыванием монеты повторить десять раз, то средний результат выпадения орла будет близок к идеальным 50%. По мере увеличения числа испытаний средний результат будет приближаться к истинной вероятности, даже если отдельные испытания сами по себе не идеальны. Эта идея, или математически называемая конвергенцией в целом, является ключевым принципом центральной предельной теоремы.
В примере с подбрасыванием монеты при 10 подбрасываниях монеты мы оцениваем количество выпадений орла за испытание как 5. Это оценка, потому что мы знаем, что результат не так уж идеален (т. е. не выпадает 5 хедз-ап каждый раз). Если сделать много оценок, то распределение этих оценок будет иметь вид нормального распределения по центральной предельной теореме, а вершины этого распределения или математическое ожидание оценочного значения будут совпадать с истинным значением. Заметим, что в статистике вершина нормального распределения совпадает со средним значением. Таким образом, учитывая количество «испытаний» в качестве данных, Центральная предельная теорема утверждает, что мы можем оценить вероятную форму распределения на основе данных, даже если мы не знаем истинную вероятность.
Центральная предельная теорема позволяет нам узнать, что среднее значение многих испытаний будет близко к истинному среднему, а критерий 3σ скажет нам, сколько данных будет распределено вокруг этого среднего.
3σ Критерий
Правило 3σ (также известное как эмпирическое правило или правило 68-95-99,7) — это выражение того, сколько наблюдаемых нами данных находится в пределах определенного расстояния от среднего значения. Обратите внимание, что стандартное отклонение (также известное как «сигма») — это среднее расстояние между наблюдениями за данными и средним значением.
Критерий 3σ утверждает, что при нормальном распределении 68 % наблюдений попадают в пределы одного стандартного отклонения от среднего, 95 % — в пределах двух стандартных отклонений и 99,7 % — в пределах трех стандартных отклонений. Для получения этих значений требуется много сложной математики, поэтому это выходит за рамки этой статьи. Важно знать, что критерий 3σ позволяет нам понять, сколько данных содержится в разных интервалах нормального распределения. На рисунке ниже показано, что означает критерий 3σ.
Мы свяжем эти концепции с данными о вине. Гипотетически, как сомелье, мы хотим знать, насколько популярны Шардоне и Пино Нуар по сравнению с обычными винами. Мы собрали тысячи отзывов о вине, и, согласно центральной предельной теореме, средний балл этих отзывов должен соответствовать «истинному» представлению о качестве вина (по оценке рецензентов).
Хотя критерий 3σ говорит о том, какая часть ваших данных находится в пределах диапазона известных значений, он также говорит о том, насколько редки экстремальные значения. С любыми значениями, которые отклоняются на три стандартных отклонения от среднего, следует обращаться с осторожностью. С помощью критерия 3σ и Z-показателя мы можем, наконец, численно измерить степень различия между Шардоне, Пино Нуар и обычными винами.
Z-score
Z-оценка — это простой расчет, который отвечает на вопрос: «Учитывая точку данных, сколько стандартных отклонений она составляет от среднего значения?» Вот уравнение Z-оценки:
Сама Z-оценка не дает вам много информации. Но это очень ценно по сравнению с Z-таблицей, в которой указана кумулятивная вероятность стандартного нормального распределения до заданного Z-показателя. Стандартное нормальное распределение — это нормальное распределение со средним значением 0 и стандартным отклонением 1. Z-оценка позволяет нам ссылаться на Z-таблицу, даже если наше нормальное распределение не является стандартным.
Кумулятивная вероятность (или функция распределения вероятностей) представляет собой сумму вероятностей всех значений, предшествующих данной точке. Простой пример — само среднее значение. Среднее значение — это точно средняя часть нормального распределения, поэтому мы знаем, что сумма всех вероятностей слева направо до среднего составляет 50%. Если вы хотите рассчитать кумулятивную вероятность между стандартными отклонениями, на самом деле появляется значение критерия 3σ. На рисунке ниже представлена визуализация кумулятивной вероятности.
Сумма всех вероятностей должна равняться 100%, поэтому мы используем Z-таблицу для расчета вероятностей с обеих сторон Z-показателя при нормальном распределении.
Нам полезен такой вид расчета вероятности для определенного Z-показателя. Это позволяет нам перейти от вопроса «Насколько далеко значение от среднего?» к «Насколько вероятно, что значение находится на определенном расстоянии от среднего значения того же набора наблюдений?» Следовательно, от Z-показателя и Z-таблица Полученные вероятности ответят на наш вопрос о вине.
import numpy as np
tokaji_avg = np.average(tokaji)
lambrusco_avg = np.average(lambrusco)
tokaji_std = np.std(tokaji)
lambrusco = np.std(lambrusco)
# Let's see what the results are
print("Tokaji: ", tokaji_avg, tokaji_std)
print("Lambrusco: ", lambrusco_avg, lambrusco_std)
>>> Tokaji: 90.9 2.65015722804
>>> Lambrusco: 84.4047619048 1.61922267961
Похоже, рекомендация друга не очень хорошая! Для целей этой статьи мы рассматриваем баллы для Токая и Ламбруско как нормально распределенные. Следовательно, средний балл для каждого вина будет представлять их «истинный» балл с точки зрения качества. Мы рассчитаем Z-показатель, чтобы увидеть, насколько средний токайский белый отличается от среднего значения для ламбруско.
z = (tokaji_avg - lambrusco_avg) / lambrusco_std
>>> 4.0113309781438229
# We'll bring in scipy to do the calculation of probability from the Z-table
import scipy.stats as st
st.norm.cdf(z)
>>> 0.99996981130231266
# We need the probability from the right side, so we'll flip it!
1 - st.norm.cdf(z)
>>> 3.0188697687338895e-05
Ответ заключается в том, что разрыв небольшой. Но что конкретно это означает? Бесконечно малое число таких вероятностей может потребовать подробного объяснения.
Предположим, что разницы в качестве Токая и Ламбруско нет. Другими словами, качество обоих примерно одинаково. Опять же, в оценках этих вин будет некоторый разброс из-за индивидуальных различий между винами. Согласно центральной предельной теореме, если мы построим гистограмму оценок этих двух вин, она даст нормальное распределение оценок качества.
Теперь, имея некоторые данные, мы можем рассчитать среднее значение и стандартное отклонение для этих двух вин. Эти значения проверяют, схожи ли они по качеству. Мы возьмем за основу баллы Ламбруско и сравним средние баллы для токайских белых, но легко сделать и наоборот. Единственное отличие — отрицательный Z-показатель.
Z-оценка 4,01! Предполагая, что Tokaj и Lambrusco имеют одинаковое качество, по критерию 3σ 99,7% данных должны находиться в пределах 3 стандартных отклонений. Поскольку Токай и Ламбруско считаются продуктами одинакового качества, вероятность того, что они будут далеки от среднего значения показателей качества, очень и очень мала. Эта вероятность настолько мала, что мы должны учитывать обратное: если бы Токай отличался от Ламбруско, то получилось бы другое распределение баллов.
Здесь мы тщательно подобрали формулировку: я не говорил «Токай лучше, чем Ламбруско». Потому что мы рассчитали эту вероятность, которая микроскопически мала, но не равна нулю. Если быть точным, то можно сказать, что Tokaj и Lambrusco точно не из одного дистрибутива, но нельзя сказать, что один лучше или хуже другого.
Такого рода рассуждения подпадают под категорию статистики логического вывода, и в этой статье мы просто хотим дать краткое введение. В этой статье представлено множество концепций, поэтому, если вы чувствуете небольшую головную боль, вы можете вернуться и не торопиться.
Суммировать
Мы начнем с описательной статистики, а затем свяжем ее с вероятностью. На основе вероятностей мы разработали метод, позволяющий количественно показать, относятся ли два набора оценок к одному и тому же распределению. Следуя этому подходу, мы сравнили два вина, рекомендованных другими, и обнаружили, что они, вероятно, имеют разное распределение оценок качества. Тем не менее, одно вино может быть лучше другого.
Статистика — это не только прерогатива статистиков. Интуитивное понимание широко используемых статистических методов поможет вам в построении собственных теорий, а также вашей способности проверять эти теории позже. Мы едва затронули здесь логическую статистику, но те же самые идеи помогут понять принципы статистики. В этой статье обсуждаются преимущества нормального распределения, но статистики также разработали методы для ненормальных распределений.
Оригинальная ссылка:woohoo.data quest.IO/blog/BASIC-…