В этой главе
• Что такое статистика.
• Основные статистические расчеты.
• Выбросы.
• Статистическая значимость.
• Z-тест.
• Корреляция.
• Распространенные ошибки.
Одной из потрясающих особенностей игрового баланса является то, что различные аспекты баланса затрагивают самые разные области знаний как в пределах, так и за пределами сферы игровой разработки. При обсуждении псевдослучайных чисел в главе 21 мы очень близко подошли к программированию и теории вычислительных машин. При рассмотрении вопросов психологии в главе 20 наряду с прочим коснулись вопроса профессиональной этики. В главе 11 было отмечено, что визуальный дизайн уровня может служить наградой для игрока, показывая степень его прогресса в игре. При этом игровой дизайн одновременно и определяется изобразительным искусством, и находит в нем свое выражение. В данной главе мы, помимо прочего, коснемся области, где игровой дизайн пересекается с бизнесом, рассмотрев способы оценки покупательского поведения игроков и соотнесения его с игровым балансом.
В главе 13 мы подробно поговорили об аналитике — проведении измерений и отслеживании определенных данных в игре с целью дальнейшего анализа с получением выводов относительно игрового баланса. В данной главе будет рассмотрен ряд инструментов, позволяющих извлекать полезную информацию из таких измерений.
Хотя под теорией вероятностей и статистикой часто понимается одно и то же, в действительности это хотя и близкие, но различные области математики. В теории вероятностей вам дается случайный процесс с определенным описанием (например, процесс бросания кубика с вероятностным распределением результатов), и цель состоит в том, чтобы предсказать, как будут выглядеть результаты при приведении в действие этой случайной механики. Статистика работает противоположным образом: здесь вы должны отталкиваться от набора данных, представляющего собой результаты случайного процесса. Цель состоит в том, чтобы путем обратного проектирования определить на основе этих данных характер породившей их случайности.
У непосвященного человека слово «статистика» обычно вызывает ассоциации с научной точностью (люди часто употребляют такие фразы, как «сухие цифры статистики» или «цифры не лгут»). Однако на самом деле эта область знаний носит довольно беспорядочный характер, и, как вы сможете убедиться, разработчики игр (а часто и профессиональные статистики) могут расходиться во мнениях относительно базовых принципов статистики даже больше, чем относительно основных принципов дизайна систем. Единственное, что объединяет теорию вероятностей со статистикой, — то, что они не дают никакой гарантии. Теория вероятностей может сказать, что при бросании кубика d6 цифра 4 выпадает с вероятностью 1/6, но не может сказать, какая именно цифра выпадет. Сходным образом статистика на основе ряда результатов бросков кубика может сказать, что эти результаты с вероятностью 95 % соответствуют бросанию «честного» кубика d6, но при этом будет оставаться 5%-ная вероятность того, что это не так. Вы можете увеличить степень уверенности, собрав дополнительные данные, но вероятность того, что будет допущена ошибка, никогда не опустится до нуля.
Когда говорят о среднем значении чего-либо, под ним обычно подразумевают результат усреднения, получаемый сложением ряда значений и делением полученной суммы на их количество:
,
где m — среднее значение, v — значения из набора данных, а n — количество значений. Среднее значение напоминает ожидаемое значение из теории вероятностей с тем отличием, что ожидаемое значение — это теоретически сбалансированный набор результатов случайного выбора, а среднее значение — реальный результат усреднения некоторого набора реальных результатов случайного выбора. Среднее значение легко вычисляется и может быть очень полезным в силу того, что оно, как правило, мало отличается от ожидаемого.
Помимо среднего значения, существуют и другие типы средних величин, из которых мы рассмотрим только медиану, или медианное значение. Чтобы определить медиану, нужно отсортировать все имеющиеся значения в порядке возрастания и выбрать значение, находящееся в середине полученного ряда. Например, если речь идет о следующих пяти значениях: 1, 2, 5, 8, 24, то медиана будет равна 5, поскольку это значение находится в середине данного ряда. По определению, половина значений находится ниже медианы, а половина — выше (если не учитывать саму медиану). Когда говорят: «Половина населения всегда ниже среднего уровня», имеется в виду медианное, а не среднее значение.
И среднее значение, и медиана полезны сами по себе, но еще больше пользы может принести сравнение этих значений. Сравнив среднее значение с медианой, можно определить, смещена ли большая часть значений в ту или иную сторону, или они расположены симметрично относительно среднего.
Вот пример: в 2014 году в США медианный уровень семейного дохода составлял 51 939 долларов, а средний уровень — 72 641 доллар. Какой вывод можно сделать в случае, когда среднее значение намного превышает медианное? Это означает, что у верхнего края диапазона есть ряд очень больших значений, которые не влияют на медиану, но тянут вверх среднее значение. Это вполне логично: поскольку семейный доход редко опускается намного ниже нуля, уровень доходов большинства малообеспеченных граждан не может снижаться до бесконечности, в то же время среди богатой половины населения в США существует довольно много миллиардеров, которые могут зарабатывать за год невероятно большие деньги.
Теперь рассмотрим противоположный случай, когда медиана заметно выше среднего значения. Примером такой ситуации может быть успеваемость учеников в классе, когда их большинство находится на уровне 75–85 % и лишь один нерадивый ученик пока на нулевом уровне. Это немного уменьшает среднее значение, но практически не сказывается на медиане. Еще один пример — таблицы результатов в онлайн-играх: верхние строчки здесь, как правило, занимают чрезвычайно высокие показатели игроков, которые научились играть невероятно хорошо, а расположенные ниже результаты заурядных игроков гораздо ближе к медиане.
В некоторых случаях среднее значение и медиана незначительно отличаются друг от друга, это говорит о том, что данные не смещаются в ту или иную сторону экстремальными крайними значениями. Это также может означать, что у вас нет экстремальных значений или они распределены равномерно относительно среднего значения и встречаются с одинаковой частотой и в верхней, и в нижней половинах диапазона. Как же при этом можно отличить случай, когда все значения расположены очень близко к среднему значению, от случая, когда значения распределены более широко, но имеют то же среднее значение? Здесь следует ввести еще один статистический инструмент, который делает явным как раз это различие. Речь идет о стандартном отклонении (standard deviation, SD).
Чтобы рассчитать стандартное отклонение, сначала нужно определить среднее значение набора данных. Затем для каждого отдельного элемента данных в наборе нужно найти разность между ним и средним значением и возвести ее в квадрат, то есть умножить саму на себя. Полученные квадраты нужно сложить и разделить на общее количество элементов данных, после чего извлечь квадратный корень из полученного результата:
.
Проще говоря, стандартное отклонение показывает, насколько распределенными являются ваши данные. Примерно две трети набора данных находятся в пределах одного стандартного отклонения от среднего значения и более 90 % данных — в пределах двух стандартных отклонений. Это означает, что размер вашего стандартного отклонения соотносится со средним значением. Когда среднее значение равно 50 при стандартном отклонении, равном 25, данные выглядят гораздо более распределенными, чем в случае, когда среднее значение равно 5000 при стандартном отклонении, равном 25. При сравнительно большом стандартном отклонении ваши данные будут находиться практически повсюду, а при очень небольшом стандартном отклонении они будут плотно сгруппированы в пределах узкого диапазона.
В качестве примера сравним два результата бросания кубиков: 1d11 + 1 и 2d6. И в первом, и во втором случае мы получаем число в диапазоне от 2 до 12. И в первом, и во втором случае ожидаемое значение равно 7. Если выполнить большое количество попыток с получением результатов в точном соответствии с ожидаемыми вероятностями, то в обоих случаях и среднее значение, и медиана будут равны 7. Однако эти случаи сильно различаются распределением вероятностей: при бросании 2d6 семерка выпадает с гораздо большей вероятностью, чем 2 или 12, а при бросании 1d11 + 1 каждый из возможных результатов выпадает с одинаковой вероятностью. При этом при бросании 1d11 + 1 стандартное отклонение составляет 3,3, а при бросании 2d6 — лишь около 2,4. Таким образом, при бросании 1d11 + 1 в пределах одного стандартного отклонения находится диапазон 4–10 от среднего значения, а при бросании 2d6 — диапазон 5–9. Это может показаться не такой уж большой разницей… до тех пор, пока вы не начнете бросать кубики.
Практический пример: обучающий уровень
Допустим, что в ходе работы над игрой вы хотите посмотреть, сколько времени уходит у участников игрового тестирования на прохождение первого обучающего уровня. Вам нужно, чтобы это время не превышало 5 минут. В реальности измерение времени прохождения этого уровня дает следующие результаты (рис. 24.1).

