The Math Forum

Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Math Forum » Discussions » Inactive » comp.soft-sys.math.mathematica

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: Modeling of NFL game results
Replies: 8   Last Post: Dec 29, 2012 3:09 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Ray Koopman

Posts: 3,383
Registered: 12/7/04
Re: Modeling of NFL game results
Posted: Dec 28, 2012 5:32 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On Dec 27, 2:03 am, Scott Hemphill <> wrote:
> Scott Hemphill <> 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
> "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 -
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.

Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© The Math Forum at NCTM 1994-2018. All Rights Reserved.