Использование линейной регрессии для определения факторов арбитража заработной платы в эпоху Moneyball

Для бейсбольных команд поиск лучших игроков - это главная задача, но стараться не переплачивать тем, в которых вы ошибаетесь, часто бывает спасительной благодатью. Часто клуб рискует не тем игроком и в конечном итоге буквально за него платит. Поэтому я решил попытаться найти способ предсказать, какие факторы будут определять, какой будет зарплата игрока после арбитража.

После первых трех сезонов неподписанный новичок может поступить в арбитраж с более высокой зарплатой. Арбитр решит, есть ли у команды или игрока более разумное предложение заработной платы. Принимаются во внимание свидетельства (например, прошлые результаты и тенденции), и это может так или иначе повлиять на арбитра. Цель арбитража - получить желаемую зарплату, имея при этом доказательства, подтверждающие ее. Моя работа над этим проектом не заключается в прогнозировании зарплаты игрока. Команды работают с разными бюджетами, поэтому было бы сложно принять во внимание рынок каждой отдельной команды и ее готовность тратить. Моя работа, скорее, состоит в том, чтобы определить, какие факторы являются наиболее важными при определении зарплаты для игрока четвертого года обучения.

Какой показатель приносит новичку больше всего денег?

Это интересная задача из-за возрождения бейсбола за последние два десятилетия или около того. Данные стали играть огромную роль в бейсболе, а это означает, что закономерности и статистика, которые когда-то считались второстепенными, теперь стали основными показателями. Хоумран больше не король. Эпоха Moneyball вытеснила Longball.

Моим источником был набор данных по бейсболу Шона Лахмана, который варьировался с конца 1800-х до 2019 года. Поскольку я хотел пройти этот путь, мне нужно было убедиться, что я выбрал игроков из нынешней эпохи. Были включены только игроки, дебютировавшие после 2000 года. Девятнадцать лет достаточно, чтобы значительная часть игроков в этом наборе данных сыграла полную карьеру.

Первым шагом была очистка данных. Есть много информации, которая бесполезна и была упущена, включая место рождения, место смерти и год рождения.

Данные поступали в нескольких разных файлах. Основной набор данных содержал биографическую информацию, в то время как зарплата, качка, ватин, ватин после сезона, питч после сезона, выставление на поле и награды были названы в соответствии с их содержанием. Цель состояла в том, чтобы усреднить статистику за первые три года и выделить зарплату за четвертый сезон. Предположительно, этот четвертый сезон станет продуктом арбитража.

Этот процесс состоял из серии шагов, перечисленных ниже:

  1. Очистка данных
  2. EDA (Исследовательский анализ данных)
  3. Моделирование

1. Очистка данных

Во-первых, я хочу поговорить о вспомогательных функциях, которые я буду использовать через импорт. Импорт моих собственных функций был моим любимым проектом. Это специализированные, но я все больше и больше работаю над созданием обобщенных функций, которые я могу использовать снова и снова.

Первая функция заключалась в сборе среднего значения статистики за первые три года. Вторая функция - обособление зарплаты за четвертый год. Я использую их при обработке данных. Вы можете найти их здесь".

Я нашел зарплату за четвертый год по игрокам. Это должна была быть целевая переменная, для которой я смоделировал позже.

При использовании этой команды groupby, если игрок не играет четвертый сезон, зарплата будет введена как ноль. Мы можем легко отфильтровать игроков, которые не попали бы в арбитраж таким образом.

Следующим шагом было создание функций как для питчеров, так и для отбивающих на основе их статистики. Сюда входили такие вещи, как процент попаданий, ходов + ударов по количеству поданных подач (хлыст) и т. Д. Это гораздо более полные статистические данные, которые популярны в бейсболе для объяснения важности игрока. Поскольку они основаны на других статистических данных, в будущем могут возникнуть проблемы с корреляцией, которые нам, возможно, придется исправить.

Затем я сгруппировал игроков по статистике. У меня были кувшины и бэттеры, так что я сделал и то, и другое. Вот пример отбивающего.

Приведенный выше код рассматривает каждую из непрерывных переменных и создает среднее значение за первые три года карьеры новичка. Это сокращает количество наблюдений до трети. Это повторилось и со всеми непрерывными переменными для питчеров.

Далее мы начнем с категориальных переменных. Сюда входят награды, корзины для роста, положение и руки. Для этого мы используем фиктивные переменные и горячее кодирование. Этот процесс просто означает, что мы присваиваем целочисленное значение положительному регистру в каждой переменной. «1», если человек левша против правши или для должности - это также означает взрыв переменных.

