Re: Modeling of NFL game results

*To*: mathgroup at smc.vnet.net*Subject*: [mg129267] Re: Modeling of NFL game results*From*: Ray Koopman <koopman at sfu.ca>*Date*: Fri, 28 Dec 2012 05:33:43 -0500 (EST)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*Delivered-to*: l-mathgroup@wolfram.com*Delivered-to*: mathgroup-newout@smc.vnet.net*Delivered-to*: mathgroup-newsend@smc.vnet.net*References*: <kbbitr$9oc$1@smc.vnet.net> <kbh6da$iie$1@smc.vnet.net>

On Dec 27, 2:03 am, Scott Hemphill <hemph... at hemphills.net> wrote: > Scott Hemphill <hemph... at hemphills.net> writes: > > [snip] > >> I decided to rate each team with a single number, such that the >> probability that a team rated "r1" has a probability beating a team >> rated "r2" is given by: >> >> p = CDF[NormalDistribution[], r1-r2]; > > Hmmm. I guess my code actually implements "r2-r1" instead of "r1-r2". > It doesn't matter, except one way high ratings are better than low > ratings, and the other is vice versa. > >> filename="matrix.m"; >> prec; > > I don't know how this line got shortened. My original has "prec". > > Scott > -- > Scott Hemphill hemph... at alumni.caltech.edu > "This isn't flying. This is falling, with style." -- Buzz Lightyear Some suggestions. Keep a 32 x 32 data matrix in which data[[m,n]] = the # of times m beat n, m,n = 1...32. The diagonals don't matter. The easiest way to eliminate infinite solutions is to initialize it as data = Table[eps,{32},{32}], where eps is some small positive value. (Use reals.) Update every week: win[m_,n_] := data[[m,n]]++; tie[m_,n_] := (data[[m,n]] += .5; data[[n,m]] += .5); Maximize Tr[LL[x,#]&/@Subsets[Range@32,{2}]]. Fix x[32] = 0, maximize with respect to x[1]...x[31]. Or define x[32] := -Tr[x/@Range@31], to fix the mean at 0. If[logit === True, LL[x_,{m_,n_}] := -(data[[m,n]]*Log[1. + Exp[x@n - x@m]] + data[[n,m]]*Log[1. + Exp[x@m - x@n]]) LL[x_,{m_,n_}] := data[[m,n]]*Log[.5 + .5*Erf[.42(x@m - x@n)]] + data[[n,m]]*Log[.5 + .5*Erf[.42(x@n - x@m)]] ] The .42 puts the two solutions on approximately the same scale for .10 < p < .90 . Caveat user: I haven't tried any of that.