Jump to content


- - - - -

Massey rating .Метод малых квадратов


37 replies to this topic

#1 OFFLINE   yall

    Пунтер


  • Участник
  • PipPip
  • 39 posts
1

Posted 23 March 2015 - 13:20

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

Attached Files

  • Attached File  1.pdf   176.49K   82 downloads


#2 OFFLINE   Bambuk

    Специалист


  • mp
  • 6,322 posts
602

Posted 23 March 2015 - 16:06

Сообщенияyall, on 23 March 2015 - 13:20, сказал:

Приветствую уважаемые форумчане
Не знал куда ещё можно обратиться с таким вопросом кроме как не к Вам
Вообщем изучал темы рейтинга и наткнулся на так называемый рейтинг Massey , метод и расчёт производится благодаря разделу линейной алгебры точнее методом малых квадратов .Понравился подход и получаемые рейтинги атаки и защиты команд , да и рейтинг в целом. Нашёл мануал на английском как всегда , в отдельных моментах понятно в других нет , вообщем целой картины расчёта не получается , кто понимает в математике не зависимо от языка помогите пожалуйста произвести расчёты или хотя бы дать краткий алгоритм действий . буду премного благодарен
Метод называется наименьших квадратов. Суть примерно такая--- Вы сильно забухали и у Вас "сбился прицел"..Вы берёте штангенциркуль и начинаете метить голову соседа
одного, потом другого.... получили измерения ИЗ1 ИЗ2 и по ним собрались определить размер шляпы....но оказалось что реально размер головы Р1 и Р2 о чём и поведали вам сподвижники,
тогда погрешности Р1-ИЗ1=е1 Р2-ИЗ2=е2...Теперь допустим Вы близоруки и "прозрение" наступает после какого-то стакана (после 0,1, 2....итд).....Тогда давайте мерить так--
мерием до употребления получили е1(0) е2(0) потом залудили 1 и снова за циркуль получили е1(1) е2(1)..ну и так далее. теперь допустим мы постоянно вычисляем вот такой функционал F(i)= e1(i)^2+e2(i)^2 и записываем данные чернильным пером на 100 долларовой купюре..... получили по нашим данным минимум на 5-том стакане (момент "прозрения")
после 5-того функционал начал сильно расти...........вот это и есть метод наименьших (гранёных) квадратов. Так вот в Вашей задаче i-суть рейтинги команд
А ваши измерения например=рейтинг1-рейтинг2--это суть ИЗ , а реальные размеры в простейшем варианте=закодированному исходу игры, например так ИСХ= "1" если в П1 выиграли "0"-ничья "-1"-проигрыш.
тогда е(погрешность) при таком раскладе вот что ИСХ-(рейтинг1-рейтинг2) теперь если считать рейтинги неизвестными то одним из способов их найти является требование минимизации суммы квадратов отклонений измерений и реальных результатов. Для этого ни какой линейной алгебры нах.....не надо---берите ексель и делайте типа шахматки
рейтинги по строкам и рейтинги по столбцам вне самой таблицы (они нам неизвестны поэтому надо начать с каких-то априорных значений...они выбираются из разных соображений)

далее если мы имеем типа второй шахматки-таблицы с такими записями 1 или 0 или -1 в клетках (которые суть ВНП)
то в первой таблице Вы в клетку вводите формулу которая вычисляет квадрат отклонения от данных второй матрицы...а потом просто где-то в отдельной клетке суммируете всё это---это будет целевой ячейкой для инструмента "поиск решения". Чтоб было удобнее забивать данные в "поиск реш." можно в столбец около первой таблицы загнать транспонированную строку рейтингов (которая над таблицей расчёта). Если что-то ещё там навёртовать на рейтинги или сам механизм получения "ИЗ" (измерений), то сама суть не поменяется.

#3 OFFLINE   Bambuk

    Специалист


  • mp
  • 6,322 posts
602

Posted 23 March 2015 - 16:30

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

#4 OFFLINE   Noname

    Специалист


  • mp
  • 2,445 posts
349

Posted 23 March 2015 - 17:09

Уважаемый Bavbuk/
А что Вы можете сказать про такую систему ставок " Masaniello"
Я недавно наткнулся на эту штуку ;)
Чисто итальянская вещь.
Они там просто фанатеют от этой системы :)

#5 OFFLINE   sergei7000

    Специалист


  • mp
  • 2,043 posts
180

Posted 23 March 2015 - 17:33

СообщенияNoname, on 23 March 2015 - 17:09, сказал:

Уважаемый Bavbuk/
А что Вы можете сказать про такую систему ставок " Masaniello"
Я недавно наткнулся на эту штуку ;)
Чисто итальянская вещь.
Они там просто фанатеют от этой системы :)