После этого действия в наборе данных есть запись для каждого игрока, который дебютировал после 2000 года и сыграл не менее четырех сезонов. В нем также есть среднее число для каждой из их первых трехлетних статистических данных, а также показатель того, что они выиграли награду, и другие важные показатели, такие как отбивание и бросок.

2. EDA

На этапе анализа данных проекта теперь прерогативой является поиск в данных тенденций, закономерностей или более глубокого понимания целевой переменной. Первым делом можно взглянуть на распределение зарплат игроков по должностям. Поскольку у этого есть девять возможных категорий, мы будем использовать коробчатую диаграмму.

Судя по сюжету выше, зарплаты очень похожи. Исключения говорят сами за себя - аутфилдеры и питчеры с гораздо большей вероятностью добьются хороших результатов арбитража. Мы можем провести дополнительный анализ и посмотреть, влияют ли удары за игру на такой результат.

На этом графике мы видим, что ловцы в среднем занимают нижние позиции по количеству просмотров за игру. Однако остальные позиции гораздо менее ясны, поэтому нам нужно продолжить поиск. Давайте посмотрим, с какой стороны били пластинчатое тесто.

Из этого графика мы видим, что бэттеры для левшей доступны по более высокой цене. Этот график не говорит нам ничего больше, поэтому давайте углубимся и посмотрим на среднюю зарплату левшей и правшей.

Отсюда мы видим, что средняя зарплата примерно одинакова для двух категорий. Теперь мы можем провести несколько статистических тестов. Давайте сначала проведем общий тест корреляции. Этот график покажет нам, какие из функций сообщают нам ту же информацию, и отбросит модели линейной регрессии.

Как мы думали, есть основные источники корреляции в функциях. Этого следовало ожидать, потому что некоторые функции основаны на столбцах исходного набора данных. Мы собираемся использовать модель Ridge или Lasso для выбора объектов, так что давайте продолжим.

Далее приступаем к статистическим испытаниям. Во-первых, мы должны внести изменения в наш набор данных. Мы делаем это из-за распределения зарплаты. Нам нужно получить распределение как можно ближе к нормальному. Для этого метода мы регистрируем преобразование функции заработной платы. После преобразования распределение выглядит так:

3. Моделирование

Поскольку мы собираемся использовать модель, чтобы попытаться найти функции, которые лучше всего объясняют целевую переменную, мы будем использовать R² в качестве нашей метрики. Это означает, что функции объясняют определенный процент дисперсии целевой переменной. Процесс моделирования во многом является стандартной процедурой подготовки этого проекта. Наш первый шаг - отделить питчеров от бьющих. Внутренне разные позиции и статистика только сбивают друг друга во время модели.

Первый шаг - это тест, тренировка, сплит для питчеров и бэттеров. После этого я запустил скейлер на разных участках. Важно, чтобы это было сделано после разделения, чтобы обучающие и тестовые наборы не взаимодействовали друг с другом и никоим образом не влияли друг на друга.

Баттерс

В итоге мы запустили четыре модели для питчеров и бэттеров. Итоговые оценки отбивающих выглядят так.

Самой производительной моделью была модель Lasso CV (перекрестная проверка), которая помогла с выбором функций. Коэффициенты, прошедшие строгий тест на важность, показаны на следующем графике.

Следующими были кувшины. Модель Lasso CV не работала также для питчеров. Вместо этого требовалась стандартная модель линейной регрессии с небольшой настройкой. Здесь показаны оценки.

Важность функции показана на графике ниже.

Жду с нетерпением

В основе этого проекта лежало определение наиболее важных характеристик арбитража по заработной плате новичка на четвертом курсе. Этот проект был реализован в самом начале моей карьеры в области науки о данных, и поэтому я изменил несколько маршрутов, которые выбрал.

Во-первых, я бы увеличил набор данных, чтобы включить в него больше бейсбольной статистики, наблюдаемой в игре. К ним относятся, помимо прочего, скорость тангажа, расположение зоны удара и сила руки. Еще одна возможность взглянуть на данные - это посмотреть на тенденции во времени по сравнению со средними значениями.

Это означало бы смотреть на то, как игрок улучшился или снизился за свои первые три сезона, вместо того, чтобы брать все сезоны с одинаковым весом.

Вы можете связаться со мной на Github или LinkedIn. Репозиторий GitHub для этого проекта находится здесь.