View Single Post
  #81   Spotlight this post!  
Unread 11-03-2009, 15:15
SteveGPage's Avatar
SteveGPage SteveGPage is offline
Mentor - Scouting and Strategy
AKA: Steve
FRC #0836 (RoboBees)
Team Role: Mentor
 
Join Date: Feb 2006
Rookie Year: 2004
Location: Hollywood, MD
Posts: 521
SteveGPage has a reputation beyond reputeSteveGPage has a reputation beyond reputeSteveGPage has a reputation beyond reputeSteveGPage has a reputation beyond reputeSteveGPage has a reputation beyond reputeSteveGPage has a reputation beyond reputeSteveGPage has a reputation beyond reputeSteveGPage has a reputation beyond reputeSteveGPage has a reputation beyond reputeSteveGPage has a reputation beyond reputeSteveGPage has a reputation beyond repute
Re: Easy to use Offensive Power Rankings (OPR) program for mid-regional scouting

Quote:
Originally Posted by Manoel View Post
I gave it a shot. I'm not sure I implemented it correctly, but matrix A (Ax = b) always comes up with a large conditioning number - nearly singular, which means that small changes in b, or the matches results, would result in huge shifts in OPR/DPR for teams.

(snip)

I don't have prediction software implemented yet, so I can't give any estimates, so... Any ideas? Considering the matrix is ill-conditioned, I'm not sure those numbers can be trusted. It could be that my MATLAB implementation is wrong, so here's the code if anyone wants to check it out.
I think that you are on to something, and I do think that the +/- calculation can and would be important. I've been struggling with the following equation, trying to figure out how to implement it and do the calculation, so let me know what you all think. It is similar to Boggle's concept above, and may be essentially the same result, but can't figure out how to parse the data to actually make it happen, especially since it creates a 2N x 2N matrix...

Two equations:
1. (Xioblue + Xjoblue + Xkoblue) - (Xldred + Xmdred + Xndred) = Scoreblue
2. (Xlored + Xmored + Xnored) - (Xidblue + Xjdblue + Xkdblue) = Scorered

Where ...
............X
..............io (Team i - OPR)
................blue (Alliance)

and likewise, id would represent Team i - DPR.
You would have to solve for both the OPR and DPR for each team.

For the DC regional, which had 65 teams, it would be a 130x130 matrix * {x} = Bio or Bid, which would allow you to then solve for the separate OPR and DPR values. I don't have a good way to parse this, much less see if the results actually mean anything, but the concept came from a friend of mine - Kenneth Massey, who developed one of the BCS algorithms (www.masseyratings.com) so I think it has merit.

For the DC regional, I did the following simple calculation to try and get a similar estimated value for how tough the match was:

AVG[((TotalMatchPoints/TotalAlliancePoints)*TeamOffensivePoints) + (TeamOffensivePoints – TeamDefensivePoints)]

MATCH_ID ALLIANCE_ID TEAM_ID OFF_POINTS DEF_POINTS
.....1................1................1.......... ...20...............10
.....1................1................2.......... ...10...............10
.....1................1................3.......... ...15................5
.....1................2................4.......... ....0................10
.....1................2................5.......... ...10...............20
.....1................2................6.......... ...20...............20

Example:
Total Match Points = SUM(OFF_POINTS), GROUP BY MATCH_ID
Total Alliance Points = SUM(OFF_POINTS), GROUP BY MATCH_ID, ALLIANCE_ID

Team 1
((75/45)*20 + (20 – 10)) = 43.33

Team 2
16.66

Team 3
35

Team 4
((75/30)*0 + (0 – 10)) = -10

Team 5
15

Team 6
50

Alliance 1 43.33 + 16.66 + 35 = 95
Alliance 2 (-10) + 15 + 50 = 55

Alliance 1/Alliance 2 = 1.72 – Alliance 1 72% stronger
__________________
FRC 836, The RoboBees www.robobees.org
growingSTEMS www.growingSTEMS.org
2017: Southwest VA, Northern MD, Chesapeake District Championships, Championships
Reply With Quote