Прогуглил . Выдало имя одного революционера и название ресторана . :)

#6 OFFLINE   Noname

    Специалист


  • mp
  • 2,445 posts
349

Posted 23 March 2015 - 18:47

Сообщенияsergei7000, on 23 March 2015 - 17:33, сказал:

Прогуглил . Выдало имя одного революционера и название ресторана . :)
гугли masaniello trading ;)
Итальяшки там реально бабло рубят :D :D :D

#7 OFFLINE   Bambuk

    Специалист


  • mp
  • 6,322 posts
602

Posted 23 March 2015 - 19:24

Константы Masaniello на 1 поток:
размер банка;
максимальное количество ставок, которые собираемся сделать;
фиксированное минимальное количество ставок, которые выиграют(процент угадывания);
Ограничение - следующее событие можно брать только после расчета предыдущего и знания наступившего по нему исхода---только таким образом можно будет рассчитать размер следующей ставки. Чтоб избавиться от части ограничений применяют многопотоковые методы ведения дел….

Я не знаю по каким формулам и с применением каких условий рассчитываются размеры ставок по Masaniello (там несколько условий может быть и разновидностей по целям)…но по сути это просто управление капиталом, а не выбором пар для определённых исходов…..предполагается (авторами) что данный метод эффективнее флета. Но степ—бай--степ можно ставить и по Келли. Я просто знаю одно—любой механизм управления ставками (суммами ст.) если он агрессивнее и даёт больше флета при положительном МО, то будет давать более серьёзные убытки в случае отрицательного МО(или если реализация такова что формально как бы мо отрицательно…хотя в реалове мож и положительно) ибо в мире всё сбалансировано и «если где-то убыло, то где-то прибыло».
Я тут приводил простую формулу для модифицированного догона…там можно по идее
ещё несколько условий ввести—например, попробовать брать например длинную последовательность в несколько приёмов двигаясь степ-бай-степ со своими целями и стоп-профитами (разбивая допустим 100 на 2*50 или 3*33 и вот типа того) можно наверно ещё что-то намутить там для большей гибкости добавив параметры…… по идее если псевдо-фиксируются какие-то параметры и предполагается какой-то % захода, то часть параметров мы всё равно точно не знаем и причём в последовательности могут быть выбросы по числу заходов как в + так и в минус…и экспериментальные частоты нам по любому априорно не известны (так как мы их получим только после всех ставок или их части) поэтому ХЗ сколько зайдёт, а скока нет.
Да тут не до жиру—быть бы живым….ставя по рублю….а вот когда будет мильён можно подумать и о Masaniello…..или что там ещё есть… по сути как я понял это по направленности-- способ разогнать банк до некоторых размеров, а потом там можно поменять тактику……

Пример разновидности Masaniello
система, чтобы выиграть 10U, с Банком 22U (цель около 10 )
ставим на кефф около 2
Если вы потеряете 3 игры-- потеряете деньги.

4 ст., на основании данных в таблице:
1.st - 2.st - 3.st - 4.st
6U If_W 4U If_W закрыт + 10U
6U If_W 4U If_L 8U if_W закрыт + 10U
6U If_W 4U If_L 8U if_L 16U If_W закрыт + 10U
6U If_L 8u If_W 8U if_W закрыт + 10U
6U If_L 8u If_W 8U if_L 16U If_W закрыт + 10U
6U If_L 8u If_L 8U if_W 16U If_W закрыт + 10U

Edited by Bambuk, 23 March 2015 - 19:28.


#8 OFFLINE   yall

    Пунтер


  • Участник
  • PipPip
  • 39 posts
1

Posted 24 March 2015 - 16:09

Приветствую Bambuk
Очень благодарен что Вы всегда отзываетесь и достаточно подробно всё расписываете , но в данном случае к моему сожалению я не понял оригинальный пример с употребившим алкоголь персонажем . Хотелось бы конкретно по теме футбола .. Если Вас не усложнит можно пример с расчётом пожалуйста. В моём случае я добивался расчёта этих рейтингов , но каким то иным образом , не как описывает в документе господин Кенет Массей . У меня матрица с 1 0 -1 строилась по такому принципу : сколько команд столько столбцов , сколько игр столько строк , 1 ставилась где команда играет дома , -1 команда выезд , остальные 0 , т.е. в строке для одной игры с 20 командами было 18 нолей одна 1 и одна -1 . Ну и дальше транспонирование , умножение , обратные матрицы... Ещё и определитель приплетался.. иногда он был равен нулю , а тут уже ранг матрицы определяют по другому принципу.. Вообщем сложный процесс как мне показалось... Тут описывается всё по другому принципу как я понял.. Ещё и с возможностью вычислить рейтинг атаки и защиты.. Не хотелось показаться нахалом , но всё же помогите разобраться , разжевать скажем так , буду благодарен

