Применение модели пропорциональных рисков Кокса в реальном мире

Введение

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

Этот блог написан для технических, нетехнических читателей и, что наиболее важно, для игроков PUBG. Я также включу свою реализацию на Python для технических читателей. Это можно рассматривать как продолжение моего блога: Модель пропорциональных рисков Коксаи обязательно к прочтению тем, кто интересуется математическими основами и реализацией Python magic Модель пропорциональных рисков Кокса

Мы будем использовать данные, опубликованные в наборах данных Kaggle, где насчитывается более 720 000 матчей PUBG. Журнал данных был извлечен с pubg.op.gg, веб-сайта игрового трекера. Мы будем использовать этот журнал данных, чтобы понять различные режимы игровых стратегий с использованием статистических моделей и попытаться выяснить метод оценки стратегий.

Краткий обзор модели пропорциональных рисков Кокса

Модель пропорциональных рисков Кокса разработана Коксом и опубликована в его работе[1] в 1972 году. Это наиболее часто используемая регрессионная модель для данных о выживании. Наиболее интересным аспектом этого моделирования выживания является возможность исследовать взаимосвязь между временем выживания и предикторами. Например, если мы изучаем выживаемость пациентов, то предикторами могут быть возраст, кровяное давление, пол, привычки к курению и т. д. Эти предикторы обычно называются ковариатами. Примечание. Его не следует путать с линейной регрессией. Допущения могут быть линейными как в регрессионном анализе, так и в анализе выживаемости, но лежащие в его основе концепции различаются. Методы, которые мы используем для оценки параметров модели регрессии и модели выживания, сильно отличаются друг от друга.

  1. Hфункция азардаλ(t): дает мгновенный риск смерти в момент времени t
  2. Z: Вектор признаков/ковариат
  3. λo(t) называется базовой функцией риска.

Настройка проблемы PUBG и обработка данных

Давайте посмотрим на необработанные данные, прежде чем мы определим настройку проблемы.

import pandas as pd
df = pd.read_csv(‘agg_match_stats_0.csv’)
df.head()

Описание функции: player_size: размер команды, player_dist_ride: расстояние, пройденное игроком на транспортном средстве, player_dist_walk: пройденное расстояние по игроку, player_kills: количество убийств, совершенных игроком, players_survive_time: время, прожитое игроком

Настройка проблемы

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

1. Много путешествовать с наименьшими столкновениями с врагами,
2. Большую часть времени пользоваться моторизованным транспортным средством,
3. Только ходить пешком, но чаще сталкиваться с врагами, или
4. Хоть что-то смешнее, как: Играйте только во второй половине дня по выходным😝.

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

Инжиниринг данных

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

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from scipy import stats
df = pd.read_csv('agg_match_stats_0.csv')
df_features = create_features(df) #func is defined at end of blog
df_features.head()

Теперь, когда мы извлекли функции, давайте перейдем к реализации модели пропорциональных рисков Кокса.

Анализ выживания

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

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

from lifelines import CoxPHFitter
cph = CoxPHFitter(penalizer=0.1)
cph.fit(df, duration_col='player_survive_time', event_col='dead')
cph.plot()

Коэффициенты характеристик, которые указывают меру влияния на выживаемость игрока PUBG.

Интерпретация резюме

  • Коэффициент опасности (HR), определяемый как exp(coef), где coef — это вес, соответствующий признаку. Если exp(coef) = 1 для признака, то он не имеет никакого эффекта. Если exp(coef) > 1, снижается опасность: улучшается выживаемость.
  • weekend_indi(т.е. играет ли игрок в выходные или в будний день) не играет существенной роли в прогнозировании риска его выживания, тогда как переменная player_kills(количество убийств игроком) играет важную роль. важную роль в прогнозировании риска выживания.
  • размер игрыфункция с exp(coef) = 1,0не влияет на коэффициент выживания: поэтому подразумевается, что выживание игрока не зависит от размера игры.
  • %player_dist_rideфункция с exp(coef) = 1,73 (›1) хороша для выживания. Таким образом, предпочтение транспортному средству вместо ходьбы увеличивает шансы на выживание.

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

Результаты и визуализация

Лучший способ понять влияние каждой функции/решения — построить кривые выживания для одной функции/решения, т. е. оставить все решения других игроков без изменений. мы используем методplot_covariate_groups() и даем ему интересующую функцию и значения для отображения. Также мы рассмотрим показатели выживаемости для разных стратегий (комбинация решений).

В этом разделе мы обсудим
1. Профили выживания решений
2. Профили выживания стратегий

Профили выживания решений

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

Интерпретация графика 3

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

Профили выживания стратегий

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

1. Активно используйте транспорт, путешествуйте на большие расстояния и часто убивайте
2. Только ходите пешком, путешествуйте на меньшие расстояния и не сталкивайтесь с врагами часто
3. Работайте в команде, реже используйте транспорт и путешествуйте на большие расстояния
4. Выберите матч с небольшим количеством игроков и активно убивайте

Значения для решений фиксируются в соответствии с вышеуказанными 4 стратегиями.

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

Резюме

Мы рассмотрели реальное применение модели пропорциональных рисков Кокса. Мы поняли, как разные стратегии влияют на время выживания игрока в PUBG. Из тех стратегий, которые мы проанализировали, мы обнаружили стратегию «активное использование транспортных средств, путешествия на большие расстояния и частые убийства», статистически обещающую самое продолжительное выживание игрока PUBG в матче. Существуют также нейросетевые варианты модели пропорциональных рисков Кокса, мы рассмотрим такой нейронный вариант модели PH Кокса в моем следующем блоге из этой серии.

Спасибо за ваше время :)

Вот полный код для справки: