Open Alex-At-Home opened 4 years ago
So currently the effect of my unbiasing is to dole out the adjusted margin in approx % of minutes played, which is not ideal
Alternatives:
J
prior should apparently be estimated as sum(1,p)(OLS[i]/p)*Id(1, p)
) where OLS[i]
is the OLS-based estimate for player p
(Useful page with some info about error estimation: https://stats.stackexchange.com/questions/216335/standard-error-for-a-parameter-in-ordinary-least-squares)
Did some experiments here: https://github.com/Alex-At-Home/cbb-on-off-analyzer/tree/rapm_experiments
UPDATED: fixed by https://github.com/Alex-At-Home/cbb-on-off-analyzer/commit/d6528a6ec2c0288ff973230156f8086e51cece0d
As I feared but stupidly didn't follow up on hard enough, you can run into trouble if the delta over average is near 0, eg here's the Xavier offense:
[Log] ********* [off] RAPM WITH LAMBDA 2.240 / 4
[Log] ["Marshall, Naji", "Carter, Jason", "Scruggs, Paul", "Jones, Tyrique", "Goodin, Quentin", "Freemantle, Zach", "Tandy, KyKy", "Moore, Bryce", "Bishop, Dahmir", "James, Dontarius"] (10)
[Log] rapm[PRE]: 0.761,-0.218,0.509,1.277,-0.048,-0.702,0.462,-0.848,-0.371,0.282
[Log] rapm[POST]: -4.968,4.822,-1.731,-9.310,7.790,-3.268,2.352,10.879,19.736,11.289
[Log] combinedRapm[PRE] = [1.2] vs actualEff = [1.7] ... Err[PRE] = [0.5] Err[POST]=[0.0]
RAPM comes up with a super sane estimate but to handle that 0.5 error, it adds lots of big +ve and -ve numbers together :(
RAPM Priors = [{"includeStrong":{},"playersStrong":[{},{},{},{},{},{},{},{},{},{}],"playersWeak":[{"off_adj_ppp":2.607,"def_adj_ppp":-2.046},{"off_adj_ppp":-2.294,"def_adj_ppp":-1.841},{"off_adj_ppp":1.02,"def_adj_ppp":-1.807},{"off_adj_ppp":4.819,"def_adj_ppp":-2.984},{"off_adj_ppp":-3.567,"def_adj_ppp":-1.312},{"off_adj_ppp":1.168,"def_adj_ppp":-1.401},{"off_adj_ppp":-0.86,"def_adj_ppp":-0.127},{"off_adj_ppp":-5.337,"def_adj_ppp":-1.411},{"off_adj_ppp":-9.151,"def_adj_ppp":-1.434},{"off_adj_ppp":-5.01,"def_adj_ppp":-0.012}]}]
In fact you'll see Goodin
goes from -0.048
before to +7.790
with his prior of -3.567
During testing of #171, seem to have found a bug
Compare Prim Gaige's leaderboard vals vs report vals:
His RAPM in the leaderboard was been splatted
Ah so when I run in diag mode, it starts at an earlier lambda and then picks the 2nd iteration - ah looks like it is now always picking the 2nd iteration (actually I noticed that in the unit test but assumed that was legit :( )
combinedRapm[PRE] = [6.9] vs actualEff = [6.1] ... Err[PRE] = [0.8] Err[POST] = [2.2]
error/priorSum
limit .. pick a max eg 50%) (https://github.com/Alex-At-Home/cbb-on-off-analyzer/commit/efeda0c877ee2af2f6373daa98382d7db4e846a6)adj_ppp
)