Спасибо

Edited by yall, 24 March 2015 - 16:10.


#9 OFFLINE   Bambuk

    Специалист


  • mp
  • 6,322 posts
602

Posted 24 March 2015 - 18:16

Я там статью саму полностью не читал--так как в английском не силён. Можно конечно автоперевод сделать но там тогда часто смысл теряется...так как технический английский он там может другой перевод иметь исходя из контекста. Дело в том что сам расчёт--"измерение" как бы может иметь кучу вариантов...это зависит от вида самой функции регрессии.
Я просто попробую для простейшего случая показать.
вот допустим лига (состоит из 3 ком.)
ком1 ком2 ком3

вот игры/и данные по ВНП в виде 1--В 0-Н -1--П обозначим как Rez_ij (например в первой строке ниже Rez_12=1)

ком1--ком2/1
ком1-ком3/0
ком2-ком3/1

ком2-ком1/0
ком3-ком1/-1
ком3-ком2/0

тогда обозначим рейтинги так Рд1 Рд2 Рд3--это рейтинги для домашнего состояния для гостевого тоже самое, но с буквой г ( Рг1...итд)
пусть функция которая даёт рез имеет вид Рд-Рг (то есть просто разности рейтингов)

тогда для показанных игр найдём погрешности еij=Rez_ij-(Рдi-Ргj) i,j--это условные номера(индексы) команд (или можно вот так еij=(Рдi-Ргj)-Rez_ij так как потом всё равно в квадрат возводим)
и потом возведём их в квадрат.
вот то что ниже (погрешности) надо возвести в квадрат и сложить---получим целевую функцию минимум которой зависит от значения рейтингов
Рд1-Рг2-1
Рд1-Рг3-0
Рд2-Рг3-1

Рд2-Рг1-0
Рд3-Рг1+1
Рд3-Рг2-0

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

вот что должно примерно получаться https://yadi.sk/i/nA83LXxLfVJeb
там в нижней матрице в скобках стоят резы (если *--то игры не было(в шахматке нет её)...это тут по ходу пьесы просто попалась шахматка под руку вот я её и обработал)
В таблице с красным шрифтом там квадраты погрешностей а в нижней разность рейтингов (и там где звёздочки то там формально ваш прогноз=разности рейтингов которые по ретро данным получены...вот посмотрите сможете вы чёта там "прогнозировать"---игры поищите которые в звёздочках состоялись...так как это старая шахматка)

Edited by Bambuk, 24 March 2015 - 18:24.


#10 OFFLINE   yall

    Пунтер


  • Участник
  • PipPip
  • 39 posts
1

Posted 24 March 2015 - 22:33

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

http://rghost.ru/6VXxflhb6
Тут лежит описание наверное в самом простом и понятном варианте , собственно я так и расчитывал как тут описано , но мои расчёты заходят в ступор переходя на страницу номер 5 этого документа и всё бы ничего , но вот технический английский не даёт понять что делать , появляется матрица в которой диагональ все 4, а остальные -1, далее чуть ниже появляется матрица только последняя строка все 1 , а чуть правее после знака равенства напротив этой же строки с единицами вводится 0 , я предполагаю что это какой то метод избежать нулевого ранга матрицы , но могу ошибаться .. Может быть Вы сможете это объяснить

rghost.ru/7RtpGXl4j
В этом файле есть расчёты касательно рейтинга атаки и защиты , не могу понять, вводятся новые матрицы , а с какими данными..


А этот копипаст взят с официального сайта самого Массея

Цитата

Game Outcome Function (GOF)
Given the score of a game, GOF(pA,pB) assigns a number between 0 and 1 that estimates the probability that team A would win a rematch under the same conditions. Based on previous experience, it seems reasonable to distinguish between a 10-0 win and a 50-40 win. A close high scoring game is likely to have more variance, and less likely to be dominated by either team. While a low scoring game may indicate a defensive struggle, or poor game conditions. In which case, a small deficit is more difficult to overcome. Sample GOF values are listed below:

[img]storage1.static.itmages.ru/i/15/0324/h_1427232927_3196206_25f73efb3a.png[/img]

