Quote:
Originally Posted by brennonbrimhall
This is going to sound extremely stupid, but what is the formula for OPR?
|
The "short" answer is, the "formula" for OPR is
[A][OPR]~[SCORE]
...where OPR for a given team is one of the N elements of the [OPR] N
x1 column vector approximate solution to the overdetermined system of linear equations shown above. N is the number of teams, M is the number of matches, and [SCORE] is a (2M)
x1 column vector of alliance scores for each match in the database being used to do the computation. [A] is a (2M)
xN matrix generated from the database
1.
There are several different methods for finding an approximate solution to an overdetermined system of linear equations
1, but for this particular problem using Normal Equations and Cholesky factorization to find the
least squares solution is perhaps the most common.
Normal Equations solution method:
Code:
Multiply both sides of [A][OPR]~[SCORE] by the transpose of [A]:
[A]T[A][OPR]=[A]T[SCORE]
which can be re-written as
[P][OPR]=[S] (see footnote 2 below)
...where [P]=[A]T[A] and [S]=[A]T[SCORE]
then use Cholesky factorization (see footnote 3 below)
to find the lower triangular matrix [L] such that
[L][L]T=[P]
to get
[L][L]T[OPR]=[S]
now substitute [y] for [L]T[OPR] to get
[L][y]=[S]
and use forward substitution to solve for [y]
then, with [y] known, use backward substitution to solve
[L]T[OPR]=[y]
for [OPR]
1 I can provide the details if anyone's interested
2 The matrix [P] and the vector [S] can be constructed directly from the database, rather than constructing [A] and [SCORES]. In fact, doing so is quicker and requires less memory. I show all the steps in order to make it clear that [OPR] is an approximate solution to the overdetermined data in the database, and that approximate solutions other than least squares are possible.
3 [P]=[A]T[A] will be symmetric positive definite