Friday, April 18, 2014

Building a Retrodictive Model

First, regarding the Matrix model I ended up going with, I had concerns about the invertibility of the matrix due to the limited connectedness of teams since there aren't many games played between teams in different parts of the country. However, I only ultimately had to omit one team (due to the team not playing any games as a result of forfeiting all of their matches).

The Matrix model simply takes into account the strength of each opponent and wins/losses (and connects all the teams to determine their relative strength). It's not designed to be predictive, but still should predict future results decently based on each team's past performance. I don't have any working knowledge of the distribution of Ultimate scores, so I can't adapt it to build a predictive portion of the model. The best I could do is something like split the difference between hockey and football, but I don't have any real mathematical justification for doing so.

My original idea for a retrodictive model was one of best fit: but not involving least squares, but instead least absolute deviation. The end result would by a Pyth rating (like my previous models give) that minimizes the following equation:


Σ P(x) - W(x) = luck(x)

Where W(x) = # of wins for team x, and each individual P(x) is a Log5 probability:



Where A is the Pyth rating for team x, and B is the Pyth rating for an opponent on x's schedule. The model would calculate each team's Pyth rating to minimize each team's "luck", and thus provide a model that retrodictively predicts each past game. luck(x) would be the amount x got "lucky" with respect to their "expected" win total.

I tried this out in Matlab, but had issues with calculating a nonlinear minimization function with more than one variable (and in this case I would've needed some 200+ variables solved for involving 1500+ games). Solving for the original Matrix model was trivial compared to that.

No comments:

Post a Comment