Each game score is plugged into a GOF that outputs the estimated probability that team A would win if the game were played again under the same conditions. This is independent of any other information since it involves only that one game in isolation. For example, it may be determined that the winner in a 30-14 game has a 88% chance of winning a rematch, while a 27-24 winner only has a 58% of winning again.
Notice that a diminishing returns principle is manifested in this GOF. There is some advantage to winning "comfortably," but limited benefit to running up the score. A team will not be penalized just for playing a weak opponent (although it becomes much harder to improve its rating by blowing someone out).
Calculate Ratings
Each team's gametime performance is assumed to be normally distributed about a certain mean (its rating). The probability that team A would defeat team B is then determined from the cumulative distribution function (CDF) associated with a normal random variable.
Let p = Prob(A beats B) = F(rA,rB,hA,hB), where rA,hA and rB,hB are ratings and home advantages of teams A and B respectively. F is a function of rA,rB,hA,hB that is based on the CDF of a normal random variable.
All the game scores are translated to a scale from 0 to 1 by the GOF. Let g = GOF(pA,pB), where pA and pB are the points actually scored by teams A and B in a particular game.
A nonlinear function of the teams' ratings is formed by multiplying terms that look like:

p^g * (1-p)^(1-g)

Here ^ denotes an exponent. Also note that 0 <= p,g <= 1. By maximizing the resulting function, maximum liklihood estimates (MLE) are obtained for the ratings and home advantages. The optimization problem may be solved with standard techniques such as Newton's method.
Preseason ratings may be implemented via prior distribution factors in the optimization function. Their importance diminishes as the season progresses, and they are negligable by the end of the year. A strong prior distribution must be used to compensate for lack of enough single season data for the home advantages.
Time weighting is a debatable practice, however I believe that more recent games are generally better indications of a team's true strength. An exponential decay based time weighting is applied by premultiplying g by some weight w.

Этот текст тоже вызывает ряд вопросов.. Например функция GOF которая как я понял показывает что победа 2-0 и 5-3 это разные вещи , а по какому принципу это определяется ? каким то распределением ?

p^g * (1-p)^(1-g) - что высчитывает эта формула ?


p = Prob(A beats B) = F(rA,rB,hA,hB) - в этой формуле вроде всё ясно , необходимо произвести интегральное распределение rA,rB,hA,hB


g = GOF(pA,pB) - опять же функция GOF , имеет границы от 0 до 1 , в зависимости от счёта и разницы в нём принимает разные значения , а каким образом эти значения получаются я так и не понял



Вот такая вот пища для размышления...

Edited by yall, 24 March 2015 - 22:39.


#11 OFFLINE   sergei7000

    Специалист


  • mp
  • 2,043 posts
180

Posted 25 March 2015 - 00:38

Сообщенияyall, on 24 March 2015 - 22:33, сказал:

Этот текст тоже вызывает ряд вопросов.. Например функция GOF которая как я понял показывает что победа 2-0 и 5-3 это разные вещи , а по какому принципу это определяется ? каким то распределением ?

p^g * (1-p)^(1-g) - что высчитывает эта формула ?


p = Prob(A beats B) = F(rA,rB,hA,hB) - в этой формуле вроде всё ясно , необходимо произвести интегральное распределение rA,rB,hA,hB


g = GOF(pA,pB) - опять же функция GOF , имеет границы от 0 до 1 , в зависимости от счёта и разницы в нём принимает разные значения , а каким образом эти значения получаются я так и не понял



Вот такая вот пища для размышления...
перевод




Учитывая счет одной игры , GOF (Pa, Pb) присваивает номер между 0 и 1, который оценивает вероятность того, что команда выиграет матч-реванш на тех же условиях . Основываясь на предыдущем опыте, кажется разумным провести различие между победой со счетом 10-0 и победой со счетом 50-40 .

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

[IMG] storage1.static.itmages.ru/i/15/0324/h_1427232927_3196206_25f73efb3a.png [/ IMG]

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

Это не зависит от какой-либо другой информации, поскольку вероятность включает в себя только одну игру в изоляции. Например, это может быть определено, что победитель в игре со счетом 30-14 имеет 88% шансов на победу в матче реванше, в то время как победитель 27-24 имеет только 58% на победу снова.

Обратите внимание, что работает принцип уменьшения шансов у команд в этом GOF.

Существует некоторое преимущество для "удобной" победы , но ограничения для увеличения шансов . Команда не будет оштрафована только из-за слабого противника (хотя будет гораздо труднее улучшить свой рейтинг, выдóвая кого-то).

Рассчитать Рейтинги

Производительность GameTime каждой команды должны быть нормально распределены в каком-то усреднении (его рейтинг или турнирном положении).

Вероятность того, что команда А победит команду В этом случае определяется из кумулятивной функции распределения (CDF), связанной с нормальной случайной величины.

