Бран · продюсер «Хроник Пограничья»
Дизайнер придумал для магазина «Сундук добычи»: пять случайных предметов по той же таблице, что падает с квестов. Говорит, в среднем там 1500 золота, и цену хочет ставить от этого. Тестеры открыли по паре сундуков и ругаются, что внутри мусор на пару сотен. Кто-то из них врёт?
В прошлом уроке мы спрашивали, выпадет ли легендарка. Теперь вопрос «сколько»: сколько золота в среднем приносит предмет и сундук. Для этого у вероятности есть следующий этаж: случайная величина и её среднее.
Случайная величина
Открываешь сундук и смотришь на цену предмета. До открытия она неизвестна, но не произвольна: обычный предмет стоит 5-33 золота, легендарка 3218-8547. Число, которое выдаёт случайный опыт, называют случайной величиной. Обозначим цену предмета буквой X.
Чтобы описать X, нужно знать, какие значения она принимает и с какими шансами. Это её распределение. Таблица добычи за полгода, 7818 предметов:
| редкость | вероятность | средняя цена, золото |
|---|---|---|
| common | 62,24% | 16,1 |
| rare | 25,59% | 121,6 |
| epic | 9,09% | 880,1 |
| legendary | 3,07% | 5712,3 |
Матожидание
Сколько стоит предмет «в среднем»? Хочется сложить четыре цены и поделить на четыре: 1682,5 золота. Но так легендарка весит столько же, сколько обычный предмет, хотя выпадает в 20 раз реже.
Честное среднее взвешивает каждое значение его вероятностью. Это матожидание, его пишут как E[X]:
import pandas as pd
loot = pd.read_csv("loot.csv")
probs = loot["rarity"].value_counts(normalize=True)
means = loot.groupby("rarity")["value_gold"].mean()
(probs * means).sum() # 296.54
loot["value_gold"].mean() # 296.54
Два способа дали одно число, и это не совпадение. Среднее по всем строкам и есть сумма «доля строк × их среднее», просто сгруппированная. Матожидание отвечает на вопрос: если открыть очень много предметов, сколько золота придётся на один. Здесь 296,5.
Среднего предмета не существует
Ни один предмет не стоит 296,5 золота: обычные и редкие не дороже 241, эпики от 394. Медиана цены 21 золото, и 87,8% предметов дешевле матожидания. Тянут его вверх легендарки: это 3% предметов и 59,1% всего золота.
Похоже на лотерею. Из 20 000 билетов по 100 рублей один выигрывает миллион. Матожидание выигрыша на билет 1 000 000 / 20 000 = 50 рублей, хотя 19 999 билетов приносят ноль. Матожидание не обещает типичный результат. Оно говорит, что получится в среднем на очень большом числе попыток.
урок из курса
Урок из курса «Аналитика данных с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.