В этом параграфе мы узнаем, какие факторы повлияли на «живучесть» персонажей «Игры престолов». В этом нам поможет логистическая регрессия — ещё один статистический тест, в котором зависимая переменная принимает бинарные значения.
И снова — прежде чем мы начнём, два важных нюанса:
- В этом параграфе мы дадим теорию, все вычисления мы сделаем в Python в следующем параграфе.
- Это последний сложный параграф учебника. Но вам не привыкать к трудностям, вы справитесь!
Оценка вероятности и отношения шансов
Чтобы понять суть логистической регрессии, нужно вспомнить школьные знания о комбинаторике и теории вероятности. Это несложно.
В многих настольных играх встречается шестигранный игральный кубик. Давайте рассчитаем, насколько вероятно выпадение конкретного числа на кубике. Это то, что в теории вероятности называется событием
. Для каждого события мы можем оценить его вероятность.
Для игрального кубика всё просто. Нам нужно узнать сколько всего событий возможно: у кубика шесть граней, поэтому возможно шесть событий. Дальше нужно понять, сколько событий нас устраивает, а сколько — нет. Если нам нужна единица - успехом будет выпадение только единицы. Если нам нужно нечётное число, то их на кубике три. Дальше мы просто составляем дробь, где в числителе нужные нам события, а в знаменателе — все события. На изображении мы видим, что вероятность выпадения каждого числа — одна шестая или 16,6%. Для нечетных чисел вероятность — одна вторая или 50%.
Ничего не напоминает? Верно — это биномиальный тест из параграфа 3.2, просто сформулированный другими словами.
Отношение устраивающих и всех исходов часто называют отношением шансов. Мы можем использовать его вместо оценки вероятности. Равноценно сказать: «нечётное число выпадет в трёх шансах из шести» или «нечётное число выпадает с вероятностью 50%».
На иллюстрации выше мы видим таблицу, которая должна вам напомнить о тесте хи-квадрата. Отношение шансов для определённого события, о котором мы говорили выше, так же может быть выведено из неё.
Остается сделать последний шаг и сказать, что отношение шансов может использоваться для моделирования увеличения вероятности события по мере изменения зависимых переменных. Один из вариантов такого моделирования — логистическая регрессия. Рассмотрим её подробнее.
Оценка логистической регрессии
- Тип: непараметрический.
- Применяется: когда мы хотим оценить связь между бинарной зависимой переменной и одной или несколькими независимыми переменными.
- Проверяет: есть ли связь между бинарной переменной и каждой из независимых переменных.
- Данные: зависимая переменная, которая принимает два значения, и независимые переменная.
- Нулевая гипотеза: коэффициент при каждой из независимых переменных равен нулю (т.е. нет связи между зависимой и независимой переменной).
🔍 Логистическая регрессия — это тип регрессии, в которой мы оцениваем наличие связи между бинарной зависимой переменной и одной или несколькими независимыми переменными.
Хотя логистическая регрессия может быть расширена и дополнена, в этом параграфе мы остановимся только на одной и основной из них — бинарной. Если мы говорим «логистическая регрессия», то имеем в виду «бинарную логистическую регрессию».
Возьмем набор данных с информацией о смерти персонажей на момент финала первого сезона «Игры Престолов». Зависимая переменная принимает два значения: «Мертв - 0, жив - 1». Мы знаем несколько дополнительных характеристик персонажей: титул, гендер и возраст. Мы хотим понять, какие из этих характеристик связаны с тем, что персонаж остался в живых (назовём это положительным исходом).
Имя |
Титул (не дворянин - 0; дворянин - 1) |
Гендер (М/Ж) |
Возраст |
Мертв - 0; Жив - 1 |
Джон Сноу |
0 |
М |
17 |
1 |
… |
… |
… |
… |
… |
Маргери Тирелл |
1 |
Ж |
16 |
1 |
Эддард Старк |
1 |
М |
35 |
0 |
Можно оценивать связь отношения шансов того, что какое-то событие случится (зависимая переменная) и одного или нескольких факторов (снова независимые переменные).
Мы не будем касаться того, как устроена сама функция логистической регрессии. Скажем только, что для каждой независимой переменной в результате вычисления мы получаем логарифм отношения шансов между значениями независимой переменной и положительным исходом зависимой переменной. Сам логарифм сложно использовать напрямую, тут нас интересует только знак. Если он положительный, то и связь положительная. Это значит, что есть связь между увеличением независимой переменной и вероятностью положительного исхода. Наоборот, если знак отрицательный, то чем больше независимая переменная, тем меньше вероятность положительного исхода.
Мы можем получить из логарифма отношение шансов. Эта делается с помощью операции обратной логарифмированию — экспоненцирования. В таком случае мы можем сказать для бинарных переменных, что если персонаж — дворянин, то при прочих равных его шанс выжить повышается на 10%. В случае непрерывных переменных с увеличением возраста на 1 год шанс персонажа умереть повышается на 3%.
Приведём ещё один пример. Например, мы можем оценить вероятность регистрации посетителей страницы (событие — нажали на кнопку «Зарегистрироваться» или нет) в зависимости от следующих условий:
- длительность загрузки страницы;
- использование одного из трёх вариантов заголовков;
- расположение кнопки «Зарегистрироваться».
Может оказаться так, что уменьшение загрузки страницы на одну секунду увеличивает вероятность регистрации в два раза (на 200%). Или что один из заголовков уменьшает вероятность регистрации вдвое (на 50%).
Зависимая переменная логистической регрессии
Допущения логистической регрессии практически полностью совпадают с теми, которые есть для линейной. Вот список:
- зависимая переменная должна быть бинарной, обычно её кодируют как ноль и один;
- независимость наблюдений друг от друга;
- отсутствие мультиколлинеарности;
- достаточный размер выборки (хотя бы тридцать наблюдений);
- отсутствие выбросов.
Все эти допущения за исключением первого мы рассматривали в параграфе 10.2, поэтому не будем останавливаться на них.
Важно не путать независимость наблюдений, независимые переменные и зависимую переменную.
🔍 Независимость переменных — никакие наблюдения в наборе данных никак не влияют друг на друга и не связаны между собой
🔍 Независимая переменная — переменная, которая выбрана для оценки её эффекта на зависимую переменную.
🔍 Зависимая переменная — переменная, изменения которой оцениваются в связи с изменениями независимой переменной.
Давайте разберемся с первым из них, о требованиях к зависимой переменной. Проиллюстрируем это снова на примере «Игры престолов». Визуализируем количество серий, в которых появлялся персонаж и то, остался ли он в сериале жив или мертв. Добавим линию линейной регрессии.
У прямой есть наклон: содержательно она показывает, что чем больше персонажа показывают, тем меньше его шанс умереть.
Тут вы могли бы спросить: «Но почему тогда мы не использовали для расчёта линейную регрессию?» Если коротко — линарная переменная не является нормально распределённой по определению. Поэтому-то мы и используем логистическую регрессию.
Её график выглядит вот так:
Чисто визуально видно главное различие с линейной регрессией: изгибы сверху и снизу. Благодаря им, значения близкие к крайним рассматриваются соответственно как более или менее вероятные.
Выбор лучшей модели
Напомним, что в предыдущем и этом параграфе наша логика изменилась. Раньше мы подходили к тестам формально: есть результат — отлично, нет — ну ладно. Сейчас результат появляется из сравнения нескольких моделей между собой. Лучшую мы называем результатом. У нас может не быть результата только в одном случае: ни одна из гипотез для каждой нашей модели не подтвердилась.
Качество модели определяется мерой того, насколько хорошо она ложится на данные и сколько дисперсии она объясняет. Показатель «качества укладывания на данные», называется наибольшим правдоподобием.
🔍Наибольшее правдоподобие — мера того, насколько хорошо модель ложится на данные. Чем ближе к нулю его показатель, тем лучше модель объясняет данные.
Мы говорили, что для линейной регрессии используется доля объясненной дисперсии — . Для логистической регрессии его невозможно вычислить по аналогии, поэтому используются альтернативные метрики. Один из распространенных — это псевдо- McFadden. Используется также несколько альтернативных. Разница между ними в консервативности оценок. Упомянутый выше McFadden — один из самых консервативных.
Остается вопрос о том, какое значение мы считаем достаточным: можно отталкиваться от 0.2
. Это консенсусное значение, которое зависит от дисциплинарных договоренностей. Ориентироваться на него стоит с большой осторожностью, так как оно сильно зависит от размера выборки.
Точность модели
Точность логистической модели можно визуализировать с помощью ROC-кривой. Это график, который показывает долю верно классифицированных признаков, исходя из выбранных зависимых переменных. Он показывает долю верноположительных и вероноотрицательных случаев классификации, которые выстроены на основе построенной модели.
Вернемся к «Игре Престолов». Давайте посмотрим, как выглядит ситуация, когда переменная возраста плохо предсказывает вероятность выживания персонажа в сериале.
Чем ближе кривая находится к пересекающей прямой, тем хуже переменная предсказывает результат. Рассмотрим пример обратной ситуации.
Так выглядит почти идеальное предсказание. Расстояние между пересекающей прямой и кривой гораздо больше. Этот график визуализирует показатель AUROC (Area Under Receiving Operating Characteristic)
— площадь под ROC-кривой. Он распределен от 0.5 до 1. По факту ситуации, когда AUROC = 1 не случается.
🔍AUROC — показатель, отражающий насколько точно непрерывная переменная предсказывает зависимую переменную в логистической модели.
Можно сказать, что переменная удовлетворительно предсказывает зависимую переменную при AUROC >= 0.8
. Если мы получаем значение меньше, это рождает сомнение в том, что переменная очень хороша для предсказания.
Отлично, с теорией мы разобрались. В следующем параграфе перейдём к практике и рассчитаем другие факторы, которые влияют на выживаемость персонажей «Игры престолов».