Пусть р = Prob (А выигрывает Б)= F (Ra, Rb, HA, HB), где Ra, Rb, HA, HB являются домашним преимущество команд А и В соответственно.

F является функцией Ra, Rb, HA, HB, которая основана на CDF нормальной случайной величины.

Все результаты игр будут переведены на шкале от 0 до 1 по GOF. Пусть G = GOF (Pa, Pb), где РА и РВ являются моментами в игре когда забили команды А и В в одной конкретной игре.
Нелинейная функция оценок команд формируется путем умножения условия, которые выглядят так:
р ^ г * (1-р) ^ (1-г)

Здесь ^ обозначает показатель. Также отметим, что 0 <= р, г <= 1. При достижении максимума полученной функции , оценки максимального liklihood (MLE) являются для оценки и домашних преимуществ . Задача оптимизации может быть решена с помощью стандартных методов, таких как метод Ньютона.

Рейтинги Предсезонные могут быть реализованы с помощью предыдущих коэффициентов распределения в функции оптимизации. Их значение уменьшается по мере продвижения сезона, и они незначительны, к концу сезона . Сильное априорное распределение должно быть использовано для компенсации из-за отсутствия достаточного количества данных за новый сезон для домашних преимуществ.
Время взвешивания является спорной практикой, однако я считаю, что более поздние игры, как правило, лучшие признаки истинной силы команды. Экспоненциальный спад на основе временной остановке (перерыве) применяется Умножая g , под некоторым весом .

Edited by sergei7000, 25 March 2015 - 00:42.


#12 OFFLINE   Bambuk

    Специалист


  • mp
  • 6,322 posts
602

Posted 25 March 2015 - 01:40

Сообщенияyall, on 24 March 2015 - 22:33, сказал:

мои расчёты заходят в ступор переходя на страницу номер 5 этого документа и всё бы ничего , но вот технический английский не даёт понять что делать , появляется матрица в которой диагональ все 4, а остальные -1, далее чуть ниже появляется матрица только последняя строка все 1 , а чуть правее после знака равенства напротив этой же строки с единицами вводится 0 , я предполагаю что это какой то метод избежать нулевого ранга матрицы , но могу ошибаться .. Может быть Вы сможете это объяснить

У буржуев всё через Ж. Смысл примерно такой----то что матрица 5Х5 в начале стр.5 это результат умножения транспонированной матрицы Х на матрицу Х
так как получаем линейно зависимые вектора...то автор выкинул одно уравнение(так как оно может быть получено линейной комбинацией оставшихся в системе и определитель матрицы получается =0) и заменил его на уравнение, которое как бы нормирует рейтинги---тупо приравниваем сумму рейтингов=0 этот факт отражён в матрице следующей за начальной в виде всех 1 в последней строке. Если вы эту строку умножите на вектор рейтингов то получите уравнение о котором я написал сум.рейт.=0
таким образом система стала разрешимой относительно рейтингов.

Относительно остального пока не готов ответить точно...так как в английском плыву ....(ко дну)...
Вы напишите что Вы конкретно хотите добиться от всего сего? Нах..нам корячится с буржуйскими переводами, можно взять саму идею и сделать по нашему (по-бразильски... ламбада из Порту-Сегуру с шаманскими бубнами Алтая)........

#13 OFFLINE   yall

    Пунтер


  • Участник
  • PipPip
  • 39 posts
1

Posted 25 March 2015 - 18:28

Приветствую Bambuk

Спасибо большое за ответы
Отвечу на Ваш вопрос чего я хочу конкретно.. Я хочу взяв этот метод для рейтинга , погонять его по ставкам , найти какие то зависимости , так как эти рейтинги имеют хорошие отзывы у буржуев как бы Вы выразились ) .. особенно в американском футболе. Хочу всё таки разобраться в методе вычисления рейтингов атаки и обороны.. которые в сумме дают общий рейтинг , тот что вычисляется путём умножений матриц транспонирования и т.д. В общем хочу покопаться глубже по этой теме , меня очень интересуют системы рейтингования , может быть вы какие то посоветуете лучше

Чуть позже выложу готовый эксель файл в котором я всё таки добился вычисления рейтингов , но только общих , как эти рейтинги разложить на рейтинги атаки и обороны пока разобраться не могу

Спасибо

#14 OFFLINE   Bambuk

    Специалист


  • mp
  • 6,322 posts
602

Posted 25 March 2015 - 20:10

Сообщенияyall, on 25 March 2015 - 18:28, сказал:

Приветствую Bambuk

как эти рейтинги разложить на рейтинги атаки и обороны пока разобраться не могу