Рис. 24.1
Хотя среднее значение равно 5 минутам, что вам и нужно, медианное значение — 6 минут при стандартном отклонении 2 минуты. Хорошо это или плохо? О чем это говорит?
Результат большинства игроков находится в диапазоне от 3 до 7 минут. Это может быть как плохим, так и хорошим результатом в зависимости от того, в какой степени игроки контролируют прохождение данного уровня. Во многих играх обучение организуется стандартным способом и носит линейный характер, в случае чего такой промежуток времени может казаться довольно большим. Еще одной причиной для беспокойства является то, что медиана больше среднего значения, а значит, результат большей части игроков превышает 5 минут и, соответственно, их обучение длится дольше, чем предполагалось. Более низкое среднее значение объясняется тем, что небольшое количество игроков проходит этот уровень намного быстрее остальных, что может быть признаком того, что им удалось найти не предусмотренный вами обходной путь или эксплойт или каким-то иным образом пропустить вступительный диалог. В таком случае продолжение игры без знания ее основной механики может вызвать у них затруднения или раздражение. Положительным моментом здесь является то, что ни у кого из игроков время прохождения обучения не измерялось часами, иначе среднее значение, наоборот, было бы намного больше медианы.
Лишь взглянув на три показателя — среднее значение, медиану и стандартное отклонение, мы смогли определить потенциальные проблемы данного уровня. Однако, зная, что происходит, мы не знаем почему: полученные результаты могут объясняться самыми разными причинами, часть из которых, возможно, не была перечислена. Такая ситуация типична при использовании статистики. Поэтому разработчик должен проявлять осмотрительность, чтобы не истолковать эти показатели неверно. Даже если вы найдете логичное объяснение тому, что полученные показатели выглядят так, а не иначе, помните: они могут объясняться и другими, столь же вероятными причинами. В рассмотренном примере мы не знаем, почему медиана больше среднего значения и каковы последствия этого для дизайна игры. Потратив определенное время, мы могли бы выявить все возможные причины, а затем собрать и изучить дополнительные данные с тем, чтобы можно было провести различие между потенциальными источниками проблем. Например, если вы подозреваете, что игроки пропускают вступительный диалог, можно выполнить игровое тестирование еще раз, измеряя не только общее время прохождения уровня, но и количество времени, затрачиваемого на чтение диалогов. Мы еще вернемся к этому вопросу в следующей главе, которая будет посвящена аналитике.
Данный пример демонстрирует еще один важный момент: мы не говорим здесь о том, сколько участников было привлечено к игровому тестированию для получения этих данных! Чем больше будет тестов в вашей выборке, тем более точными окажутся получаемые в итоге результаты анализа (по той же причине, по которой большее количество бросков кубика обеспечивает более точное соответствие получаемых вероятностей ожидаемым значениям). Если мы привлечем к игровому тестированию только трех участников, то вряд ли сможем определить общие тенденции на основе среднего значения, медианы и стандартного отклонения. Но если эти данные будут получены с привлечением нескольких тысяч тестировщиков, результаты анализа будут гораздо точнее.
Элементы набора данных, находящиеся намного выше или намного ниже среднего значения, статистики называют выбросами. Поскольку выбросы, как правило, гораздо сильнее сказываются на среднем значении, чем на медиане, наличие заметной разницы между средним значением и медианой часто объясняется наличием выбросов.
При проведении статистического анализа у вас может возникнуть вопрос: что делать с выбросами? Как вообще определить, что считать выбросом, а что — просто элементом данных, расположенным у верхнего края нормального диапазона? А после выявления выбросов следует ли принять их в расчет, проигнорировать или вынести в отдельную группу? Как и многое другое в игровом дизайне да и в жизни, это зависит от ситуации.
Если вас интересуют только нормальные, обычные паттерны игрового процесса, то лучше исключить выбросы из набора данных и сделать вид, что их не существует. Выбросы по определению представляют нетипичные случаи в игровом процессе. Но если вас, наоборот, интересуют граничные случаи, то следует не только принять выбросы в расчет, но и уделить им особое внимание. Например, если вы хотите определить, сколько очков игроки набирают за игру, чтобы знать, сколько разрядов должно помещаться в таблице лидеров, уясните для себя тот факт, что верхние строчки в таблице достижений будут занимать выбросы, находящиеся у верхнего края диапазона. Как бы там ни было, при выявлении каких-то выбросов обычно стоит провести дополнительное исследование и определить, что стало причиной этого. Так, в предыдущем примере со временем прохождения обучающего уровня, если большинство игроков проходят этот уровень за 5–7 минут, а небольшая часть справляется за 1 или 2 минуты, значит, эти игроки нашли обходной путь или эксплойт и вам нужно еще раз рассмотреть этот уровень и все доступные отчеты о проведенных играх, чтобы выяснить, как им это удалось. Если же при среднем результате 5–7 минут вы, наоборот, имеете один выброс, где прохождение уровня заняло целый час, то это, вероятно, объясняется тем, что игрок поставил игру на паузу или просто отлучился на время, забыв про нее. Если столь длительное время прохождения будет у нескольких игроков, это, возможно, будет объясняться теми же причинами… или тем, что, экспериментируя и используя данный уровень в качестве песочницы, некоторые игроки получают такое удовольствие, что не спешат переходить на следующий уровень, или тем, что им был совершенно непонятен некоторый базовый аспект игры, а они просто слишком вежливы для того, чтобы в раздражении выйти из игры через 5 минут, как сделало бы большинство обычных игроков. В таком случае следует провести дополнительное исследование, поскольку, если кто-то из игроков сталкивается с проблемами, их по возможности следует разрешить. Если кто-то из игроков находит очень интересным определенный аспект обучающего уровня, об этом тоже будет полезно знать при разработке других уровней игры.
Одной из часто возникающих задач в статистике является случай, когда нужно определить, порождаются ли два набора данных одним и тем же или двумя разными процессами. Так, например, происходит, когда вы собираете данные об игровом процессе, вносите изменение в игру и снова собираете те же данные, чтобы определить, какой эффект произвело внесенное изменение. Еще один пример такой ситуации — A/B-тестирование, при котором вы создаете две версии игры с некоторым ключевым различием и собираете одни и те же данные игрового тестирования для каждой версии, случайным образом распределив тестировщиков между ними.
Проведение различия между двумя группами данных — важная и далеко не простая задача. Если, например, вы 100 раз бросите кубик d6 и случайным образом разобьете результаты на два набора по 50 штук, то эти наборы, вероятно, будут немного различаться средним значением и стандартным отклонением, даже будучи порожденными одним и тем же случайным процессом. Хотя наборы почти совпадут друг с другом и это будет проявляться тем больше, чем больше попыток сделано, в то же время вы вряд ли получите точное совпадение. Насколько же близким должно быть совпадение между двумя наборами данных для того, чтобы можно было сказать, что они относятся к одному и тому же набору данных и были порождены одним и тем же процессом? Или, иначе говоря, насколько сильно должны различаться два набора данных для того, чтобы можно было говорить о наличии реального различия между ними?
Плохая новость состоит в том, что этого никогда нельзя сказать с полной определенностью. Если мы по 50 раз бросим кубики d6 и d20 и сравним полученные наборы данных, то результаты бросков кубика d20 теоретически (хотя и с очень малой вероятностью) могут оказаться достаточно низкими для того, чтобы оба набора выглядели одинаково. Даже если мы бросим кубики d6 и d20 не 50, а 5000 или большее количество раз, вероятность такого исхода никогда не опустится до нуля — всегда будет существовать хотя бы микроскопическая вероятность того, что эти два совершенно отдельных набора данных будут выглядеть одинаково. Таким образом, сравнивая два набора данных и делая вывод о наличии статистически значимых различий, мы должны помнить о том, что наши выводы могут оказаться неверными.
Мы можем определить степень вероятности того, что ошибаемся и наблюдаем то, что только выглядит как статистически значимое различие, а на самом деле является просто случайной вариацией, и таким образом задать минимальный порог статистической значимости, то есть минимальную вероятность того, что наше предположение верно (которую статистики называют достоверностью и выражают в процентах или как степень вероятности), чтобы можно было сказать, что между двумя наборами данных действительно имеются достаточные различия, позволяющие считать их отдельными наборами. Если эта минимально допустимая степень достоверности будет слишком низкой, то мы будем ошибочно выделять много несуществующих статистических тенденций и различий, а если она будет слишком высокой, то станем отбрасывать и игнорировать реально существующие тенденции.
Во многих, хотя и не всех областях знаний стандартным для статистической значимости уровнем является достоверность 95 %, соответственно, вероятность того, что вы ошиблись, при этом не превышает 5 %. Конечно, выглядит немного пугающе то, что выводы любого исследования, описанного в рецензируемом научном журнале, могут с вероятностью 1/20 оказаться неверными, даже когда речь идет о безупречно проведенном и хорошо продуманном исследовании. Но вы все равно должны задать какой-то минимальный порог, и это вполне уместный компромисс, позволяющий в большинстве случаев получать верные результаты, не прибегая к строгим стандартам, делающим проведение экспериментов затруднительным. Ведь если бы разработчикам игр приходилось привлекать по 10 000 игровых тестировщиков просто для того, чтобы получить более или менее разумные цифры, то они не могли бы делать никаких выводов! Так что помните: даже в идеальном случае статистика может вам лгать, и учитывайте степень достоверности, когда делаете выводы о сбалансированности своей игры.
То, что результаты статистического анализа всегда несут в себе некоторую долю неопределенности, можно считать отрицательным. А положительный момент состоит в том, что мы можем определить, имеют ли два набора данных статистически значимые различия и с какой степенью достоверности, причем выполнение этих расчетов не составляет большого труда. Один из распространенных подходов — использование Z-теста, который включает в себя следующие три этапа.
1. Сначала нужно определить величину стандартной ошибки (standard error, SE), разделив стандартное отклонение на квадратный корень из количества элементов данных:
.
2. Затем следует определить величину z-оценки, разделив разность между средним значением выборки и установившимся средним значением на величину стандартной ошибки:
z = (mв – mг. с) / SE.
3. Наконец, нужно найти полученное значение z-оценки в справочной таблице или воспользоваться функцией НОРМ.СТ.РАСП (NORMSDIST) в редакторе электронных таблиц и определить вероятность того, что набор случайных данных из генеральной совокупности будет ниже среднего значения выборки.
Z-тест накладывает ряд ограничений. Для его использования вы уже должны располагать установившимся средним значением, полученным на основе предыдущих данных, чтобы можно было сравнить с ним новый набор данных (при сравнении двух наборов данных один из них следует рассматривать как установившиеся данные, а другой — как новую выборку). Кроме того, Z-тест предполагает, что ваши данные были сгенерированы нормальным вероятностным распределением (с колоколообразной гауссовой кривой). К счастью, в большинстве своем встречающиеся на практике варианты поведения описываются кривой нормального распределения или очень похожей кривой, однако имейте в виду, что z-оценка может быть не самым подходящим статистическим инструментом, например, в случае сравнения двух наборов результатов бросания кубика d12.
Рассмотрим пример. Допустим, в ходе работы над игрой вы проводите большое предварительное игровое тестирование с участием 1000 тестировщиков. На прохождение обучающего уровня у них в среднем уходит 5 минут со стандартным отклонением 2 минуты. Вы вносите в этот уровень определенные изменения, чтобы сделать время прохождения меньше. После этого проводите еще один небольшой игровой тест с участием лишь 16 тестировщиков, и на этот раз время прохождения составляет в среднем 4 минуты 40 секунд со стандартным отклонением 2 минуты. Похоже, вы добились успеха: внесенные изменения позволили сократить среднее время прохождения на целых 20 секунд! Но является ли такое изменение статистически значимым или это просто случайная вариация?
Если мы для простоты переведем все единицы времени в секунды, то установившееся среднее значение составит 300 секунд, а новое среднее значение — 280 секунд со стандартным отклонением 120 секунд в обоих случаях. Количество элементов данных в новом игровом тесте — n = 16.
Стандартная ошибка:
.
Соответственно, z-оценка равна z = (280 – 300) / 30 = –2/3. То есть новое среднее значение меньше установившегося среднего значения на 2/3 стандартной ошибки.
Подставив это значение z-оценки в редакторе электронных таблиц, получим: NORMSDIST(–2/3) = 0,252493. То есть с вероятностью 25 % данная выборка является результатом случайной вариации, а с вероятностью 75 % внесенные изменения действительно привели к сокращению времени прохождения тестируемого уровня. Таким образом, ваши изменения, вероятно, произвели необходимый эффект, но эти данные не являются статистически значимыми. Заметьте, что вы могли бы повысить степень значимости, проведя игровое тестирование с большим количеством участников.
Еще одним часто используемым приемом является анализ двух элементов игры на предмет наличия между ними взаимосвязи. Если, например, вы работаете над сетевой коллекционной карточной игрой и вам начали поступать жалобы на то, что определенная карта слишком сильная, то, вероятно, потребуется выяснить, нет ли взаимосвязи между наличием этой карты в колоде и достижением победы в игре. Если вы работаете над игрой жанра «файтинг»/«массовая драка» и хотите убедиться в том, что матчи длятся не слишком долго, то, возможно, потребуется оценить, насколько связана длительность матча с участием в нем того или иного персонажа. А если вы разрабатываете настольную ролевую игру, то вас, возможно, интересует, как часто определенные классы персонажей используются совместно в одной партии в тех случаях, когда у игроков есть возможность свободно выбирать свой класс персонажей. В общем, иногда требуется знать, являются ли два набора данных абсолютно независимыми, или между ними существует корреляция.
Существует два типа корреляций. Наличие прямой корреляции означает, что два набора чисел изменяются по одинаковой траектории. При возрастании чисел одного набора возрастают и числа второго набора, и наоборот. Противоположный случай, при котором два набора чисел изменяются в противоположных направлениях, называется инверсной корреляцией. Здесь при возрастании чисел одного набора числа второго уменьшаются. И в том и в другом случае речь идет лишь об общей тенденции, а не об абсолютных значениях. Конечно, в случае строгой корреляции взаимосвязь между двумя вещами носит абсолютный и точный характер и вы точно знаете, как изменится одна вещь при изменении другой. Однако обычно взаимосвязи носят более хаотичный характер, и в силу случайных вариаций два прямо коррелированных элемента иногда могут изменяться в противоположных направлениях, хотя гораздо чаще они будут делать это одинаково. Мерой того, насколько часто две коррелированные вещи ведут себя как таковые, то есть мерой силы корреляции, является коэффициент корреляции.
Коэффициент корреляция обычно вычисляется не вручную, а с помощью компьютера. В редакторе электронных таблиц функция КОРРЕЛ(массив1, массив2) (CORREL(array1, array2)) принимает на вход два набора данных, которые могут быть указаны как отдельные ячейки или диапазоны ячеек, и вычисляет коэффициент корреляции между ними. Поскольку при определении корреляции сопоставляются пары значений (с тем чтобы увидеть, как изменяются числа одного набора при возрастании или уменьшении чисел другого), оба набора данных должны быть одинаковыми по размеру и такими, чтобы каждому элементу одного набора соответствовал элемент другого.
Коэффициент корреляции представляет собой число в диапазоне от –1 до 1. При коэффициенте корреляции –1 между двумя наборами существует строгая инверсная корреляция: при возрастании чисел одного набора всегда происходит точно такое же по величине уменьшение чисел второго набора. При коэффициенте корреляции 1 между двумя наборами существует строгая прямая корреляция: оба набора изменяются абсолютно синхронно друг другу. Равенство коэффициента корреляции нулю говорит об отсутствии корреляции: два набора ведут себя независимо, и в их поведении нет предсказуемых тенденций.
На практике даже у самых сильных видов корреляции коэффициент корреляции не будет в точности равен 1 или –1 в силу наличия в системе небольшого количества шума и случайных вариаций, не позволяющих ей вести себя идеальным образом. В случае некоррелированных вещей коэффициент корреляции по той же причине не будет в точности равен нулю: просто в силу случайных вариаций между ними будет существовать хотя бы незначительная корреляция. Но чем больше коэффициент корреляции станет отклоняться от нуля в сторону 1 или –1, тем сильнее будет корреляция.
Марк Твен когда-то сказал, что существует три вида лжи: ложь, наглая ложь и статистика. При этом он, вероятно, имел в виду не то, что статистика бесполезна, а то, что она может лгать, если вы не проявите должной осмотрительности. Рассмотрим несколько поучительных историй о том, как с помощью статистики можно получить совершенно неверные результаты и что следует делать для того, чтобы она не вводила вас в заблуждение.
Взгляните на четыре набора данных, каждый из которых содержит по 11 элементов (рис. 24.2).