На самом деле можно не заморачиваться особо именно с той методикой вычисления которую предлагает доцент Кенет Массей (он не особо афиширует свои методики и тому как я понимаю есть какие-то причины...). На самом деле рейтинги можно тупо рассматривать как параметры какой-то модели и исходить из этого. Вот давайте попробуем что называется с чистого листа построить что-то. Возьмём вот такие параметры Roh_i -атака ком. i дома Rba_i -оборона на выезде Roa_i --атака на выезде Rbh_i --оборона дома которые характеризуют команду " i ". теперь Вы просто задаёте (назовём прогнозирующей) функцию которая по сути похожа допустим на какой-то прибор--вольтметр.....амперметр или линейку. Теперь если допустим взять вольтметр и мерить эталонное напряжение 12в 10 раз то получите какие-то цифры 12.1 12.2 12.05....11.9 итд. потом допустим вольтметров много и Вам надо выбрать самый хороший...тогда промерив всеми вольтметрами эталон и получив по 10 резов вы просто суммируете квадраты погрешностей (измеренное-эталон)^2 каждого и там где сумма минимальна тот и лучше. Задача с рейтингами ни чем не отличается от этой. так же как и у вольтметра "начинка прибора" может быть различна---это вид нашей прогнозирующей функции. Вот так можно мерить--- допустим есть рез матча com_i and com_j 5-2 тогда исходя из введённых рейтингов можно мерить рез каждой
Roh_i-Rba_j (измеряем 5) Roa_j-Rbh_i (изм. 2) тогда для одной игры у нас в целевую функцию суммируются (Roh_i-Rba_j-5)^2+(Roa_j-Rbh_i -2)^2
продолжая для следующих пар получим то что надо--все суммы квадратов отклонений по имеющимся играм. Потом просто решается задача минимизации и всё.
Но можно мерить как доцент и допустим не учитывать дом/гость..а мерить можно вот эту разность 5-2=3 тогда опустим индексы д/г (Ro_i-Rb_j)-(Ro_j-Rb_i) а эталон=3
теперь допустим вам показалось этого недостаточным тогда вы можете взять как выше д/г персонально а можете ввести параметр домашнего эффекта персонализированный для каждой команды d_i (Ro_i+d_i-Rb_j)-(Ro_j-Rb_i) ---это уже другая функция и другой набор параметров модели
(Ro_i+d_i-Rb_j)-(Ro_j-Rb_i-Е*d_i) где Е какая-то константа общая для всех и это уже другой "измерительный прибор"
можно измерять и так Roh_i*Rba_j - Roa_j*Rbh_i для 5-2=3 и 3 тут эталон но можно опять разделить персонально для счёта ком1 и ком2 и погрешности вот так будут вычисляться
( Roh_i*Rba_j-5)^2+(Roa_j*Rbh_i)^2

можно взять и другие конструкции--более сложные или менее сложные.....но Вам-то надо понять---какая конструкция лучше? Кто Вам сказал что предложенная доцентом лучше остальных тут представленных? Можно например сделать две--по голам и по исходам ВНП(как я показывал на рисунке https://yadi.sk/i/nA83LXxLfVJeb), а потом использовать резы совместно и так далее..... при этом надо понимать технологию до конца --- что надо нам для ставок (а не куда-то там в паблик выложить рейтинг за прошлый сезон).А технология не особо мудрёная---надо просто определиться по каким объёмам вычислять рейтинги..так как на начальном этапе можно подгружать часть данных (либо последние из пред. сезона или до некоторого объёма игры соответствующие текущему календарю (которые только предстоит играть и поэтому данные по ним есть только в пред.сезоне)) потом просто идём степ-бай-степ по ретро и получаем наши "прогнозы" в виде цифр и куда-то заносим...потом неплохо это всё проанализировать и выработать процедуры принятия решений о той или иной ставке (это надо знать балансы) и в целом получается тоже самое как работа с критериями какими-то).

Такой механизм вычисления рейтингов плох тем что он плохо отслеживает динамику--так как определяем по массивному объёму без разбора--что последнее а что первое произошло.
Поэтому дальнейшее развитие может проходить по схеме--определяем рейтинги например после 8-го тура с подгрузкой каких-то данных, а потом корректируем рейтинги методом штрафов в зависимости от резов (одной игры или допустим совокупности 3-5 последних игр )

Теперь что удалось перевести из других источников и не понять до конца по Massey


Нападение и оборона

В первой части мы изначально определили Massey Рейтинг как показано ниже в уравнении:
y=rarb где у преимущество для победы,ra рейтинг команды а и rbрейтинг команды б. Определить общие цели команды можно из уравнения—сколько должна забить в матче ….. уравнение с двумя неизвестными см. ниже:
ya=oadb гдеyaэто количество голов команда, как ожидается, чтобы выиграть,oaсила нападения команды А иdbсила оборона команды Б.
Развивая идею дальше мы можем сказать, что общее количество голов, которые команда должна забить в течение сезона приблизительно равно силе атаки умноженной на число сыгранных матчей за вычетом суммы обороны те. рейтингов силы обороны всех своих противников---мы получим ожидаемую общую(суммарную) массу голов.Поскольку мы знаем, общую оценку команды, сколько матчей они играли, сколько голов было забито, и кто их противники были, мы получаем приближение того что нам нужно.

Разложить Massey Matrix

Далее нам нужно разложить Massey Matrix, которую мы создали в первой части на составные элементы, чтобы дать нам две новых матриц, G и Р, которые мы используем в уравнении ниже:
(GP)r=p гдеGявляется Всего игр,Р--число попарно матчей сыгранных командой,rявляются Massey Рейтинги команды и р -- вектор целевых дифференциалов команды.
Далее, Кен Massey использует какую-то хитромудрую алгебру, чтобы получить эквивалент уравнения для четырех параметров см. ниже:
(G+P)d=Grf гдеG---Всего игр,Р---число попарно матчей которые команда играла,dявляется оборонительной рейтинг иfявляется число забитых голов.

Edited by Bambuk, 25 March 2015 - 20:12.


#15 OFFLINE   yall

    Пунтер


  • Участник
  • PipPip
  • 39 posts
1

Posted 29 March 2015 - 08:52

Приветствую Bambuk , наконец то смог прочитать ваш ответ

Цитата

Но можно мерить как доцент и допустим не учитывать дом/гость..а мерить можно вот эту разность 5-2=3 тогда опустим индексы д/г (Ro_i-Rb_j)-(Ro_j-Rb_i) а эталон=3
Немного не сообразил , хотел уточнить на этом примере
Ro_i - атака команды i
Rb_j - оборона команды j
Ro_j - атака команды j
Rb_i - оборона команды i
Для этих переменных изначально задаются всем одинаковые значения , допустим 10 ? или как ?
Допустим счёт 5-2 мерим по разности 3
(Ro_i-Rb_j-3)^2-(Ro_j-Rb_i-3)^2 ? Тогда если подставить начальные значения то получится 0 , значит я что то неправильно понял ?

#16 OFFLINE   yall

    Пунтер


  • Участник
  • PipPip
  • 39 posts
1

Posted 29 March 2015 - 09:54

Bambuk не сочтите за наглость , но мне было бы понятней ,что Вы до меня пытаетесь донести, если бы Вы показали расчёт на примере
У меня бы вопросов мне кажется больше бы не осталось
Вот прикладываю эксель файл на котором я что то пытался сообразить по Вашим объяснениям , 3 тура 20 команд , сверху по горизонтали названия команд , под названиями начально установленные рейтинги для атаки и обороны в зеленой и красной клетке соответственно , между турами есть пустые строки , я их оставил для новых рейтингов
Приведите пример с расчётом для одного тура пожалуйста чтоб мне стало ясно уже наконец , а то я вокруг да около и Вас беспокою по чём зря

rghost.ru/6JwKChQqq

Edited by yall, 29 March 2015 - 10:01.


#17 OFFLINE   Bambuk

    Специалист


  • mp
  • 6,322 posts
602

Posted 29 March 2015 - 16:43

ПРИМЕР https://yadi.sk/i/LEziOffifbUjx

По трём турам рейтинги лучше не вычислять---для атаки и обороны и с учётом Д/Г этих данных недостаточно.

Если использовать понятия атаки--обороны для команды то через разности рейтингов и разности голов там не получится---дело в том что модель вырождается просто в модель
без понятий атака-оборона.
вот допустим так считаем (Ratak_i-Rzachit_j)-(Ratak_j-Rzachit_i)= (Ratak_i+Rzachit_i)-(Ratak_j+Rzachit_j)=Ei-Ej
поэтому вместо того что я в примере показал надо задачу формально разделить на две---
вместо разности берём сначала матрицу забитых голов домашней и тогда формально Rh=Ratak_i(h)-рейтинг нападения дом.ком дома Ra=Rzachit_j(a)-рейтинг защиты гостевой в гостях. В матрице квадратов разностей вместо данных из матрицы Д-Г будут данные Д (забитые голы домашних ком).

потом для второй части формально Rh=Ratak_j(h)-рейтинг нападения гостевой.ком в гостях Ra=Rzachit_i(a)-рейтинг защиты домашней дома.
и используем матрицу Г

в примере я показал как искать рейтинги для разности Rh_i-Ra_j приближаем к разности счёта Zi-Zj=Dij

По идее там можно для "поиска решения" объединить две задачи и прописать 4 рейтинга (а не два) а в матрицу забить сумму квадратов разности от двух подзадач (то есть отклонения от счетов Zi--для первой подзадачи Zj-для второй).

рейтинги ищем "поиском решения".

Если чё непонятно спрашивайте снова (я много что сам понимаю, а пояснить качественно не могу)

#18 OFFLINE   Bambuk

    Специалист


  • mp
  • 6,322 posts
602

Posted 29 March 2015 - 17:02

Там ещё вот эти цифры 33 99 66 --это просто как маркеры-заполнители... сделал просто чтоб акцентировать ваше внимание на необходимость различать пустые клетки и клетки с "0" так как некоторые функции воспринимают пустую клетку как "0".... там можно по идее любой символ поставить как маркер.
Вообще в екселе задачи которые, Вас интересуют можно решать и инструментом "множественная регрессия" из пакета анализа.

Edited by Bambuk, 29 March 2015 - 17:05.


#19 OFFLINE   yall

    Пунтер


  • Участник
  • PipPip
  • 39 posts
1

Posted 30 March 2015 - 12:40

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

#20 OFFLINE   Bambuk

    Специалист


  • mp
  • 6,322 posts
602

Posted 30 March 2015 - 13:55

Сообщенияyall, on 30 March 2015 - 12:40, сказал:

Приветствую Bambuk
Всё пока не изучил , но по первому предложению сразу вопрос , какие данные необходимы чтобы по трём турам можно было б определить рейтинги ? Имеется в виду дополнительная статистика типа удары , угловые ?
Теоретически можно хоть по туру определить, но на сколько это будет близко к истине?
Вообще в общем виде если линейную модель смотреть то делается примерно так: вот допустим Y--это параметр который хотим спрогнозировать, а вот это Y*-модель
теперь допустим мы имеем параметры какие-то для команд А1 А2 А3..... для первой ком Б1 Б2 Б3...итд для второй (по смыслу обычно А1 как Б1 итд допустим голы-голы, углы-углы итд..)
тогда модель можно вот так задать Y*=m1a*А1+ m2a*А2+ m3a*А3+ m1б*Б1+ m2б*Б2+ m3б*Б3+с
m1a m2a m3a m1б m2б m3б с --это какие-то коэффициенты.

теперь представьте что у нас много пар нам надо найти квадраты отклонений от Y (Y--это уже известный результат чего-то там что нам надо...но это может быть и код--как я показывал 1;0;-1 для ВНП итд итп)
(Yi-(m1a*А1+ m2a*А2+ m3a*А3+ m1б*Б1+ m2б*Б2+ m3б*Б3+с)i)^2 i=1,2.......n -число пар (в скобках там параметры А1 А2 А3 Б1 Б2 Б3 для конкретной пары с условным номером i
допустим если в туре 10 пар то три тура это 30 и тогда n=30

теперь если мы сложим все квадраты разности ∑(Yi-(m1a*А1+ m2a*А2+ m3a*А3+ m1б*Б1+ m2б*Б2+ m3б*Б3+с)i)^2 i=1,2.......n
то получим функцию (функционал) S=Fs(m1a, m2a, m3a,....., m1б, m2б, m3б,...., с) зависящий только от параметров--множителей и не зависящий от параметров пар.
и решается задача оптимизации MIN(Fs) при каких-то возможно ещё условиях--ограничениях в виде равенств или неравенств.
Для безусловной оптимизации если Fs имеет частные производные второго порядка не=0 то можно решать
из системы где мы частные производные по вот этим множителям m1a, m2a, m3a,....., m1б, m2б, m3б,...., с приравняем 0....
вот допустим производная по m1a записывается ∂Fs/∂m1a = 0

Это всё в екселе есть в пакете анализа....кроме того Вы получаете информацию о значимости того или иного коэффициента m1a, m2a, m3a,....., m1б, m2б, m3б,...., с
поэтому если он не значим то и параметр команды который с ним множится можно не учитывать в модели....и модель упрощается (этот член просто выкидывают)
кроме того Вы можете ввести искусственно вот такие допустим параметры m1a^2=t1 m1a*m2б=t2 m3б^5=t3 и вообще что в голову взбредёт....
Y*=m1a*А1+ m2a*А2+ m3a*А3+ m1б*Б1+ m2б*Б2+ m3б*Б3+с+E1*t1+E2*t2+E3*t3
а дальше всё тоже самое что и для предыдущего примера. Но MIN(Fs) можно в екселе искать по идее и "поиском решения"....

Edited by Bambuk, 30 March 2015 - 13:57.