Рис. 24.2
Это так называемый квартет Энскомба — широко известный в статистике пример, подчеркивающий важность графического представления данных. Очевидно, что мы имеем здесь совершенно разные наборы данных очень разного характера. Вверху слева представлена слабовыраженная линейная зависимость с некоторой долей погрешности. Вверху справа показана параболическая (нелинейная) кривая. Внизу слева представлена сильно выраженная линейная корреляция с одним выбросом. Внизу справа — тоже линейная корреляция с одним выбросом, но на этот раз линия расположена вертикально. Как связаны друг с другом эти четыре набора данных? Оказывается, у них у всех среднее значение переменной x = 9, а среднее значение переменной y = 7,5 и практически одинаковое стандартное отклонение переменных x и y. Кроме того, во всех четырех наборах корреляция между переменными x и y одинаковая. Мораль здесь в том, что никогда не стоит рассматривать только статистические показатели, не используя никакого способа графического представления или визуализации исходных данных: рассматривая только среднее значение, медиану и стандартное отклонение, можно сделать ошибочные выводы. Статистические инструменты часто делают более ясным то, что вы наблюдаете в исходных данных, но никогда не стоит, игнорируя данные, рассматривать только результаты произведенных на их основе статистических расчетов.
Качество статистического анализа напрямую зависит от качества выборки. При недостаточно большом размере выборки часто не удается добиться статистической значимости. Чем больше элементов будет содержать выборка, тем лучше. В качестве примера рассмотрим, как игрок составляет колоду для участия в турнире по игре Magic: the Gathering. При составлении колоды для нее важно обеспечить правильное соотношение земель (это основной источник ресурсов) и заклинаний (для использования которых требуются эти ресурсы). Если у вас будет слишком много земель, то вы сможете применить все имеющиеся заклинания, но их у вас будет не так много, как у соперника, что приведет к вашему поражению. Если же земель будет недостаточно, то вы не сможете задействовать все имеющиеся заклинания в силу недостатка ресурсов.
Допустим, составив колоду, игрок хочет убедиться, что он добавил в нее правильное количество земель. Для этого он как можно тщательнее тасует колоду, вытягивает из нее карты первой руки и пробует сымитировать первые несколько ходов, чтобы посмотреть, хватает ли ему земель. Затем откладывает эти карты в сторону и повторяет процесс с оставшейся частью колоды, продолжая вытягивать образцы рук из всех частей колоды. Если при этом выясняется, что количество земель слишком велико в большей части рук, игрок немного его уменьшает, если же земель недостаточно (так бывает почти всегда), немного его увеличивает. На первый взгляд это вполне эффективный и простой способ нахождения правильной пропорции земель, позволяющий обойтись без большого количества расчетов и статистического анализа. Однако допустим, что, как следует перетасовав колоду, игроку удается распределить земли настолько равномерно, что его положение после одного-двух ходов почти всегда оказывается довольно хорошим, и, посчитав, что все нормально, игрок отправляется на турнир с этой колодой. Затем в ходе турнира он раз за разом вытягивает недостаточное количество земель и проигрывает игру за игрой. По окончании турнира игрок подсчитывает карты и видит, что среди 60 карт его колоды только 16 земель, в то время как в большинстве колод их обычно около 20.
Почему же в данном случае игрок так сильно ошибся в расчетах? Ошибка состояла в том, что он пытался использовать статистические методы анализа при слишком малом размере выборки, который не позволял получить содержательные выводы.
Анализ может пойти прахом не только из-за слишком малого размера выборки. Вот еще один пример: допустим, вы создаете игру, рассчитанную на неискушенных игроков. Чтобы оценить уровень ее сложности, вы просите всех членов команды разработчиков сыграть в нее и таким образом обеспечить некоторые базовые данные о времени прохождения и степени сложности каждого уровня.
Поскольку разработчиков игр сложно назвать неискушенными игроками, такое игровое тестирование не будет должным образом представлять целевую аудиторию этой игры. Члены вашей команды, вероятно, умеют играть в вашу игру гораздо лучше, чем среднестатистический игрок (отчасти потому, что они уже много лет играют в разные игры, а еще потому, что знают, как устроена данная игра), и поэтому проходят ее гораздо быстрее и с меньшим сопротивлением по сравнению с большинством тех неискушенных игроков, которые будут играть в нее в первый раз.
Вот еще один пример: издатель проводит фокус-тестирование находящейся в разработке игры с женским персонажем в главной роли, и члены фокус-группы практически единодушно заявляют: они предпочли бы, чтобы это был мужской персонаж. После этого издатель просит разработчика изменить пол главного героя. Такая просьба будет вполне уместной, если фокус-группа должным образом представляет целевую аудиторию. Но что, если игра рассчитана на массовый рынок, а фокус-группа состоит исключительно из мужчин? В таком случае вряд ли стоит сразу же исполнять ее рекомендации.
В общем, при сборе данных игрового тестирования старайтесь привлекать к участию тестировщиков, имеющих максимальное сходство с представителями целевого рынка, и как можно в большем количестве, чтобы можно было исключить влияние случайных вариаций. Качество анализа напрямую зависит от качества исходных данных!
Некоторые вещи могут пойти не так, даже если вы будете применять статистику со всей возможной осмотрительностью. В случае видеоигр качество данных игрового тестирования часто зависит от добросовестности программистов, поскольку именно они должны написать код, который будет собирать запрашиваемые геймдизайнером данные. Поскольку при разработке игры время программирования всегда является ограниченным ресурсом, на определенном этапе геймдизайнеру или менеджеру продукта приходится делать выбор между направлением усилий программистов на реализацию сбора данных или создание самой игры. Хотя в отдельных компаниях этот процесс организован довольно эффективно, в некоторых студиях разработка аналитики относится к той же категории задач, что и работа над звуком, локализация и игровое тестирование, которые игнорируют и откладывают на потом на протяжении почти всего цикла разработки, а затем выполняют в авральном режиме, когда уже слишком поздно вносить какие-либо полезные изменения. Если дизайн игры должен опираться на результаты статистического анализа, убедите других членов вашей команды в важности его реализации на ранних этапах разработки.
Даже если времени программирования достаточно для реализации сбора данных, программный код может содержать ошибки, потому не исключено, что собранные вами данные окажутся попросту неверными. Всегда изучайте исходные данные, чтобы оценить, насколько логично они выглядят и не искажены ли программными ошибками. Часто бывает полезно независимым образом собрать некоторые данные вручную, а затем выборочно сравнить их с теми, которые собирает программный код (например, если нужно узнать, сколько раз погибают игроки на каждом уровне, понаблюдайте за тем, как один из тестировщиков проходит определенный уровень, посчитайте, сколько раз он при этом погибает, а затем сравните это количество с тем, что говорит программный код).
Справедливости ради стоит отметить, что ошибиться можно не только на этапе программирования, но и при выполнении статистического анализа вручную. Даже если каким-то чудесным образом ошибок в программном коде не окажется, не исключена вероятность того, что вы, как геймдизайнер, что-то напутаете в расчетах и получите неверный ответ, как может случиться при расчете вероятностей. Однако при расчете вероятностей вы по крайней мере можете провести дополнительную проверку и сразу заметить неверный ответ. Например, когда расчеты показывают, что вероятность меньше 0 или больше 1, вы сразу понимаете, что где-то допустили ошибку и требуется перепроверить цифры. В случае статистики вы обычно не знаете, как должен выглядеть корректный ответ и чего следует остерегаться. В силу этого старайтесь проводить расчеты с максимальной осторожностью и использовать все возможные способы дополнительной проверки цифр и расчетов.
Одну из наиболее распространенных ошибок в статистике допускают после выявления корреляции между двумя вещами, когда вы замечаете, что при возрастании одной вещи другая тоже всегда возрастает (прямая корреляция) или уменьшается (инверсная корреляция). Дело в том, что после выявления корреляции люди часто делают наиболее очевидный (и ошибочный) вывод о причинах ее наличия. Однако это невозможно установить, не выходя за пределы статистики.
Рассмотрим пример. В исходной версии настольной игры «Пуэрто-Рико» (без расширений и модификаций) в турнирном режиме достижение победы сильно коррелирует с покупкой фабрики. Допустим, что в 95 из каждых 100 турнирных игр побеждает владелец фабрики. В таком случае естественно предположить, что фабрика дает игроку слишком мощные возможности, тем самым позволяя ему выигрывать. Однако это вполне обоснованное предположение нельзя сделать, не располагая дополнительной информацией, поскольку могут оказаться верными и другие столь же обоснованные предположения.
А что, если все происходит наоборот — игрок покупает фабрику, потому что приближается к победе? Хотя это звучит странно, не исключена вероятность того, что покупка фабрики помогает тому, кто уже и так близок к победе, то есть эта покупка не является причиной победы, скорее, просто лидирующий игрок каким-то образом сильно мотивирован к ее покупке.
Также возможно, что не сбалансирован какой-либо другой, не указанный здесь элемент игры, и это позволяет игроку и купить фабрику, и победить в игре. Возможно, приобретение определенной вещи в начале игры позволяет игроку легко купить фабрику впоследствии и становится фактором, который вносит наибольший вклад в его победу. В таком случае покупка фабрики является симптомом и побочным продуктом покупки другого слишком мощного игрового объекта, не являясь источником проблемы.
Наконец, возможно также, что между покупкой фабрики и победой в игре в действительности нет никакой корреляции, а ее наличие в данных объясняется тем, что мы получили статистическую аномалию и размер выборки недостаточно велик для того, чтобы сработал закон больших чисел. Такое можно наблюдать во многих областях общественной жизни, когда при анализе, казалось бы, никак не связанных друг с другом вещей вдруг выясняется, что они сильно коррелируют друг с другом (существует даже сайт, посвященный поиску таких корреляций: https://www.tylervigen.com/spurious-correlations). Как упоминалось при обсуждении вероятностей, если взять большое количество случайных вещей, то в них могут обнаружиться паттерны. Если наборов данных будет довольно много, то некоторые из них вполне могут коррелировать друг с другом, хотя бы чисто случайно.
В заключение этой главы поговорим о том, что и вероятностные, и статистические расчеты можно рассматривать с двух точек зрения. Даже на основной вопрос о том, что мы, по большому счету, измеряем, можно ответить по-разному. Здесь существует два основных подхода — частотный и байесовский.
Если не вдаваться в подробности, частотный подход сводится к применению приводившихся здесь и в других главах математических выкладок, касающихся расчета ожидаемых значений, статистической значимости и т.д. Байесовский подход, по сути, представляет собой интуитивный способ мышления, который использует большинство людей. Допустим, вы не можете найти в своей квартире домашний радиотелефон, но он может подать сигнал, если вы нажмете специальную кнопку на зарядной станции. Частотный подход здесь сводится к тому, чтобы прислушаться к звуку и направиться в его направлении. Байесовский подход — к тому, чтобы также вспомнить, в каких местах вы обычно говорите по телефону и где он, по идее, может находиться, и в первую очередь направиться к одному из этих мест, расположенному в направлении звука.
Для иллюстрации рассмотрим следующую задачу: вы подбрасываете монету, которая, возможно, является «честной», а возможно, нет. Подбросив ее 100 раз, вы 71 раз получили орла и 29 — решку. После этого подбрасываете монету еще один раз. Какова вероятность того, что при этом выпадет решка?
В случае частотного подхода решение будет довольно простым. Поскольку в 29 попытках из 100 выпала решка, то, исходя из этой ограниченной информации, можно сделать вывод: мы имеем дело с «нечестной» монетой, которая с вероятностью 29 % выдает решку.
Байесовское решение будет более сложным, с погружением в нетривиальные математические выкладки, рассмотрение которых выходит за рамки данной книги. В целом можно сказать: здесь следует исходить из того, что вероятность выпадения решки не всегда составляет 29 % и сама является случайной величиной с некоторым распределением возможных значений. При желании вы без труда найдете это решение, воспользовавшись так называемой бета-функцией, простейшими методами математического анализа и поиском в Интернете. Достаточно сказать, что байесовское решение дает немного иной ответ, чем частотное, и при использовании в реальном мире зачастую оказывается более реалистичным.
1. Допустим, вы обнаружили сильную корреляцию между двумя элементами игры. Какие четыре возможные причины такого наблюдения вам следует рассмотреть?
2. В чем состоит разница между теорией вероятностей и статистикой?
3. Какой вывод можно сделать, когда среднее значение намного меньше медианы?
4. Какой вывод можно сделать, если среднее значение и медиана почти совпадают друг с другом? (Здесь может быть несколько вариантов.)
5. Что может сказать о характере набора данных значение стандартного отклонения?
6. Каким образом можно повысить статистическую значимость результатов анализа данных?
7. Что такое выброс?
8. Какие условия необходимо соблюсти для использования Z-теста? В каких ситуациях он вам не поможет?
9. Почему важно рассматривать не только среднее значение, медиану, стандартное отклонение и другие производные значения, но и исходные данные?
10. Как можно избежать ошибки выборки при игровом тестировании? Зачем это нужно делать?
Общепризнанным фактом является недостаточное половое разнообразие в индустрии видеоигр, то есть недостаточная представленность в ней женщин и членов меньшинств. Пока давайте ограничимся только женщинами.
Такое положение дел может объясняться самыми разными причинами. Для улучшения ситуации в этом плане важно выявить основной источник проблемы, поскольку каждое из возможных объяснений предполагает реализацию совершенно разных решений. Например, вы могли видеть следующие предположения.
• Женщин в целом меньше, чем мужчин, интересуют технические сферы деятельности. Отчасти это объясняется биологией, но в гораздо большей степени — культурными факторами. Соответственно, довольно мало представительниц женского пола избирают в качестве сферы деятельности разработку игр. (Решение: проведение более активной пропаганды игр среди школьников и студентов колледжей, чтобы заинтересовать юных представительниц женского пола в выборе разработки игр в качестве будущей профессии.)
• Карьера разработчика игр могла бы интересовать представительниц женского пола больше, если бы публикуемые игровыми студиями объявления о найме часто не содержали признаков того, что женщинам лучше не обращаться. (Решение: сделать более инклюзивным процесс найма на работу в данной сфере.)
• Женщины могли бы откликаться на объявления о найме, публикуемые игровыми студиями, в равной пропорции, если бы в студиях, где в основном работают мужчины, не было неосознаваемой дискриминации по половому признаку, в силу которой при найме предпочтение отдают представителям мужского пола. (Решение: специалисты по подбору персонала и интервьюеры игровых студий должны выявить присущие им предубеждения и устранить или скорректировать их при оценке кандидатов.)
• Женщины часто получают предложения о работе, но отклоняют их, желая поискать другие вакансии в иных профессиональных сферах. (Решение: необходимо делать более конкурентоспособные предложения или по крайней мере лучше рекламировать предлагаемую должность среди женщин при рассылке официальных предложений о работе.)
• Это может объясняться и простым совпадением. В этом году в сфере разработки игр доминируют мужчины, а через 5 лет, возможно, будут доминировать женщины. При найме на работу в данной индустрии отдается предпочтение наиболее способным, и любое смещение в сторону большей представленности мужчин или женщин является допустимой статистической вариацией. Неожиданно большие отклонения в ту или иную сторону оказываются выбросами, которые корректируются с течением времени сами по себе. (Решение: не нужно ничего делать, потому что здесь нет реальной проблемы.)
Если вы работаете в игровой студии, которая стремится обеспечить большую степень полового разнообразия при найме сотрудников в дальнейшем, то, вероятно, стоит сначала определить, в чем именно состоит проблема, чтобы не тратить усилия на исправление того, что в действительности ею не является. В этом может помочь статистика.
Допустим, что в целом среди кандидатов, откликнувшихся на все относящиеся к играм объявления о работе, доля женщин составляет 15 %. Также предположим, что ваша конкретная игровая студия нанимала по одному сотруднику в год в течение последних 5 лет. На каждую вакансию откликались по 100 кандидатов. Среди них в среднем было 90 мужчин и 10 женщин (то есть доля женщин составляла 10 %) со стандартным отклонением 5 человек. Это, очевидно, ниже, чем в среднем по отрасли, но является ли эта разница статистически значимой? Какова здесь степень достоверности — вероятность того, что разница в уровне гендерного неравенства между вашей студией и игровой индустрией в целом не обусловлена просто случайными вариациями? (Подсказка: используйте Z-тест.)
Теперь предположим, что на последнее объявление о работе, опубликованное вашей студией в этом году, откликнулись 20 женщин и всего 100 кандидатов и ваша студия решила выделить для интервью более узкий пул из 10 наиболее многообещающих кандидатов. В числе них оказалась только одна женщина. То есть среди дошедших до интервью доля женщин в два раза меньше, чем среди общего количества кандидатов, что может быть признаком предвзятости в первом раунде отбора кандидатов. Является ли эта разница статистически значимой? (Подсказка: чтобы использовать здесь Z-тест, необходимо найти стандартное отклонение выборки, однако принадлежность к мужскому или женскому полу — это не числовой показатель, на основе которого можно было бы рассчитать стандартное отклонение. Чтобы обойти эту проблему, отразите в расчетах принадлежность к полу как число — например, женский пол обозначьте 1, а мужской — 0, затем вычислите среднее значение и величину стандартного отклонения для выборки.)
В карточной игре «Великий Далмути» используется специальная колода из 91 карты. На каждой карте нанесено число от 1 до 13, оно одновременно указывает и стоимость этой карты в игре, и количество таких карт в колоде (то есть в ней 1 единица, 2 двойки, 9 девяток, 13 карт достоинством 13 и т.д.).
Чему будут равны среднее значение, медиана и стандартное отклонение одной случайно вытянутой карты из случайным образом перетасованной полной колоды? (Расчеты проще сделать не вручную, а в электронной таблице.)
Если вы предпочтете выполнить более простую задачу вручную, определите, чему будут равны среднее значение, медиана и стандартное отклонение при броске модифицированного кубика d10 со следующими 10 цифрами на гранях: 1, 1, 1, 1, 2, 2, 2, 3, 3, 4.
Если вас интересует, что следует делать, когда имеется четное количество значений и, соответственно, в середине находятся два значения, то нужно вычислить среднее значение двух центральных значений, которое и будет медианой.