View Full Version : Offensive Power Rankings for 2008
Inspired by a post by sw293 in one of my long-past stats threads from 2006, I re-implemented his/her Offensive Power Rankings algorithm. Essentially, it tries to determine approximately how much each team, on average, contributed to their alliance.
You can see the math behind it detailed here: http://www.chiefdelphi.com/forums/showpost.php?p=484220&postcount=19.
In essence, it looks at a team's accumulated score over the course of a weekend as a sum of the offensive power ratings of all the other teams, multiplied by the number of times that team was paired with each team.
Example: 1565's first match at GTR was with 2198 and 1870, and they played 8 matches total. The '...' would be all their other alliance partners through qualifying, multiplied each time by how many times they were allied with them.
TotalScore(1565) = OPR(1565)*8 + OPR(2198)*1 + OPR(1870)*1 + ...
Once you arrange the scores of all the teams from a regional in this way, then you end up with N equations (one big sum of scores per team) and N unknowns (the offensive power ratings). This can be solved to find out the OPRs.
Without further ado, here they are for GTR. I'll be doing other regionals in the very near future.
These power rankings were a great help in 2006. (very accurate and very predictive) Of course they did not predict the exact outcome of matches, but it certainly let a team know what they were up against and who they were partnered with. It was a big part of our Championship scouting routine in 2006.
Thanks for offering to do this!
The penalties are such a huge factor this year, unless you find a way to account for them, this formula won't accurately reflect a teams offensive ability.
The penalties are such a huge factor this year, unless you find a way to account for them, this formula won't accurately reflect a teams offensive ability.
Exactly correct. These shouldn't be used as the be-all end-all of scouting, but perhaps as pointers to find gems in the rough. There are many things that can happen in this game (and in other years) that aren't encapsulated in a simple number.
Joe Ross
30-03-2008, 14:48
The penalties are such a huge factor this year, unless you find a way to account for them, this formula won't accurately reflect a teams offensive ability.
This is actually better then a team's offensive ability. It shows a teams point contribution. If a team is consistently penalized, they will have a lower OPR then a team that scores the same points per match but does so without penalties. You would obviously want the latter on your alliance.
Another interesting thing is that a team that constantly gets in the way of it's alliance parters would have a lower OPR then one that scores the same number of points but allows it's alliance partners to live to their full potential.
cziggy343
30-03-2008, 14:52
are thier going to be ones for every regional? or would that be an endeavour of the individual teams to do?
Just finished the complete list. This includes every single 2nd-week and later regional. The first-week regionals have slightly different formatting for match results, and I couldn't include them easily. At least based on this analysis, we finally have an answer for the question: "Is anyone CLOSE to 1114?". The answer: no.
The top 50:
1114 79.0239
2056 52.583
987 51.736
40 50.8061
233 50.1563
330 48.7413
494 47.7625
525 47.3403
217 47.1941
1625 46.0802
1024 45.6433
25 45.2803
103 45.2493
33 45.1412
39 44.6339
175 44.0685
1731 42.2656
1124 42.2552
67 42.1626
368 39.0168
20 37.4932
1718 37.472
191 37.3548
1086 37.3254
16 36.6151
126 36.0601
1251 35.7449
968 35.0079
1574 34.6153
100 34.5714
141 34.3271
1218 34.3093
836 34.1721
381 34.1544
1126 34.0365
383 33.3622
69 33.1613
79 33.0133
469 33.0073
1717 32.3547
254 31.4165
501 31.3563
365 31.2399
111 30.847
1098 30.7075
997 30.6114
1507 30.6009
1156 30.5231
1153 30.4529
47 30.3471
See the attachment for the rest.
I don't see entries for any teams I remember from Microsoft-Seattle Regional (Week 4). :confused:
This is actually better then a team's offensive ability. It shows a teams point contribution. If a team is consistently penalized, they will have a lower OPR then a team that scores the same points per match but does so without penalties. You would obviously want the latter on your alliance.
Another interesting thing is that a team that constantly gets in the way of it's alliance parters would have a lower OPR then one that scores the same number of points but allows it's alliance partners to live to their full potential.
A team can have a great scoring record and have few penalties but can still have their rating ruined by being on alliances that have scored penalties.
If you can't factor out alliance penalties then there is way too much "luck of the draw" possible in this chart.
I don't see entries for any teams I remember from Microsoft-Seattle Regional (Week 4). :confused:
It had funny formatting, but upon thinking about it some more, I don't think it should badly affect my program's ability to read it. I'll put it in and re-do them.
In fact, I can think of a way I should be able to get the week 1 regionals working as well.
Check this thread again in 10 minutes, I should have an updated one up.
Greg Marra
30-03-2008, 17:07
If you let me know a precise format you want, I can give you a huge CSV dump into the formatting you want from The Blue Alliance's database.
Gaurav27
30-03-2008, 17:12
I would also like to see standings of all teams ranked based on their record at the attended official events (Win-Loss-Tie). :)
If you let me know a precise format you want, I can give you a huge CSV dump into the formatting you want from The Blue Alliance's database.
"Red1 <tab> Red2 <tab> red3 <tab> blue1 <tab> blue2 <tab> blue3 <tab> redscore <tab> bluescore <line feed or carriage return or end of line or whatever>" is all I need. That'd be great. CSV is good too, I'm not particular about the delimiter.
So including week 1, the top 50 now looks like:
1114 68.5388
2056 53.7198
987 51.0249
233 50.3309
330 48.6782
39 44.2954
103 43.4295
1731 42.7127
1124 42.087
67 42.0777
525 41.482
175 40.3134
25 40.2684
217 40.0997
1024 39.8043
1718 38.6849
1086 37.4098
191 37.0664
20 36.9179
40 36.6407
1251 36.1213
368 35.623
121 35.5714
1625 35.182
968 35.1251
494 35.0843
1218 35.0123
1574 34.6153
383 34.1952
141 34.1791
1126 33.9523
79 33.8184
469 33.2445
1717 32.6876
69 32.3057
254 32.2835
126 32.1564
33 32.0724
365 31.1953
1507 30.8839
47 30.8582
1156 30.7724
16 30.6096
1065 30.3857
836 30.1605
381 30.1114
93 29.8324
195 29.8271
1512 29.78
Greg Marra
30-03-2008, 19:04
The CSV is too big to attach. Find it here: http://www.thebluealliance.net/cdvideo/2008_03_30_matches.csv
Let me know if that works for you :)
Okay I somewhat understand how this is all calculated but I am guessing that somebody has already made an excel file to calculate all this? I tried to download one from '06 but the link was broken so can somebody please upload a new one? Thanks.
Guy Davidson
31-03-2008, 12:28
Could you help me make sure I understand the linear algebra involved?
I understand that p is what we're looking to find, or the average number of points a team contributes per match. s and M we can calculate from the results coming from each regional. Since Mp = s, we can conclude that p = (M-1)s (where M-1 denotes M inverse). It seems to me from thinking about it that M is symmetric, and as such M = M-1. Is that actually the case?
I'll probably try to write a program to take a csv dump and spit out rankings if I understand the math.
I understand that p is what we're looking to find, or the average number of points a team contributes per match. s and M we can calculate from the results coming from each regional. Since Mp = s, we can conclude that p = (M-1)s (where M-1 denotes M inverse). It seems to me from thinking about it that M is symmetric, and as such M = M-1. Is that actually the case?
M is indeed symmetric. M[i][j] indicates how many matches team i played with team j. Therefore, it makes sense that M[i][j] = M[j][i].
I don't think the inverse of a symmetric matrix is necessarily symmetric. The transpose of a symmetric matrix M would be equal to its non-transpose, but I don't think that carries for symmetry. To prove that M-1 is not necessarily equal to M for a symmetric matrix, just think of the symmetric matrix 2I, where I is the identity matrix.
If (M)-1 = (M) for symmetric matrices like you are proposing, and we know MM-1 = I for any matrix and its inverse, then (2I)(2I) must equal I, but this is not the case.
I didn't have to write the matrix solver myself, I used a library I found online. If there are any tricks it used, I'm not aware of them.
Guy Davidson
31-03-2008, 14:44
You're right. For some reason, I was thinking of the transpose rather than the inverse. I'll see how I handle the inversion of the matrix when I get there. In the meantime, I'm working through the easy stuff: reading the csv and making and populating s and M.
It seems to me from thinking about it that M is symmetric, and as such M = M-1. Is that actually the case?
M is symmetric, but that doesn't mean M = M inverse.
Symmetry means that M = M transpose (flipped along the identity axis), which is different than M inverse.
It's easy to confuse the two (I remember doing that plenty of times, thank Ms. Martin).
Here's an example where M = M inverse, and you quickly see that M is definitely not symmetric:
| 9 5 | | 9 5 | - | 1 0 |
| -16 -9 | | -16 -9 | - | 0 1 |
Just an FYI...all of the match data is NOT included from the Peachtree regional. The scoring system failed so all of the elimination matches and many of the qualifying matches from Saturday are not included. As an example...team 343 finished 12-4 at that regional. We are still shown as 5-3 on the Blue Alliance. That means there are eight matches not accounted for on us alone. That would/could be the same for many of the other teams who attended Peachtree.
Is there anybody that has that manual data? Can it be manually entered into the Blue Alliance?
Thanks,
Mike Carron
Team 343
Joe Ross
31-03-2008, 17:00
Is there anybody that has that manual data?
See here: http://www.chiefdelphi.com/media/papers/2102
cziggy343
31-03-2008, 17:33
See here: http://www.chiefdelphi.com/media/papers/2102
but...was anyone planning on putting this manuel score on tba... b/c i have no way to do it...
Eugene Fang
31-03-2008, 22:23
if there was a normally very high scoring team that happened to malfunction in a match where they were in your alliance, or was defended a lot in your particular round, wouldn't your score be highly skewed?
Okay, I have created a basic program to make the n X n matrix as defined in the post that sort of explains the rankings but what do I do from there? I am only in trig and we have definitely not learned that stuff with matrices. Can somebody give me an example of "M(k1)p(1)+M(k2)p(2)+...+M(kn)p(n) should equal s(k)" or clarify that please? Thanks!
fuzzy1718
31-03-2008, 23:18
We were hevily defended all through GLR hurdling only 2-3 times a match where we usualy hurdle 4-6 times and at Detroit we were broken 3 of the matches, but we are still high on the list:ahh: . That shouldn't effect it much.
Guy Davidson
31-03-2008, 23:18
Okay, I have created a basic program to make the n X n matrix as defined in the post that sort of explains the rankings but what do I do from there? I am only in trig and we have definitely not learned that stuff with matrices. Can somebody give me an example of "M(k1)p(1)+M(k2)p(2)+...+M(kn)p(n) should equal s(k)" or clarify that please? Thanks!
From there you need to invert M and multiply it by s. The are libraries doing the first all over the internet - however, I do not know the algorithm they use. I know how to do it manually, but that would take way too much time for anything this scale.
Then you need to multiply M inverse by s. What you're looking to get out is another column vector, or list of numbers, similar to the one you have in s, although with different numbers. To do that, simply multiply each element in a column of M inverse (with a fixed row) by each element in the corresponding row in s (which has only one column). For example, to find the 10th element of p, or the average number of points contributed by the team in the 10th row, add up M(10,1)*s(1) + M(10,2)*s(2) + M(10,3)*s(3) + ...
Doing that for each row in M will get you p, the vector you're looking for.
If this didn't make much sense, look at http://mathdemos.gcsu.edu/mathdemos/matvec/matvec.html or http://en.wikipedia.org/wiki/Matrix_multiplication
Greg Marra
01-04-2008, 00:46
I added Peachtree missing matches to the database. I'll do another database dump after the NYC regional is finished. Thanks for pointing me to the data!
Looks like the system is working well, but I think if we add a little to it it would work much better.
Right now it is set up to calculate the average points contributed to an alliance by one team. This method does not take care of the defence.
you guys who did the calculations, can you add defence to it as well.
so example:
Red Score = RedA_O + RedB_O + RedC_O - BlueA_D - BlueB_D - BlueC_D
then solve for Team_O which is the average points added to their alliance, and Team_D which is the average points one team take away from their Opponent's alliance.
Just a few questions left but the post above helped a bunch. Do i want M inverse or transverse? Also, do I want it to equal s and multiply by p or the other way around? Lastly, M(10,1)*s(1) + M(10,2)*s(2) + M(10,3)*s(3) Means to take whatever value is in the matrix at (10,1) and multiple by s and by 1 right? thanks!
Hey Kyler:
Do you want me to send a slide rule with Nathan tomorrow to help you out?
Nesher
Bongle-
Are you going to do recreate the rankings after all the regionals are done and before the finals in Atlanta?
Hey Kyler:
Do you want me to send a slide rule with Nathan tomorrow to help you out?
Nesher
Lol I think I can have the computer do most of the math for me. I just have to understand it... thats my hope at least.
Bongle-
Are you going to do recreate the rankings after all the regionals are done and before the finals in Atlanta?
I could re-do them once this week's regionals are complete, that's not a problem.
I'll do an Atlanta-only one after ATL too if there is demand.
I am not a programmer, but here is an interesting challenge for someone with some time on their hands. Once Atlanta divisions are posted, use the OPR to pick the winning alliance assuming that the rankings and draft follow the OPR (alliances would be 1,2,24-3,4,23-5,6,22......). Obviously the OPR will pick 1114 and some other powerful hurdler as the winners, but I am curious how closely it may actually predict things.
I am not a programmer, but here is an interesting challenge for someone with some time on their hands. Once Atlanta divisions are posted, use the OPR to pick the winning alliance assuming that the rankings and draft follow the OPR (alliances would be 1,2,24-3,4,23-5,6,22......). Obviously the OPR will pick 1114 and some other powerful hurdler as the winners, but I am curious how closely it may actually predict things.
To go even further:
Use the match scheduling algorithm to generate a schedule, then simulate each division's games, assuming that the alliance with the higher OPR always wins. Now you've got more accurate simulated rankings, because you may even have a weaker team get into the top 8 due to luck with the scheduling. However, you'd have issues because in the real world there'll be draft rejections which you can't plan for.
Then do the division playoffs and Einstein simulation. I may do that after my first exam when I have a long time off.
Hate to ask for more, but here goes:
I noticed our OPR drop dramatically when week 1 was added in (we had a lot of technical difficulties). Is anyone planning on doing an OPR ranking only using a teams last regional? This may more acurately show how the teams will perform at Atlanta....
XaulZan11
02-04-2008, 13:18
Hate to ask for more, but here goes:
I noticed our OPR drop dramatically when week 1 was added in (we had a lot of technical difficulties). Is anyone planning on doing an OPR ranking only using a teams last regional? This may more acurately show how the teams will perform at Atlanta....
That's a really good point. I know when I'll prescout for my team, I'll focus on the team's last regional because it usually the best predictor to see how a team will preform. Maybe you can weigh the different regionals (such as if a team attends 2 regionals, the first regional may be 30% while the second will be 70% of thier total score).
Hate to ask for more, but here goes:
I noticed our OPR drop dramatically when week 1 was added in (we had a lot of technical difficulties). Is anyone planning on doing an OPR ranking only using a teams last regional? This may more acurately show how the teams will perform at Atlanta....
Good point! We are definitely a much better machine now then we were at Chesapeake. Our drivers also have more confidence in the machine.
Well, just something interesting I have found. Its to be expected and nothing major but it dies go to show being very percise (adding 4 decimal points) Can change things quite a bit in ranking the teams. To test my own Power Ranking program I ran the GTR results and found my results were different that bongles by up to a point (might not seem like much but once you get to the lower power rankings it is 10 % +) and it changes orders a lot. Here's what i found.
Nevermind, I entered one score wrong. My results are the exact same but with 4 excta decimal points.
I only included a few differences because the teams start to change then and I was too lazy to sort that all out. Also, a big THANKYOU! to everyone that helped me understand this stuff.
Jacob Plicque
02-04-2008, 22:53
Kyler,
Will you post your program code for review? I think that your are on to something by adding precision to your calculation.:)
Guy Davidson
03-04-2008, 00:26
Wee, I managed to break java :P
My inversion algorithm for the 1465x1465 or so matrix runs out of heap space. I'm currently working on an alternative way to get p. Right now, I'm going from Mp = s to p = Minverses. I might try to create an augmented matrix and rref it to get the solution. Any other ideas?
EDIT: Nevermind, I just solved the equation Mp = s.
Greg, I now have the OPR's generated from the entire csv dump you generated. Is there any way you could generate other csv dumps to analyze? By regional, by week, over the last three weeks, etc., all sounds like interesting sets of data to analyze.
Guy Davidson
04-04-2008, 13:37
I have the rankings generated from Greg Marra's csv dump of the TBA database.
Top 50:
1114 66.10642467
2056 54.11894734
233 50.73081127
330 48.61296306
987 48.40552663
39 48.06177403
525 45.48888639
67 44.23000818
1731 42.99226989
1124 42.40054838
217 42.10281885
103 41.29156933
40 40.86592771
175 39.4420245
191 39.06592804
469 37.90116922
20 37.75470786
79 37.65042852
1717 37.34613148
141 37.32830996
1024 37.2668216
968 35.93916079
1086 35.8662985
1126 35.81116812
368 35.65581359
494 35.0189302
2171 33.98399753
25 33.89508807
1625 33.79257371
365 33.63738509
254 32.91821392
1718 32.54432471
47 32.49881588
93 32.23816608
1477 32.14182287
1251 31.57996364
1806 31.33327422
16 31.18613493
69 31.04681657
1629 31.01151072
33 30.94122998
1418 30.31278837
195 30.2915486
27 29.90208154
383 29.89513167
71 29.87541039
287 29.76950247
171 29.71637571
148 29.4612061
877 29.34477514
The entire spreadsheet is attached. I'm working with Greg Marra on getting some more specific data sets and analyzing them, and after I do that, I'll post the results. Any specific requests?
cziggy343
04-04-2008, 14:13
for some reason, i dont think that ours is right... b/c we have had three hurdles or more in 75% of our matches and it shows that we score about 26 points per match, which w/ three hurdles (including lines) we should be just a little under 30... but of course i dont know what went into the compiling:cool:
Is this data supposed to be your average score or your potential average? What exactly is your number supposed to mean?
Is this data supposed to be your average score or your potential average? What exactly is your number supposed to mean?
It is an estimate of how many points your teams contributes per match. Note that it isn't simply your total score / 3, but by using the magic of linear algebra, you can solve for something a bit more accurate. It can help weed out robots that simply had good partners, and should be able to discern robots who many not have placed well but still contributed each round.
for some reason, i dont think that ours is right... b/c we have had three hurdles or more in 75% of our matches and it shows that we score about 26 points per match, which w/ three hurdles (including lines) we should be just a little under 30... but of course i dont know what went into the compiling
If you took a substantial number of penalties (1 every couple matches), that'd result in your offensive rating going down. This is because in addition to adding to an alliance score by hurdling, you'd be subtracting from it due to penalties. It's not a perfect number because we don't have an infinite number of matches to base it off of, but it seems to correlate nicely with observed robot performance.
ssI have the rankings generated from Greg Marra's csv dump of the TBA database.
Top 50:
1114 66.10642467
2056 54.11894734
233 50.73081127
330 48.61296306
987 48.40552663
39 48.06177403
525 45.48888639
67 44.23000818
1731 42.99226989
1124 42.40054838
217 42.10281885
103 41.29156933
40 40.86592771
175 39.4420245
191 39.06592804
469 37.90116922
20 37.75470786
79 37.65042852
1717 37.34613148
141 37.32830996
1024 37.2668216
968 35.93916079
1086 35.8662985
1126 35.81116812
368 35.65581359
494 35.0189302
2171 33.98399753
25 33.89508807
1625 33.79257371
365 33.63738509
254 32.91821392
1718 32.54432471
47 32.49881588
93 32.23816608
1477 32.14182287
1251 31.57996364
1806 31.33327422
16 31.18613493
69 31.04681657
1629 31.01151072
33 30.94122998
1418 30.31278837
195 30.2915486
27 29.90208154
383 29.89513167
71 29.87541039
287 29.76950247
171 29.71637571
148 29.4612061
877 29.34477514
The entire spreadsheet is attached. I'm working with Greg Marra on getting some more specific data sets and analyzing them, and after I do that, I'll post the results. Any specific requests?
Curious...what data or calculation changes explain the reduction of up to almost 3 points from the previous ranking for some teams listed? If the previous calculations were based on results through the 5th week regionals and there has been no additional results/data, what explains the changes observed for this list?
ss
Curious...what data or calculation changes explain the reduction of up to almost 3 points from the previous ranking for some teams listed? If the previous calculations were based on results through the 5th week regionals and there has been no additional results/data, what explains the changes observed for this list?
Since Sumadin and I went off of different data sets (him from TBA CSV's, me from usfirst.org) and used different algorithms, some perturbation is expected. There could've been a few missed matches in one of our data sets. This is my best guess for why there is a difference between our outputs.
Also, different methods of inverting the matrix could cause somewhat substantial differences in the floating-point input.
I haven't had the time to update my program to use TBA's CSV dump, so we won't be able to compare until probably tuesday when my classes end.
Joe Ross
04-04-2008, 16:46
Since Sumadin and I went off of different data sets (him from TBA CSV's, me from usfirst.org) and used different algorithms, some perturbation is expected. There could've been a few missed matches in one of our data sets. This is my best guess for why there is a difference between our outputs.
The Blue Alliance data includes elimination matches, which I would assume accounts for the majority of the difference. I think the result is probably better with only the qualifying matches.
The Blue Alliance data also gives scores of -1 for the missing peachtree matches (which are now in TBA database, so they would be included for the next data dump).
I've attached just the GTR qualifying matches (which I pulled from TBA's big dump) so that it is possible for sumadin to check his results against Bongle and Kyler's.
It is an estimate of how many points your teams contributes per match. Note that it isn't simply your total score / 3, but by using the magic of linear algebra, you can solve for something a bit more accurate. It can help weed out robots that simply had good partners, and should be able to discern robots who many not have placed well but still contributed each round.
Our actual average score was 23.11 for our two regionals including penalties. You have us at 13.585. That's a huge difference.
I also see a couple of teams on your list that I know who's scores are way to high.
As I have said from the beginning the algorithm just won't work unless the penalties are somehow added in. They are just to important to this years game.
Our actual average score was 23.11 for our two regionals including penalties. You have us at 13.585. That's a huge difference.
I also see a couple of teams on your list that I know who's scores are way to high.
As I have said from the beginning the algorithm just won't work unless the penalties are somehow added in. They are just to important to this years game.
I don't think you're following what Bongle and others are doing. They're not calculating simple averages. They're using basic linear algebra to calculate the average expected value of pure points contributed to the alliance by a single team. This is used by setting up a system of equations which sum to the amount points scored at the regional. Since penalties are already removed from the final scores of all matches, this method takes them into account. The penalties are already "added in". This method is a far more accurate predictor of a team's contribution then just looking at a simple mean. Naturally you team's result is going to be lower than your average score, because this statistic is just looking at your team's contribution.
Guy Davidson
04-04-2008, 17:04
I've attached just the GTR qualifying matches (which I pulled from TBA's big dump) so that it is possible for sumadin to check his results against Bongle and Kyler's.
Here are my GTR numbers. If they look wrong, and someone java-literate feels like checking my algorithm, I'd love to send it to you.
Team # OPR
1114 85.15226558
2056 59.33395475
1310 34.64482448
703 33.03214195
176 28.96394877
1507 28.88990882
843 28.21126973
1565 27.22743171
247 26.1033492
1334 25.79040538
1246 25.39034964
771 25.3041279
2166 24.09227148
188 23.71808394
1503 23.54927373
772 23.45548442
2386 23.31079522
1241 23.28145949
1676 19.79855182
2200 18.77658592
2505 17.48254181
1859 17.45000723
781 16.0161082
1075 15.90296028
1305 15.89858958
854 15.69463168
1141 15.06495691
1870 14.73720734
2198 14.73609737
378 14.47812438
1482 14.45778707
1221 14.31262296
2624 13.45441951
1547 12.97880742
1605 12.97081727
1312 12.72903502
1053 12.31981296
2625 10.56083704
2013 9.900241288
1244 9.708875262
1564 9.600009496
1404 9.377591833
610 9.133722417
2626 9.08257019
919 8.254425484
1006 7.228797019
1620 6.76173277
1219 6.42921342
1325 6.212867948
907 5.392902881
2670 5.28688774
1835 4.499976969
2634 2.964469403
1814 2.838298002
1514 2.750910246
2076 1.743258698
1846 0.608947798
1815 -1.060063643
1558 -2.177781773
865 -3.154743822
2427 -4.468775757
2254 -5.065213583
296 -5.98087571
758 -6.886956522
1680 -8.189157537
2185 -9.563978454
Here are my GTR numbers. If they look wrong, and someone java-literate feels like checking my algorithm, I'd love to send it to you.
Guy,
You might want to look into using Maple or Matlab. They're design for these types of computation, plus I'm sure you'll find plenty of other uses for them. I've found them to be indispensable tools.
Joe Ross
04-04-2008, 17:09
Here are my GTR numbers. If they look wrong, and someone java-literate feels like checking my algorithm, I'd love to send it to you.
They are exactly the same as Bongle's to 4 decimal places. Good job!
Guy Davidson
04-04-2008, 17:16
Curious...what data or calculation changes explain the reduction of up to almost 3 points from the previous ranking for some teams listed? If the previous calculations were based on results through the 5th week regionals and there has been no additional results/data, what explains the changes observed for this list?
I was running the TBA data set. It seems that my numbers for GTR match Bongle's so the computation seems to be correct. Is it possible he isn't using elimination round scores? Because that might cause a drop.
I was running the TBA data set. It seems that my numbers for GTR match Bongle's so the computation seems to be correct. Is it possible he isn't using elimination round scores? Because that might cause a drop.
Yeah, I didn't use elimination rounds because I feel they kind of distort the results. Playing matches with random robots against random opponents, I think you'll get a better feel for a team's contribution than when they are playing with a self-selected team against the creme de la creme at the regional. Although I guess if you want to take these numbers as scouting pointers rather than for entertainment value, a team's elimination performance is important.
For instance, take 1114 at GTR in the eliminators: they were playing with a team that they founded and they had won 3 regionals with. That team of robots will probably work together much better than a random team in qualifications, and so the scores will be different.
Another thing is that during eliminations, robots steadily get worn down: mechanisms break that can't get repaired in time, batteries slowly get discharged, motors overheat, and so you get things other than the team's competitiveness affecting the scoring level.
Plus, at a shallower regional like at waterloo, you'll end up with things like 1114/2056 against 3 teams who can't even hurdle, and the scores will be ludicrously high.
I don't think you're following what Bongle and others are doing. They're not calculating simple averages. They're using basic linear algebra to calculate the average expected value of pure points contributed to the alliance by a single team. This is used by setting up a system of equations which sum to the amount points scored at the regional. Since penalties are already removed from the final scores of all matches, this method takes them into account. The penalties are already "added in". This method is a far more accurate predictor of a team's contribution then just looking at a simple mean. Naturally you team's result is going to be lower than your average score, because this statistic is just looking at your team's contribution.
Said much better than I ever could.
I don't think you're following what Bongle and others are doing. They're not calculating simple averages. They're using basic linear algebra to calculate the average expected value of pure points contributed to the alliance by a single team. This is used by setting up a system of equations which sum to the amount points scored at the regional. Since penalties are already removed from the final scores of all matches, this method takes them into account. The penalties are already "added in". This method is a far more accurate predictor of a team's contribution then just looking at a simple mean. Naturally you team's result is going to be lower than your average score, because this statistic is just looking at your team's contribution.
I understand that, what I am saying is that their calculation of my teams expected contribution is no where near my teams actual contribution including subtracting the penalties.
Also I see several teams who's expected contribution is way to high from my experience of their performance this year.
If you guys want this tool to be useful you need to figure out why.
It's just my theory that it can't property calculate the impact of penalties, if you think this theory is wrong then you need to figure out what is causing the figure to be so different than the actual results.
I understand that, what I am saying is that their calculation of my teams expected contribution is no where near my teams actual contribution including subtracting the penalties.
Also I see several teams who's expected contribution is way to high from my experience of their performance this year.
If you guys want this tool to be useful you need to figure out why.
It's just my theory that it can't property calculate the impact of penalties, if you think this theory is wrong then you need to figure out what is causing the figure to be so different than the actual results.
Mathematically, this method is 100% sound. Whether you see any value in the mathematical model is for you to determine. I'd like to know your mathematical reasoning for why this method doesn't take penalties into account. If all you're relying on is selected cases of anecdotal evidence, your theory holds very little weight with me.
By no means am I suggesting that this model is perfect. From the numbers that Team 1114 has run, there are some definite anomalies. That being said, for the most part this model seems to agree with the specific match data we've collected at three events we attended.
Like with most statistics, the value is all in how you interpret them. If you don't think they're accurate, ignore them.
Just to emphasize the quality of OPR as a predictor of who will be playing on Saturday afternoon. Keep in mind, this was a 66 team regional, and predicting 24 robots out of the field is no small feat.
Here's the top 24 OPR from the GTR, and whether they were picked in the elims:
1114 #1 Captain
2056 #1 1st Pick
1310 #2 1st Pick
703 Removed themselves from the elims due to technical problems
176 #7 Captain
1507 #3 Captain
843 #5 Captain
1565 #4 1st Pick
247 #3 2nd Pick
1334 #6 Captain
1246 Not Picked
771 #5 2nd Pick
2166 #1 2nd Pick
188 #2 Captain
1503 #3 1st Pick
772 #8 1st Pick
2386 #6 1st Pick
1241 #4 Captain
1676 #7 1st Pick
2200 #5 1st Pick
2505 #2 2nd Pick
1859 Not Picked
781 #4 2nd Pick
1075 Not Picked
20/24 is a ridiculously decent hit rate. It should be higher since you couldn't expect this algorithm to predict that 703 would graciously withdraw.
Expect all good scouting teams to be using these stats in the very near future.
Mathematically, this method is 100% sound. Whether you see any value in the mathematical model is for you to determine. I'd like to know your mathematical reasoning for why this method doesn't take penalties into account. If all you're relying on is selected cases of anecdotal evidence, your theory holds very little weight with me.
By no means am I suggesting that this model is perfect. From the numbers that Team 1114 has run, there are some definite anomalies. That being said, for the most part this model seems to agree with the specific match data we've collected at three events we attended.
Like with most statistics, the value is all in how you interpret them. If you don't think they're accurate, ignore them.
I am not a mathematician, I saw numbers that were wrong (not a little wrong, WILDLY wrong) and I posed a theory based on my feeling not on any math.
We are not competing in Atlanta so I have no need for this data, all I am saying some of what I see in spreadsheet is very wrong.
You can ignore it, I don't care.
Edit: I'll still buy you a doughnut in Atlanta.
Protronie
04-04-2008, 19:08
All I understand is 1114 has an impressive score...
Which seems to fit their impressive robot.
Nice work... this will make a excellent tool to help newbies .
Jacob Plicque
04-04-2008, 19:48
Sumadin
Your latest OPR must have an error (86 1.478877681). All the previous OPR data runs had Team 86 with an OPR between 8.8 and 9.2 points. Our actual average for the Florida Regional was 11.5 points. The difference of over 2 points can be explained by the fact that our 1st match included two no show partners. However, I can not figure out the 10 point difference in your post today
DonRotolo
04-04-2008, 20:11
Just to emphasize the quality of OPR as a predictor of who will be playing on Saturday afternoon. Keep in mind, this was a 66 team regional, and predicting 24 robots out of the field is no small feat.
Note that 1676, #1 pick for Alliance #7, was ranked in the high 40's based on win/loss record. Similarly, we were ranked in the 50s in NJ, but were picked for the 8th alliance.
Why? What team in their right mind would choose a team with a 3-5-0 record?
Teams that understand the math behind the scouting, that's who.
Don
Sumadin
Your latest OPR must have an error (86 1.478877681). All the previous OPR data runs had Team 86 with an OPR between 8.8 and 9.2 points. Our actual average for the Florida Regional was 11.5 points. The difference of over 2 points can be explained by the fact that our 1st match included two no show partners. However, I can not figure out the 10 point difference in your post today
Sumadin's included eliminations. It is possible that your alliance partners during eliminations were both scoring below their qualifying performance (which would make sense, given the increased quality of the opposition), and the algorithm 'attributed' that to you. This is why I didn't include eliminations in the ones I ran, they're a whole different beast. It probably isn't a bug in his code, because we both independently developed our own code and our results match, so unless the math foundations we're basing this on are shaky, it's probably an effect of using the finals data.
In other news:
Just to emphasize the quality of OPR as a predictor of who will be playing on Saturday afternoon. Keep in mind, this was a 66 team regional, and predicting 24 robots out of the field is no small feat.
This intrigued me, so I did it for a few more:
GLR: 20/24
Florida: 19/24
VCU: 17/24
So it is a somewhat accurate predictor, but it doesn't take into account that a team's 3rd pick is likely to be a lower-scoring lap bot because of the game only having 2 trackballs. Picking strictly by OPR is a fast way to get eliminated, because you'd probably end up with 3 delicate, relatively slow hurdlers fighting over 2 trackballs, rather than a more-ideal combination of 1 robust lapper/defender and 2 hurdlers.
MasterChief 573
04-04-2008, 20:45
Sumadin's included eliminations. It is possible that your alliance partners during eliminations were both scoring below their qualifying performance (which would make sense, given the increased quality of the opposition), and the algorithm 'attributed' that to you. This is why I didn't include eliminations in the ones I ran, they're a whole different beast. It probably isn't a bug in his code, because we both independently developed our own code and our results match, so unless the math foundations we're basing this on are shaky, it's probably an effect of using the finals data.
In other news:
This intrigued me, so I did it for a few more:
GLR: 20/24
Florida: 19/24
VCU: 17/24
So it is a somewhat accurate predictor, but it doesn't take into account that a team's 3rd pick is likely to be a lower-scoring lap bot because of the game only having 2 trackballs. Picking strictly by OPR is a fast way to get eliminated, because you'd probably end up with 3 delicate, relatively slow hurdlers fighting over 2 trackballs, rather than a more-ideal combination of 1 robust lapper/defender and 2 hurdlers.
Can I see the OPR from GLR?
Can I see the OPR from GLR?
(based on qualifying matches only)
217 50.7032
494 42.5188
27 41.5673
67 40.5394
1718 40.2957
33 38.5823
47 36.6663
469 34.469
326 31.1764
201 29.9324
65 29.6645
862 28.1615
291 24.9495
245 24.7518
70 24.0254
910 23.0301
68 23.0027
107 21.8664
573 20.1932
548 20.0728
66 20.0018
1023 18.233
1998 18.132
1732 17.8759
1747 17.6147
2137 16.5689
503 16.2864
894 16.1329
2676 15.6698
451 15.5634
2612 15.3752
2627 14.1293
2163 13.1382
2050 12.7314
1596 11.5487
1646 11.4519
2591 10.9547
470 9.91908
1015 9.73652
306 9.57384
1701 9.53248
2608 8.05458
830 7.30086
279 7.24847
308 7.11791
226 7.03603
1189 6.30477
1216 5.67063
63 4.94421
123 4.81491
280 4.45936
322 3.07761
1941 2.84981
240 2.57329
2620 2.49713
2224 2.32567
1322 2.18991
2673 0.819399
406 0.778652
2576 -0.147101
461 -0.978711
1549 -2.05435
313 -7.22184
cziggy343
04-04-2008, 21:28
do you have one for each regional? b/c if you do, i would like to see palmetto... b/c i never got to see any statistics:(
do you have one for each regional? b/c if you do, i would like to see palmetto... b/c i never got to see any statistics:(
I have to generate them manually per-regional, so for now I'm going to keep it on a request basis. Enjoy!
Palmetto
845 34.6689
1251 34.1576
343 29.7443
1249 29.2152
342 26.3919
1261 25.5961
1466 22.6852
386 22.5882
1539 21.2896
1746 18.6837
2237 16.7312
2483 16.524
1026 16.3271
1319 16.0827
2187 13.6184
665 12.8638
2430 12.8461
1225 12.8339
2092 12.4018
281 12.147
1758 11.297
1398 8.26199
1102 8.01401
1553 7.85424
1051 7.1118
1876 6.23695
393 5.72104
804 4.95519
1959 4.86179
2362 3.91176
900 2.86289
1293 2.82464
1270 2.02667
1369 0.548534
2425 0.18277
1436 -4.56816
GBilletdeaux930
04-04-2008, 21:38
So all i gotta do is say
"Can i see the opr's for the wisconsin regional?"
and they will magically appear a few posts down from this one?
cziggy343
04-04-2008, 21:39
So all i gotta do is say
"Can i see the opr's for the wisconsin regional?"
and they will magically appear a few posts down from this one?
thats how mine worked:D
XaulZan11
04-04-2008, 21:40
So all i gotta do is say
"Can i see the opr's for the wisconsin regional?"
and they will magically appear a few posts down from this one?
Ha, I was just gonna ask for the same. I'm interested to see how this compares to the statistics of points scored per match that we scouted.
GBilletdeaux930
04-04-2008, 21:41
well we'll see if this magic works...
ABRAWisconsinRegionalKADABRA!!!
well we'll see if this magic works...
ABRAWisconsinRegionalKADABRA!!!
Lol, subtle
Wisconsin Regional
1625 49.8168
141 35.6332
1730 32.0028
1736 25.5406
2169 24.3109
2062 24.019
930 21.573
171 20.006
2547 19.1146
1675 18.0718
2481 17.3041
93 17.1033
166 15.6925
2549 15.4527
2606 15.3803
2535 14.9615
2545 14.8528
2526 14.6634
1091 14.3247
2437 13.5781
1816 13.1077
2574 12.4494
1739 11.8769
2530 11.2592
2116 10.8958
2077 10.7748
1652 10.6515
1103 10.364
2202 9.8298
2194 9.37814
1850 9.05741
2039 8.87432
857 8.77189
1988 8.39986
2153 8.3983
2143 7.923
2667 7.88136
1259 7.56955
537 7.14274
1716 6.86105
167 5.99421
904 5.74562
2136 5.62584
2129 5.27883
269 4.51404
74 3.56688
1306 3.53685
2220 3.22949
1714 2.86169
1732 2.31474
2506 2.25164
2538 1.84231
1864 0.955353
754 -0.576295
706 -1.18242
81 -2.20895
1984 -2.30947
1268 -2.98356
2586 -7.35126
2561 -9.22469
Again, not a programmer, but I have an interesting idea for writing a DPR (Defensive Power Rating) algorithm. Take your OPR values, apply them to the matches. The delta between the expected score and the actual score would be the raw value for a DPR score. Use your OPR techniques to then factor out the DPR each team might provide.
One thought on why your average score is much higher than your OPR is that a decent hurdler may actually slow down the scoring of an exceptional hurdler. Take for instance an 1114. I know they have done 7 hurdles and may even have done 8 in a match. The match where they did 8, probably would not occur with 2 other decent hurdlers as they may hurdle also and thus accidentally slow down an 1114.
Thanks for posting your results.
GBilletdeaux930
04-04-2008, 21:54
oh thank you it seems like there really is magic in this world
*looks up with his fingers interlaced in a weird disney like pose*
Adam Freeman
04-04-2008, 23:00
Bongle, not that you need additional validation but your numbers match up exactly with the numbers that our guys have calculated.
This information in the hands of teams that know how to use it will be very dangerous :) ...
I know that I plan to have up to date information in Atlanta for our division.
Although there is no replacement for watching matches and see teams improve through out the weekend. I will have to keep my 'black magic' going and pull more 503s out of my hat, or they just might replace me with a OPR scoring database.
The Lucas
04-04-2008, 23:03
Expect all good scouting teams to be using these stats in the very near future.
Although I love these numbers as and overall indicator of offensive contribution among many teams many matches, they are no substitution for scouting at your event and recording "actual" contributions. These numbers are great to scout with going into Championship. However, if you only use the numbers from 5 qualification matches (per team) to evaluate teams and generate your list on Friday night, there is something wrong with your methods. (Shawn, I know you were not thinking of these number as replacements for all other scouting)
My explanation for why the data is seams like it is skewed towards the extremes is team coordination, track speed, and defense. When very good teams get to together, this is a different game (you can see it in the elims). They are able to coordinate their strategy better (particularly hybrid mode). Ex. If a partner's hybrid routine bumps knocks off their higher-scoring partner's hybrid, that can easily cost the alliance 20+ points (which would reflect very badly on the the OPR of lower scoring bot). When good scoring machines are together (particularly when they are on both alliances) the track moves a lot quicker and there are very few traffic jams, so everyone scores more. If there is defense being played, it will likely only slow down the higher scoring machine, so the impact of the scoring capabilities of the partners is increased. These reasons should also explain some of the differences between regionals. Of coarse there is always the random variable of luck, but we will assume that is zero mean:D Well thats my $0.02
personally i like these numbers. No its not a substitute for scouting but it atleast lets you know who you may want to pay closer attention to. I also like the new list as 1629 moved up to 40th!!
I'm not sure I saw this yet, but thought it would be interesting to cross reference the OPR with the CMP teams that are currently on the list... Here's the top 50 CMP OPRs...
Team Reg Wins OPR
1114 3 66.10642467
2056 2 54.11894734
233 2 50.73081127
330 1 48.61296306
987 1 48.40552663
39 2 48.06177403
525 1 45.48888639
67 1 44.23000818
1124 1 42.40054838
217 2 42.10281885
103 1 41.29156933
40 2 40.86592771
175 1 39.4420245
191 1 39.06592804
469 1 37.90116922
20 2 37.75470786
79 0 37.65042852
1717 2 37.34613148
141 0 37.32830996
1024 3 37.2668216
968 1 35.93916079
1086 1 35.8662985
1126 1 35.81116812
368 1 35.65581359
494 0 35.0189302
2171 1 33.98399753
25 1 33.89508807
1625 1 33.79257371
365 1 33.63738509
254 2 32.91821392
47 0 32.49881588
93 1 32.23816608
1477 2 32.14182287
1251 1 31.57996364
1806 2 31.33327422
16 1 31.18613493
1629 0 31.01151072
33 0 30.94122998
1418 1 30.31278837
195 0 30.2915486
27 0 29.90208154
71 1 29.87541039
171 1 29.71637571
148 1 29.4612061
126 0 29.13224379
1156 0 28.94799245
1065 0 28.73082662
121 1 28.65599825
45 0 28.31597278
MasterChief 573
05-04-2008, 12:06
Can you do the full CMP list as of now?
Guy Davidson
05-04-2008, 12:10
Doug, 191 was a member of the winning alliance at FLR.
Jacob Plicque
05-04-2008, 14:38
Sumadin's included eliminations. It is possible that your alliance partners during eliminations were both scoring below their qualifying performance (which would make sense, given the increased quality of the opposition), and the algorithm 'attributed' that to you. This is why I didn't include eliminations in the ones I ran, they're a whole different beast. It probably isn't a bug in his code, because we both independently developed our own code and our results match, so unless the math foundations we're basing this on are shaky, it's probably an effect of using the finals data.
In other news:
This intrigued me, so I did it for a few more:
GLR: 20/24
Florida: 19/24
VCU: 17/24
So it is a somewhat accurate predictor, but it doesn't take into account that a team's 3rd pick is likely to be a lower-scoring lap bot because of the game only having 2 trackballs. Picking strictly by OPR is a fast way to get eliminated, because you'd probably end up with 3 delicate, relatively slow hurdlers fighting over 2 trackballs, rather than a more-ideal combination of 1 robust lapper/defender and 2 hurdlers.
Bongle
Your assumption is correct that Team 86 was a lapbot/defender. Our alliance won the elimination 6-0 at the Florida Regional with scores the ranged from 60 to 116 for 77 point average. I earlier tried to include the use the eliminations for the Florida Regional like Sumadin and the results were very skewed. So the matrices have a problem when the elimination match data is used to solve the matrix. I am still puzzled as to why the eliminations skew the OPR results so drastically (8,8 OPR no elims versus 1.47 OPR with elim)
Joe Ross
05-04-2008, 14:55
Bongle
Your assumption is correct that Team 86 was a lapbot/defender. Our alliance won the elimination 6-0 at the Florida Regional with scores the ranged from 60 to 116 for 77 point average. I earlier tried to include the use the eliminations for the Florida Regional like Sumadin and the results were very skewed. So the matrices have a problem when the elimination match data is used to solve the matrix. I am still puzzled as to why the eliminations skew the OPR results so drastically (8,8 OPR no elims versus 1.47 OPR with elim)
233 and 1251's OPR add to 81, so overall the alliance underperformed* based on the qualifying OPRs. Therefore all three robot's OPRs should go down a little. Those 6 elim matches were 20% of the matches that 233 and 1251 played this year (they went to other regionals too). It was over 40% of 86's matches this year, so 86 would see more of an effect.
Also 233 performed much better at Hawaii then they did in Florida. Since there is only one OPR for the year, it looks like Pink underperformed at Hawaii and overperformed at Florida. I think that 86's OPR would change less when adding in the elims if you were looking at the Florida data only.
*by underperformed, I mean as far as OPR is concerned. It's likely that more defense was played in the finals and was the cause.
Jacob Plicque
05-04-2008, 16:30
233 and 1251's OPR add to 81, so overall the alliance underperformed* based on the qualifying OPRs. Therefore all three robot's OPRs should go down a little. Those 6 elim matches were 20% of the matches that 233 and 1251 played this year (they went to other regionals too). It was over 40% of 86's matches this year, so 86 would see more of an effect.
Also 233 performed much better at Hawaii then they did in Florida. Since there is only one OPR for the year, it looks like Pink underperformed at Hawaii and overperformed at Florida. I think that 86's OPR would change less when adding in the elims if you were looking at the Florida data only.
*by underperformed, I mean as far as OPR is concerned. It's likely that more defense was played in the finals and was the cause.
Joe,
The Hawaii data for 233 is 53.16 pts versus 35.63 pts at the Florida regional. This 18 point change in OPR probably reflects on the fact that the current matrix mathematics would need a strength of schedule adjustment when comparing 40+ regionals. Has 233 improved its offence by 150% in Hawaii or is the competition 66% as strong? In contrast 1251's OPR varied by only 1 point between Florida and South Carolina.:D
can you post the boston regional OPR?
IbleedPink233
05-04-2008, 17:16
I'd think that the change in our scoring average could be due to a few things:
At Florida, there were 3 qualifying matches where our tower was 100% inoperable and 2 elimination matches where our top roller did not work, leading to below-average scores there. Also, our autonomous scored about twice as many points in Hawaii than it did in Florida.
Can you do the full CMP list as of now?
There may be a few more to add in this next week as NYC finishes up.
Doug, 191 was a member of the winning alliance at FLR.
I simply took the TBA list and crossed it with the OPR list. TBA must not have 191 as winning. But I'll update the posted list.
David Guzman
05-04-2008, 21:23
In contrast 1251's OPR varied by only 1 point between Florida and South Carolina.:D
Yea, this was mostly due to the fact that at palmetto our partners weren't as good. Also having a bull's eye on the robot doesn't help... :D
I love this power rankings, judging by the teams at the top and what I have seen at competitions. It is a good indication of what teams are scoring. This would be a good tool to do some scouting on what teams to watch for on Thursday at the Championship. (Once divisions come out.)
Nawaid Ladak
05-04-2008, 21:23
can we please get a top 50 with the elimination rounds. i think it would be intresting to see these stats
Joe Ross
05-04-2008, 21:40
can we please get a top 50 with the elimination rounds. i think it would be intresting to see these stats
Guy's values in the following post include eliminations:
http://www.chiefdelphi.com/forums/showpost.php?p=730527&postcount=42
cziggy343
06-04-2008, 12:37
Yea, this was mostly due to the fact that at palmetto our partners weren't as good. Also having a bull's eye on the robot doesn't help... :D
yeah... one of our mentors actually put a bullseye on our robot:D it was quite entertaining to me!
So... I'm really curious to see the OPRs for the Colorado Regional...
Josh Drake
06-04-2008, 13:57
Also having a bull's eye on the robot doesn't help... :D
If I recall correctly, there was a match at Palmetto in which a cretain orange robot made a bee line to ours once their elevator broke.:D Too bad one of us didn't end up winning it. Good luck in ATL.
cziggy343
06-04-2008, 14:32
If I recall correctly, there was a match at Palmetto in which a cretain orange robot made a bee line to ours once their elevator broke.:D Too bad one of us didn't end up winning it. Good luck in ATL.
yes, i think i remember that too josh;)
Aren_Hill
06-04-2008, 15:18
So... I'm really curious to see the OPRs for the Colorado Regional...
ABRAcoloradoregionalKADABRA! lol i'm curious too:D
Sorry, I've been out with friends and doing homework for the last couple days.
Colorado
1625 44.1421
1158 34.1294
1592 30.3363
1996 27.6142
1986 24.7011
1710 21.2959
443 19.26
1619 17.5055
1552 16.9992
2261 13.9418
2400 12.6815
662 11.613
1339 11.3174
1764 11.1782
1245 11.1402
1785 11.0254
1357 10.2145
1799 10.1786
159 9.40661
1296 9.23699
1332 9.14622
1408 8.56112
1583 8.46295
2036 8.30176
2543 7.97485
1303 6.33346
1977 6.31416
1348 5.95235
2250 5.48558
2240 5.40541
1789 3.9818
1584 3.76991
1410 3.68494
1157 2.56378
1377 2.27597
2083 2.1554
1375 0.744309
1691 0.117632
1847 -1.1462
2275 -1.81653
2259 -5.57234
1361 -5.94798
SVR
100 37.5837
192 31.8033
2024 27.1285
692 23.3598
2035 19.4172
254 18.9625
190 18.0702
766 17.645
971 17.5077
2473 16.7927
1280 14.8616
840 13.9741
668 13.9041
2628 13.453
846 13.2023
973 12.3591
1868 12.3273
1700 12.2685
670 11.7811
972 11.0111
115 10.905
253 9.9941
114 9.73564
2446 9.4606
1548 8.76499
2367 8.23913
2643 8.21591
2144 7.75092
8 7.39362
1834 6.80273
2141 5.82024
2629 5.77631
2489 5.76177
581 5.52981
649 5.24234
1560 4.94077
1072 4.7824
675 4.11086
256 2.83506
1967 2.76003
2159 2.53348
604 1.99006
1458 1.51235
1351 1.44784
1516 1.33837
2090 -1.52543
2283 -1.73087
2135 -7.20089
Davis
766 35.6844
997 30.954
2551 27.7521
692 25.7874
1662 22.8678
1388 22.7622
2035 22.436
2122 21.7512
2073 20.3156
1678 20.2854
1323 16.5556
2063 15.938
2144 15.7774
2390 15.4715
2633 15.0656
1516 14.7347
1351 14.3233
114 13.3008
2623 12.9547
2085 9.92073
2367 9.79919
1458 9.51097
2456 9.39205
2159 8.91843
701 8.54408
2156 8.25189
675 8.19112
2598 8.10967
2189 7.63435
295 6.77582
115 4.20432
1147 3.99845
2204 3.19376
1072 2.03249
852 1.96495
841 1.33425
2135 -1.02026
MasterChief 573
06-04-2008, 17:35
Can we expect a CMP OPR by sometime tonight or tomorrow?
cziggy343
06-04-2008, 17:42
probably more like wednesday or thursday... horray for fill-ins!:p
Guy Davidson
06-04-2008, 17:42
I'll post a championship OPR by division once the division lists come out, so probably sometime this or next week.
MasterChief 573
06-04-2008, 17:43
GRR!!! Must have scouting information!
cziggy343
06-04-2008, 17:49
GRR!!! Must have scouting information!
AMEN!!:D
I'm apparently missing 4 teams, which means that there is some regional that sent only 4 teams that I don't have in my data. I'm guessing the Israel one.
OPR of teams going to the championship event. Qualifying matches at all regionals.
Go check out Travis Hoffman's post a few down, he added position numbers to my more-raw post.
Beware that this post includes all of a team's matches all season. 1114's OPR steadily increased from MW to GTR, and ended up at 80+ at GTR. I'm sure most multi-regional teams did as well.
cziggy343
06-04-2008, 18:04
sweet! we cracked the top 50!!
Travis Hoffman
06-04-2008, 18:07
1 1114 68.5388
2 2056 53.7198
3 987 51.0249
4 233 50.3309
5 330 48.6782
6 39 44.2954
7 103 43.4295
8 1124 42.087
9 67 42.0777
10 525 41.482
11 175 40.3134
12 25 40.2684
13 217 40.0997
14 1024 39.8043
15 1086 37.4098
16 191 37.0664
17 20 36.9179
18 40 36.6407
19 1251 36.1213
20 368 35.623
21 121 35.5714
22 1625 35.182
23 968 35.1251
24 494 35.0843
25 1218 35.0123
26 1574 34.6153
27 141 34.1791
28 1126 33.9523
29 79 33.8184
30 469 33.2445
31 1717 32.6876
32 254 32.2835
33 126 32.1564
34 33 32.0724
35 365 31.1953
36 47 30.8582
37 1156 30.7724
38 16 30.6096
39 1065 30.3857
40 93 29.8324
41 195 29.8271
42 111 29.5598
43 1629 29.3968
44 1477 29.1358
45 100 28.9496
46 66 28.7585
47 359 28.6125
48 343 28.4788
49 1540 28.3682
50 1806 28.017
51 326 27.7706
52 357 27.5585
53 1511 27.4887
54 768 27.479
55 337 27.4018
56 148 27.1543
57 27 26.1802
58 88 26.1603
59 435 25.8861
60 2024 25.7909
61 107 25.7585
62 1598 25.7538
63 703 25.3443
64 692 25.1185
65 341 24.9718
66 1690 24.8488
67 816 24.5822
68 118 24.5244
69 70 24.4839
70 201 24.395
71 1649 24.3187
72 1736 24.3077
73 45 23.9324
74 1592 23.927
75 2575 23.7988
76 358 23.7116
77 501 23.6845
78 2468 23.6265
79 1261 23.1923
80 2550 23.1234
81 179 23.0887
82 1350 23.0551
83 384 22.8185
84 1662 22.7643
85 176 22.7506
86 1450 22.443
87 397 22.3709
88 573 22.2924
89 2016 22.2387
90 1418 22.1045
91 171 22.0562
92 2590 21.8837
93 237 21.8651
94 291 21.4215
95 65 21.4089
96 716 21.3507
97 932 21.2126
98 364 21.098
99 1 20.8269
100 894 20.5645
101 231 20.5528
102 375 20.4583
103 1388 20.4577
104 292 20.3743
105 2046 20.351
106 2062 20.2978
107 316 20.1529
108 2165 20.1297
109 71 19.9203
110 1746 19.9173
111 1503 19.8719
112 1816 19.8565
113 2487 19.5241
114 155 19.4973
115 488 19.2214
116 1987 19.1912
117 555 18.9225
118 180 18.8032
119 2377 18.6943
120 801 18.4733
121 2214 18.4471
122 2171 18.4382
123 1279 18.1647
124 401 17.9687
125 386 17.8205
126 2081 17.7391
127 312 17.6104
128 1094 17.5754
129 68 17.4752
130 84 17.4137
131 1983 17.37
132 1023 17.2405
133 2624 17.1421
134 2520 17.0806
135 48 16.9962
136 2122 16.9006
137 842 16.8603
138 60 16.8602
139 1756 16.8148
140 2472 16.6817
141 1528 16.2211
142 1089 16.1763
143 2668 15.944
144 2609 15.9218
145 486 15.8339
146 2638 15.8122
147 418 15.6866
148 2337 15.6245
149 1429 15.5738
150 177 15.5204
151 236 15.4948
152 2335 15.4937
153 223 15.4728
154 1319 15.2192
155 503 15.0032
156 425 14.9264
157 173 14.8737
158 2437 14.8604
159 57 14.8468
160 2549 14.7843
161 2474 14.7581
162 2455 14.6894
163 812 14.6871
164 1902 14.6679
165 612 14.484
166 288 14.2822
167 2048 14.1751
168 2564 14.1147
169 1386 14.0747
170 1366 14.0205
171 11 13.9983
172 949 13.9306
173 2630 13.9012
174 1699 13.8102
175 832 13.7996
176 2340 13.4792
177 1143 13.4064
178 271 13.3695
179 1108 13.2566
180 2483 13.072
181 686 13.0621
182 1802 13.0529
183 2430 12.9148
184 1305 12.8789
185 1245 12.8424
186 830 12.839
187 1318 12.8149
188 1727 12.7252
189 134 12.7215
190 701 12.6129
191 108 12.5031
192 587 12.3878
193 1939 12.3302
194 597 12.2551
195 138 12.1736
196 2166 12.1586
197 499 12.1446
198 476 12.0935
199 1025 11.9832
200 1646 11.9503
201 329 11.9081
202 1474 11.8134
203 548 11.7584
204 1676 11.7402
205 2352 11.7338
206 1311 11.6068
207 1747 11.513
208 980 11.4191
209 1323 11.4131
210 1014 11.3998
211 1566 11.322
212 207 11.2987
213 2237 11.1831
214 462 11.1008
215 234 10.9566
216 2518 10.8972
217 2053 10.8629
218 527 10.76
219 2556 10.7331
220 102 10.718
221 1165 10.6902
222 1038 10.6671
223 1296 10.6364
224 2449 10.5945
225 302 10.5687
226 120 10.5253
227 340 10.3906
228 294 10.3839
229 226 10.2614
230 2342 10.1489
231 135 10.1218
232 1834 10.0472
233 115 10.0331
234 1732 9.90292
235 1138 9.87211
236 190 9.86987
237 1379 9.66405
238 461 9.65801
239 1533 9.61417
240 2599 9.58294
241 159 9.49258
242 49 9.46218
243 2410 9.45451
244 1538 9.44163
245 1357 9.27256
246 610 9.26925
247 399 9.23661
248 1504 9.19934
249 1868 9.17257
250 128 9.14719
251 87 9.14665
252 122 9.12163
253 457 9.11227
254 85 8.93951
255 1714 8.79298
256 1885 8.78587
257 86 8.7464
258 1013 8.74368
259 2023 8.71529
260 2415 8.61229
261 2423 8.54472
262 2614 8.49272
263 1127 8.40032
264 322 8.36417
265 1502 8.34679
266 2338 8.23834
267 2041 8.03787
268 1033 7.93566
269 1212 7.89683
270 178 7.79773
271 440 7.63165
272 269 7.6034
273 228 7.55048
274 2038 7.53803
275 2591 7.51086
276 2115 7.45546
277 547 7.07262
278 1758 6.79622
279 2454 6.72194
280 433 6.52182
281 839 6.38954
282 1547 6.33932
283 967 6.14301
284 2424 6.04093
285 1102 5.74653
286 599 5.17608
287 1594 5.13978
288 900 5.08778
289 2543 5.05118
290 1398 4.58121
291 1522 4.5526
292 2629 4.38064
293 2354 4.32885
294 303 4.07829
295 1739 3.70054
296 903 3.62318
297 75 3.484
298 224 3.45148
299 1599 3.44745
300 1860 3.44376
301 2557 3.25748
302 151 3.13248
303 5 2.94194
304 1577 2.92397
305 4 2.75584
306 714 2.38724
307 1266 2.26307
308 1071 1.81412
309 2429 1.67518
310 1941 1.62344
311 395 1.37087
312 604 0.738426
313 296 0.647845
314 922 0.311379
315 1523 0.183719
316 1576 -0.647048
317 677 -0.803929
318 752 -0.994666
319 1795 -1.03144
320 868 -1.10528
321 241 -1.19695
322 1595 -1.58176
323 2621 -1.63888
324 203 -2.99325
325 422 -3.16979
326 509 -5.37317
327 468 -8.78458
MasterChief 573
06-04-2008, 18:11
lol, cracked the top 90!
cziggy343
06-04-2008, 18:15
i think we now know why its no wonder that whenever 1114 and 2056 got together, there were a lot of points scored:ahh:
I'm apparently missing 4 teams, which means that there is some regional that sent only 4 teams that I don't have in my data. I'm guessing the Israel one.
OPR of teams going to the championship event. Qualifying matches at all regionals.
Go check out Travis Hoffman's post a few down, he added position numbers to my more-raw post.
Beware that this post includes all of a team's matches all season. 1114's OPR steadily increased from MW to GTR, and ended up at 80+ at GTR. I'm sure most multi-regional teams did as well.
Since teams such as 1114 are not going to back down to their older OPR's can you post one that only includes the last regional of each team.
I know it could be challenging to set up the program, but it would be a great tool
Thank You
Since teams such as 1114 are not going to back down to their older OPR's can you post one that only includes the last regional of each team.
I know it could be challenging to set up the program, but it would be a great tool
Thank You
Alright, I have thought of a way to do that without too much pain. I should have it done in an hour or so.
Joe Ross
06-04-2008, 19:13
I'm apparently missing 4 teams, which means that there is some regional that sent only 4 teams that I don't have in my data. I'm guessing the Israel one.
You have the Israel teams.
It looks like you are missing 858, 1254, 2335, 2337, and 2604. Looks like 4 of them all went to West Michigan.
You have the Israel teams.
It looks like you are missing 858, 1254, 2335, 2337, and 2604. Looks like 4 of them all went to West Michigan.
West michigan has funnily-formatted results on usfirst.org, and I haven't adopted mine to run on TBA CSV dumps. That's my guess. It's in my list of regionals, but even these updated ones don't include those teams.
Anywho, find attached an XLS file detailing:
-A team's regional count* (I may have missed some regionals due to formatting funniness)
-A team's last OPR
-A team's last regional
-A team's best OPR (if it differed from their last, which didn't happen much)
-A team's best regional
Note that some regionals still don't have all their results up, so for those regionals (Peachtree and one other) the OPR will not be 'accurate'.
oprChamps has only teams attending championships.
oprAll has all teams.
Greg Marra
06-04-2008, 19:44
West michigan has funnily-formatted results on usfirst.org, and I haven't adopted mine to run on TBA CSV dumps. That's my guess. It's in my list of regionals, but even these updated ones don't include those teams.
Even if you don't use TBA CSV dumps, the data on TBA is formatted very cleanly in HTML tables that ought to copy-paste well into Excel or what have you to turn into good data.
Even if you don't use TBA CSV dumps, the data on TBA is formatted very cleanly in HTML tables that ought to copy-paste well into Excel or what have you to turn into good data.
You make a good point.
Now includes western michigan regional. oprChamps now includes 333 teams, just like it should.
MasterChief 573
06-04-2008, 20:01
West michigan has funnily-formatted results on usfirst.org, and I haven't adopted mine to run on TBA CSV dumps. That's my guess. It's in my list of regionals, but even these updated ones don't include those teams.
Anywho, find attached an XLS file detailing:
-A team's regional count* (I may have missed some regionals due to formatting funniness)
-A team's last OPR
-A team's last regional
-A team's best OPR (if it differed from their last, which didn't happen much)
-A team's best regional
Note that some regionals still don't have all their results up, so for those regionals (Peachtree and one other) the OPR will not be 'accurate'.
oprChamps has only teams attending championships.
oprAll has all teams.
There seems to be a massive discrepancy in the the championship OPR you posted early today and this one. For example, in the first on our team (573) had a OPR of 22.3 and ranked 88th. This one the OPR is 20.2 and we rank 125th. Would you care explaining this discrepancy to me?
There seems to be a massive discrepancy in the the championship OPR you posted early today and this one. For example, in the first on our team (573) had a OPR of 22.3 and ranked 88th. This one the OPR is 20.2 and we rank 125th. Would you care explaining this discrepancy to me?
Which regionals did you attend?
Edit: I have discovered you attended pittsburgh and glr, and here is my theory:
-The new listing only ranks you based on your performance per-regional. The old listing was based on a team's total performance over all of its matches throughout the season. Through the magic of mathematics, your team looked a little better when the overall performance of every team was factored in.
So just like teams like 1114 who improved massively regional to regional get a big boost in the new listing, other teams can actually suffer. Although keep in mind that according to the best OPR listing, you're 115th, because your performance at pittsburgh was better than that at GLR.
MasterChief 573
06-04-2008, 20:07
Which regionals did you attend?
Pittsburgh and GLR. You did point out the difference in the two OPRs (Pitt was 21.6 and GLR was 20.2) But that still doesn't add up. And apparently while our numbers went down, other teams went up from what they were.
Pittsburgh and GLR. You did point out the difference in the two OPRs (Pitt was 21.6 and GLR was 20.2) But that still doesn't add up. And apparently while our numbers went down, other teams went up from what they were.
Yeah, teams going up is to be expected. Think of a team like 1114, who steadily (and massively) improved their performance from regional to regional. This most-recent listing is ranked by a team's last regional performance, which is very often their best regional performance. A team that did very well at their last competition but poorer earlier would have ranked below you in the earlier rankings (which were based on the whole field of robots at once), but would be ahead of you in these rankings, because these are ranked off of a team's last regional performance, like people requested.
waialua359
06-04-2008, 20:24
I like the new OPR of the last regional attended, due to the fact that it is more indicative of a team after adjustments to driving, strategy and robot features were made after attending more than 1 regional.
Our biggest feature change was moving our pneumatic piston to our claw which pops balls over the overpass once our claw opens.
We sacrificed popping balls during hybrid and moved it to our claw instead.
With increased speed, hybrid adjustments, and improved driving, we went from doing 1 or no lines in hybrid to now being able to consistently doing 4, with much greater speed, and hurdling capability.
Its too bad it took 3 regionals to figure it out, but at least we will be much better prepared for CMP.
On another note, its funny how us and our favorite Hawaiian teammate are ranked next to each other, off by a few decimal points.:D
I just got an interesting idea.
I have scouting data for matches from Friday at the Wisconsin Regional for every team. However, the power rankings are for every match.
Could someone please figure out the power rankings using only Friday's Wisconsin matches for comparison?
I just got an interesting idea.
I have scouting data for matches from Friday at the Wisconsin Regional for every team. However, the power rankings are for every match.
Could someone please figure out the power rankings using only Friday's Wisconsin matches for comparison?
Team One Last OPR
1625 1 45.6544
141 1 37.3371
1730 1 31.3317
2169 1 27.3694
2062 1 25.2449
1736 1 20.5779
1816 1 19.864
1675 1 19.2832
2547 1 18.3416
2549 1 17.2544
93 1 17.011
171 1 16.9353
930 1 16.7177
2606 1 16.5577
2077 1 16.0525
2153 1 15.7331
1850 1 15.6312
1091 1 15.5336
2202 1 14.8521
2481 1 14.6515
2545 1 14.5534
2526 1 13.1104
2437 1 12.7125
1716 1 11.9898
537 1 11.9816
166 1 10.9945
2574 1 10.0294
904 1 9.62609
2039 1 9.34348
1259 1 9.1616
2506 1 8.72875
167 1 8.64531
2667 1 8.18725
2535 1 7.59668
2530 1 7.49738
269 1 7.30741
1714 1 7.01325
857 1 6.86925
2116 1 6.45649
1103 1 5.9275
1732 1 5.82385
1652 1 5.42679
2129 1 4.6678
74 1 3.92383
2143 1 3.64548
2538 1 2.9253
2136 1 2.26655
2220 1 1.04619
1306 1 0.442787
1739 1 0.0543406
1988 1 -0.00043864
1864 1 -0.086347
1984 1 -0.339205
2194 1 -0.386904
754 1 -1.22019
81 1 -1.43283
706 1 -1.65319
2586 1 -2.85733
1268 1 -6.65054
2561 1 -11.5318
MasterChief 573
06-04-2008, 20:55
these are ranked off of a team's last regional performance, like people requested.
Oh thats it, so the first one was an overall OPR and the last one was based only on a teams last performances? Gotcha.
My data was determined using actual scouting. Scouting was done by 2194 and 171. I have the data for every team if you want me to compile it all. This is only for Friday at Milwaukee for comparison.
Kind of interesting to see the differences.
Power Rankings
1625 1 45.6544
141 1 37.3371
1730 1 31.3317
2169 1 27.3694
2062 1 25.2449
1736 1 20.5779
1816 1 19.864
1675 1 19.2832
2547 1 18.3416
2549 1 17.2544
93 1 17.011
171 1 16.9353
930 1 16.7177
2606 1 16.5577
2077 1 16.0525
2153 1 15.7331
1850 1 15.6312
1091 1 15.5336
2202 1 14.8521
2481 1 14.6515
2545 1 14.5534
2526 1 13.1104
2437 1 12.7125
1716 1 11.9898
537 1 11.9816
166 1 10.9945
2574 1 10.0294
904 1 9.62609
2039 1 9.34348
1259 1 9.1616
2506 1 8.72875
167 1 8.64531
2667 1 8.18725
2535 1 7.59668
2530 1 7.49738
269 1 7.30741
1714 1 7.01325
857 1 6.86925
2116 1 6.45649
1103 1 5.9275
1732 1 5.82385
1652 1 5.42679
2129 1 4.6678
74 1 3.92383
2143 1 3.64548
2538 1 2.9253
2136 1 2.26655
2220 1 1.04619
1306 1 0.442787
1739 1 0.0543406
1988 1 -0.00043864
1864 1 -0.086347
1984 1 -0.339205
2194 1 -0.386904
754 1 -1.22019
81 1 -1.43283
706 1 -1.65319
2586 1 -2.85733
1268 1 -6.65054
2561 1 -11.5318
Actual
Team Avg Pts/Match
2062 35.67
171 35.67
93 32.67
1625 32.40
1730 29.00
141 28.67
2169 27.00
930 23.20
2545 23.00
1732 21.60
1816 21.33
2039 18.00
166 17.00
1736 15.67
1259 15.60
2481 15.00
1652 14.67
2606 14.40
2077 14.00
2530 14.00
2202 13.20
2129 12.80
2194 12.80
Joe Ross
06-04-2008, 21:18
Can you post San Diego?
Nice job on the stats all of you who have been working the numbers...a thought has occurred regarding use of last regional numbers to rank teams-a stated presumption of best performance then if multiple regionals were entered doesn't take into account factors like some regionals with a higher proportion of rookie teams (translating often into higher scores by veteran teams) which was seen in Hawaii last week and Okla and Minn. earlier. Also, increasing levels of defense have shown up in some of the latest regionals as the game evolves (watch footage from LVR). Seems like an average of all performances is more representative...and the likely data source my team will use for some assistance with early scouting.
Greg Marra
06-04-2008, 21:21
Too bad FIRST doesn't report penalties. I wonder how those are affecting these results.
Well, the head ref records penatlies for each robot during the match on a sheet, but you never see it unless you go to the "Contest the score" box.
My data comes from Lines Crossed in Hybrid, Balls Removed in Hybrid, Laps, Herds, Hurdles, and Balls Placed at the End.
XaulZan11
06-04-2008, 21:59
Like 171/2194, 1732 recorded the amount of points a team scored per match at Wisconsin. We kept track of lines and balls knocked down in hybrid, laps, hurdlers, herds and balls placed at the end.
I ran a correlation test to see how related the two sets of data are and see how good the OPR is at predicting how many points a team scores per match. There are some assumptions/problems. First, our scouting data isn't perfect so there is some error from that. Secondly, our scouting data doesn't include penalties, but the ORP does account for them. So, when doing a linear regression, I got an R value of .7841 and an R-squared value of .6149. (A perfect relationship would have an R value of -1 or 1 and no relationship would be 0). So, while it is not pefect (not surprising) the ORP is a fairly good predictor of a team's preformance.
Like 171/2194, 1732 recorded the amount of points a team scored per match at Wisconsin. We kept track of lines and balls knocked down in hybrid, laps, hurdlers, herds and balls placed at the end.
I ran a correlation test to see how related the two sets of data are and see how good the OPR is at predicting how many points a team scores per match. There are some assumptions/problems. First, our scouting data isn't perfect so there is some error from that. Secondly, our scouting data doesn't include penalties, but the ORP does account for them. So, when doing a linear regression, I got an R value of .7841 and an R-squared value of .6149. (A perfect relationship would have an R value of -1 or 1 and no relationship would be 0). So, while it is not pefect (not surprising) the ORP is a fairly good predictor of a team's preformance.
I agree. The OPR does do a pretty good job. Of course, hard data is nice too, but I find it really awesome that you can figure this much out with just match scores.
John Wanninger
06-04-2008, 22:39
My data was determined using actual scouting. Scouting was done by 2194 and 171. I have the data for every team if you want me to compile it all. This is only for Friday at Milwaukee for comparison.
Kind of interesting to see the differences.
One reason for Offensive Power Rankings not matching reality is due to the fact that OPR’s are based on the averages of partners’ OPRs rather than actual contributions. Any deviation of a team from its ‘average’ contribution in a given match will always erroneously drive their partners’ OPR up or down.
These deviations can be large; it would not be unusual for a team to contribute 20 points in one match and then perhaps due to penalties, “contribute” -20 in the next. Given enough matches one might expect these errors to cancel each other out. However, when there is a limited number of matches (think: 8 coin tosses don’t always produce 4 heads and 4 tails) and the high degree of volatility, the error can be significant.
So while the OPR may be a good predictor, there's still no substitute for accurate, detailed scouting!
One reason for Offensive Power Rankings not matching reality is due to the fact that OPR’s are based on the averages of partners’ OPRs rather than actual contributions. Any deviation of a team from its ‘average’ contribution in a given match will always erroneously drive their partners’ OPR up or down.
These deviations can be large; it would not be unusual for a team to contribute 20 points in one match and then perhaps due to penalties, “contribute” -20 in the next. Given enough matches one might expect these errors to cancel each other out. However, when there is a limited number of matches (think: 8 coin tosses don’t always produce 4 heads and 4 tails) and the high degree of volatility, the error can be significant.
So while the OPR may be a good predictor, there's still no substitute for accurate, detailed scouting!
Spot on John. Congrats on the Woodie btw. You deserve it. Hope to catch up with you in Atlanta.
Eugene Fang
06-04-2008, 23:33
I asked this question earlier, but no one replied to it:
if there was a normally very high scoring team that happened to malfunction in a match where they were in your alliance, or was defended a lot in your particular round, wouldn't your score be highly skewed?
-also-
if three very very good teams were in the same round on the same team at the same time, wouldnt it also get skewed?
thanks for any input, because the OPR isnt even close to our average point contribution to our allinace that i calculated by hand after watching our regional videos, and our team hopes that teams at ATL won't rely on the OPR greatly for scouting, as it may negatively influence their decisions for alliance parings with our team, as well as many others. once again, thanks!
Guy Davidson
07-04-2008, 00:34
Of course that many things could skew the nubers. However, the law of large numbers still applies: the more and more samples you take, the more the number you're sampling appraoch its true value. So even if one matches is skewed, the average if your ten matches, or maybe more, will still be close to the expect numbers.
I think relying on any one tool too much to make a decision is a bad idea. Look, for example at what NFL teams do before they draft someone: watch game video, look at game statistics, look at the player during workouts, look at iq tests, personal intrviews, and more. Similarly, the best scouring teams in Atlanta will combine several different measurements and inputs to make their lists. I imagine they will go around talking to teams and getting an impression of their strategy, gameplanning, and experience. I bet they will have people recording matches and looking at what each team does, driver skill, performance, etc. I would guess they also watch some teams' recorded matches, especially from eliminations, to see how those teams fair when it's make-it or break-it time. A combination of these different tools is what will probably lead the eventual winning alliance captain to compile its alliance.
Off subject a little--Is there a csv with all the teams and their addresses that I can get my hands on. I would love for my Geospatial Tech class to use the opr data and do some geocoding to look at trends.
Tom Bottiglieri
07-04-2008, 09:10
Can someone post CT?
Here is every single regional. The ordering isn't sorted. The files are just txt files with funny names, just rename the .out extension.
Off subject a little--Is there a csv with all the teams and their addresses that I can get my hands on. I would love for my Geospatial Tech class to use the opr data and do some geocoding to look at trends.
You can get their cities pretty easily off of usfirst.org, but I don't know about addresses.
From the "throw a monkey wrench and see what happens dept.":
Has anyone looked to see how much effect surrogate matches have on these rankings? If the number of matches per team determines the matrix size, is the calculation looking to see how many matches a given team actually played? For example, in Philly all teams played 11 matches, but 304 and 381 each played 12: 11 plus one extra surrogate match.
For those not familiar, surrogates are called for to "fill out" the schedule when the number of teams x the number of matches / 6 is not a whole number. Without surrogates there would be some matches with un-filled robot positions. Surrogate match results are not counted in FIRST's ranking scores, and are identified by a "1" next to the team # in the qualifying schedule. This year it is always the third match for a surrogate team.
Travis Hoffman
07-04-2008, 13:24
I think relying on any one tool too much to make a decision is a bad idea. Look, for example at what NFL teams do before they draft someone: watch game video, look at game statistics, look at the player during workouts, look at iq tests, personal intrviews, and more. Similarly, the best scouring teams in Atlanta will combine several different measurements and inputs to make their lists. I imagine they will go around talking to teams and getting an impression of their strategy, gameplanning, and experience. I bet they will have people recording matches and looking at what each team does, driver skill, performance, etc. I would guess they also watch some teams' recorded matches, especially from eliminations, to see how those teams fair when it's make-it or break-it time. A combination of these different tools is what will probably lead the eventual winning alliance captain to compile its alliance.
Another thing OPR can't predict is the effect installing any robot upgrades will have on a team's performance at the Championship. Only effective scouting can identify such teams who make any significant changes to their bots in Atlanta which improve their overall scoring output.
XaulZan11
07-04-2008, 13:43
To build on what others have said about the shortcommings of the OPR, watching the actual matches is a ton better than just looking at the OPR. The OPR attempts to predict how well a team scores per match, and is just decent at it. Relying on only the OPR is like a weatherman predicting the weather simply looking at on the month's average weather, instead of actually looking at the weather patterns, air pressure and all the other stuff weather people look at when making the forcast. By looking at the averages I'll know tommorrow it will be fairly warm, but won't tell me if I should bring a jacket, umbrella or sunglasses. OPR is nice because it gives a rough or general idea about a team very quickly and easily, but to get a good idea about a team, you need to actually watch thier matches.
I would use it only in prescouting where there is no matchs online of the team. In this situation it is better than no information at all.
EDIT: One of the shortcommings is that the OPR attempts to predict something that can be found--the team's contribution to thier alliance--by watching the team's matches. It is nice that is very easy to find, but its not like it is predicting something that we cannot find.
Joe Ross
07-04-2008, 14:26
Like 171/2194, 1732 recorded the amount of points a team scored per match at Wisconsin. We kept track of lines and balls knocked down in hybrid, laps, hurdlers, herds and balls placed at the end.
I ran a correlation test to see how related the two sets of data are and see how good the OPR is at predicting how many points a team scores per match. There are some assumptions/problems. First, our scouting data isn't perfect so there is some error from that. Secondly, our scouting data doesn't include penalties, but the ORP does account for them. So, when doing a linear regression, I got an R value of .7841 and an R-squared value of .6149. (A perfect relationship would have an R value of -1 or 1 and no relationship would be 0). So, while it is not pefect (not surprising) the ORP is a fairly good predictor of a team's preformance.
I did the same with 330's scouting data for San Diego and LA. We do account for penalties.
For SD, the R value was .8852 and R-squared of .7836
For LA, the R value was .8490 and R-squared of .7200
When I removed penalties from the equation, the SD R value fell to .8620 and the LA R value fell to .8345
Greg Marra
07-04-2008, 15:32
Off subject a little--Is there a csv with all the teams and their addresses that I can get my hands on. I would love for my Geospatial Tech class to use the opr data and do some geocoding to look at trends.
http://www.thebluealliance.net/cdvideo/2008_04_07_teams.csv
Full DB dump of the interesting bits. Enjoy!
To build on what others have said about the shortcommings of the OPR, watching the actual matches is a ton better than just looking at the OPR. The OPR attempts to predict how well a team scores per match, and is just decent at it. Relying on only the OPR is like a weatherman predicting the weather simply looking at on the month's average weather, instead of actually looking at the weather patterns, air pressure and all the other stuff weather people look at when making the forcast. By looking at the averages I'll know tommorrow it will be fairly warm, but won't tell me if I should bring a jacket, umbrella or sunglasses. OPR is nice because it gives a rough or general idea about a team very quickly and easily, but to get a good idea about a team, you need to actually watch thier matches.
I would use it only in prescouting where there is no matchs online of the team. In this situation it is better than no information at all.
EDIT: One of the shortcommings is that the OPR attempts to predict something that can be found--the team's contribution to thier alliance--by watching the team's matches. It is nice that is very easy to find, but its not like it is predicting something that we cannot find.
Teams may interpret "scoring" differently in their scouting systems. If Team A cannot hurdle, but can place the ball on the overpass and Team B cannot place the ball, but can knock it down, together they can hurdle. Individually, their contributions, however, would not indicate that possibility and would reflect only points scored by receiving a bonus at the end of the match or by knocking balls down in hybrid mode.
fuzzy1718
07-04-2008, 15:46
A little off topic, but how did our team drop points, when we havn't played a regional? From 37.472 to 32.54432471???:ahh: :confused: Our last regional was GLR ??????
Alan Anderson
07-04-2008, 16:00
A little off topic, but how did our team drop points, when we havn't played a regional?
Do you understand the math behind the rankings? Your apparent drop can be explained easily if some of the teams you played with scored more points in later regionals. The algorithm doesn't account for different strengths at different times for the same team. It would tend to overcount an improving team's contribution to earlier matches, and thus undercount its partners' contribution.
MasterChief 573
07-04-2008, 19:01
A little off topic, but how did our team drop points, when we havn't played a regional? From 37.472 to 32.54432471???:ahh: :confused: Our last regional was GLR ??????
Same thing happened to us too, that happens if you performed better at a previous regional as opposed to your last one.
Someone (don't know if he wants to be revealed) via PM requested the algorithm I've been using, which meant I had to clean my code, which means I'm not as embarrassed to post it.
So here it is:
// opr.cpp : Defines the entry point for the console application.
//
#include "stdafx.h" // if you're not using visual studio, you'll probably have to toast this line
#include <fstream>
#include <iostream>
#include <vector>
#include <set>
#include <map>
#include "jama/jama_lu.h"
using namespace std;
struct Match
{
Match()
{
memset(this,0,sizeof(Match));
}
int blue[3];
int red[3];
int blueScore;
int redScore;
};
// reads all the match data from files copy/pasted from usfirst.org into a list of Match structures
// note that week 1, 2008 files can't be read unmodified by this function
// what I've been doing is pre-processing them doing a find-replace on AM and PM and adding " X " so that they have the right number of tab-seperated values
void ReadTeamData(string strFile,vector<Match>& lstMatches,set<int>& setTeams)
{
ifstream inFile;
inFile.open(strFile.c_str());
if(inFile.fail())
{
cout<<"Error opening file"<<endl;
return;
}
//int iTheoryMatchNum = 0;
while(!inFile.eof())
{
char buf[512];
Match aNewMatch;
inFile>>buf; // "9:20"
inFile>>buf; // "AM/PM"
inFile>>buf; // match number
inFile>>buf; // red 1
aNewMatch.red[0] = atoi(buf);
inFile>>buf; // red 2
aNewMatch.red[1] = atoi(buf);
inFile>>buf; // red 3
aNewMatch.red[2] = atoi(buf);
inFile>>buf; // blue 1
aNewMatch.blue[0] = atoi(buf);
inFile>>buf; // blue 2
aNewMatch.blue[1] = atoi(buf);
inFile>>buf; // blue 3
aNewMatch.blue[2] = atoi(buf);
inFile>>buf;
aNewMatch.redScore = atoi(buf);
inFile>>buf;
aNewMatch.blueScore = atoi(buf);
if(aNewMatch.redScore < 0 || aNewMatch.redScore > 168 || aNewMatch.blueScore < 0 || aNewMatch.blueScore > 168)
{
cout<<"Warning. Score of "<<aNewMatch.redScore<<" or of "<<aNewMatch.blueScore<<" is unexpectedly large or small. The input file may be badly formatted"<<endl;
}
if(!setTeams.count(aNewMatch.red[0])) setTeams.insert(aNewMatch.red[0]);
if(!setTeams.count(aNewMatch.red[1])) setTeams.insert(aNewMatch.red[1]);
if(!setTeams.count(aNewMatch.red[2])) setTeams.insert(aNewMatch.red[2]);
if(!setTeams.count(aNewMatch.blue[0])) setTeams.insert(aNewMatch.blue[0]);
if(!setTeams.count(aNewMatch.blue[1])) setTeams.insert(aNewMatch.blue[1]);
if(!setTeams.count(aNewMatch.blue[2])) setTeams.insert(aNewMatch.blue[2]);
lstMatches.push_back(aNewMatch);
}
}
// generates a mapping from team #s to row#s and the reverse
void GenerateTeamToRow(const set<int> setTeams,map<int,int>& mapTeamToRow,map<int,int>& mapRowToTeam)
{
int iCounter = 0;
for(set<int>::const_iterator i = setTeams.begin();i != setTeams.end();i++)
{
mapTeamToRow[*i] = iCounter;
mapRowToTeam[iCounter] = *i;
iCounter++;
}
}
// increments the symmetric points in a matrix to indicate that a pair of teams played with each other
void IncMatrix(TNT::Array2D<double>& M,map<int,int> mapTeamToRow,int iTeam1,int iTeam2)
{
int iRow1 = mapTeamToRow[iTeam1];
int iRow2 = mapTeamToRow[iTeam2];
M[iRow1][iRow2]++;
if(iRow1 != iRow2)
{
M[iRow2][iRow1]++;
}
}
// increments each team's score for all members of an alliance
void IncScore(TNT::Array1D<double>& S,map<int,int> mapTeamToRow,int aTeams[3],int iScore)
{
for(int x = 0;x < 3;x++)
{
int iRow = mapTeamToRow[aTeams[x]];
S[iRow] += iScore;
}
}
// generates our M and S data. M is an NxN matrix where each cell(i,j) represents how many times team i played with team j
void GenerateBasicMatrix(const vector<Match>& lstMatches,const map<int,int> mapTeamToRow,TNT::Array2D<double>& M,TNT::Array1D<double>& S)
{
// assertion: M should be fully zeroed at this point
for(int x = 0;x < lstMatches.size();x++)
{
Match m = lstMatches[x];
IncMatrix(M,mapTeamToRow,m.red[0],m.red[0]);
IncMatrix(M,mapTeamToRow,m.red[1],m.red[1]);
IncMatrix(M,mapTeamToRow,m.red[2],m.red[2]);
IncMatrix(M,mapTeamToRow,m.red[0],m.red[1]);
IncMatrix(M,mapTeamToRow,m.red[0],m.red[2]);
IncMatrix(M,mapTeamToRow,m.red[1],m.red[2]);
IncMatrix(M,mapTeamToRow,m.blue[0],m.blue[0]);
IncMatrix(M,mapTeamToRow,m.blue[1],m.blue[1]); // teams play with themselves too!
IncMatrix(M,mapTeamToRow,m.blue[2],m.blue[2]);
IncMatrix(M,mapTeamToRow,m.blue[0],m.blue[1]);
IncMatrix(M,mapTeamToRow,m.blue[0],m.blue[2]);
IncMatrix(M,mapTeamToRow,m.blue[1],m.blue[2]);
IncScore(S,mapTeamToRow,m.red,m.redScore);
IncScore(S,mapTeamToRow,m.blue,m.blueScore);
}
}
// zeroes out M
void InitMatrix(TNT::Array2D<double>& M)
{
for(int x = 0;x < M.dim1();x++)
{
for(int y = 0;y < M.dim2();y++)
{
M[x][y] = 0;
}
}
}
// zeroes out S
void InitS(TNT::Array1D<double>& S)
{
for(int x = 0;x < S.dim1();x++)
{
S[x] = 0;
}
}
// loads all the teams going to championships
void LoadCMPTeams(string strFile,set<int>& lstTeams)
{
ifstream inF;
inF.open(strFile.c_str());
if(inF.fail())
{
cerr<<"Failure at opening "<<strFile<<endl;
}
while(!inF.eof())
{
int iTeam;
inF>>iTeam;
lstTeams.insert(iTeam);
}
}
// reads in the list of regional files that we need to process
void ReadFileList(string strInput,vector <string>& lstFiles)
{
ifstream inF;
inF.open(strInput.c_str());
while(!inF.eof())
{
string str;
inF>>str;
lstFiles.push_back(str);
}
}
// writes the power ratings to <strFile>.out
void WritePowerRatings(string strFile,map<int,int> mapRowToTeam,Array1D<double> PowerRatings)
{
ofstream outF;
string strOutFile = strFile + ".out";
outF.open(strOutFile.c_str());
for(int x = 0;x < PowerRatings.dim();x++)
{
int iTeam = mapRowToTeam[x];
outF<<iTeam<<"\t"<<PowerRatings[x]<<endl;
}
outF.close();
}
int main(int argc, char* argv[])
{
if(argc != 2)
{
cout<<"Wrong number of arguments for scripted running, defaulting to using reglist.txt"<<endl;
argv[1] = "reglist.txt";
}
vector <string> lstFiles; // all the regional text files to process
map<int,double> mapTeamToTopScore;
map<int,double> mapTeamToLastScore;
map<int,string> mapTeamToBestReg;
map<int,string> mapTeamToLastReg;
map<int,bool> mapTeamToBestSet;
map<int,int> mapTeamToRegCount;
set<int> setAllTeams; // all teams
set <int> lstChamps; // teams going to champs
ReadFileList(argv[1],lstFiles);
LoadCMPTeams("c:\\cmpTeams.txt",lstChamps); // list of teams going to championships. If this vector has more than zero entries, then we only print out data for teams going to champs
for(int x = 0;x < lstFiles.size();x++)
{
set<int> setTeams;
map<int,int> mapTeamToRow;
map<int,int> mapRowToTeam;
vector<Match > lstMatches;
string strFile;
strFile = lstFiles[x];
ReadTeamData(strFile,lstMatches,setTeams); // reads match data
GenerateTeamToRow(setTeams,mapTeamToRow,mapRowToTe am); // maps each team to a number between 0 and N-1
TNT::Array2D<double> M(setTeams.size(),setTeams.size()); // M
TNT::Array1D<double> S(setTeams.size()); // S
InitMatrix(M);
InitS(S);
GenerateBasicMatrix(lstMatches,mapTeamToRow,M,S); // makes M from the match list data
JAMA::LU<double> aMatrixSolver(M);
Array1D<double> PowerRatings = aMatrixSolver.solve(S); // solves MO = S. PowerRatings = solved O
WritePowerRatings(strFile,mapRowToTeam,PowerRating s); // writes the output for this regional to <strFile>.out
// records a team's last and best power ratings
for(int x = 0;x < PowerRatings.dim();x++)
{
if(lstChamps.size() == 0 || lstChamps.count(mapRowToTeam[x]))
{
double dPwr = PowerRatings[x];
int iTeam = mapRowToTeam[x];
if(setAllTeams.count(iTeam) == 0) // if this team hasn't made it into our list of all teams, add it
{
setAllTeams.insert(iTeam);
}
mapTeamToRegCount[iTeam]++;
if(dPwr > mapTeamToTopScore[iTeam] || mapTeamToBestSet[iTeam] == false)
{
mapTeamToTopScore[iTeam] = dPwr;
mapTeamToBestReg[iTeam] = strFile;
mapTeamToBestSet[iTeam] =true;
}
mapTeamToLastScore[iTeam] = dPwr;
mapTeamToLastReg[iTeam] = strFile;
}
}
} // end of file loop
// this prints out a team's last OPR and where it occurred. If a team's best OPR occurred elsewhere, it prints that out
cout<<"Team\tRegional Count\tLast OPR\tLast Regional\tBest OPR\tBest Regional"<<endl;
for(set<int>::iterator i = setAllTeams.begin();i != setAllTeams.end();i++)
{
int iTeam = *i;
cout<<iTeam<<"\t"<<mapTeamToRegCount[iTeam]<<"\t"<<mapTeamToLastScore[iTeam]<<"\t"<<mapTeamToLastReg[iTeam];
cout<<"\t"<<mapTeamToTopScore[iTeam]<<"\t"<<mapTeamToBestReg[iTeam];
cout<<endl;
}
return 0;
}
Required files:
-Reglist.txt - a list of regional data to be processed. One file per line. Note that it will output a file for each file in this list, and that will be the OPR for that regional
-cmpteams.txt - A list of teams that you're interested in (for example, a list of teams going to championships). One team per line.
-the JAMA math library (see attached file). This is from the NIST, it should be ok to redistribute. You can get the actual file here: http://math.nist.gov/tnt/download.html
------------
Licensing: None, do whatever you want with it. Feel free to give me credit or something though (but you don't have to, if it'd cramp your style).
Greg Marra
08-04-2008, 00:45
http://www.thebluealliance.net/cdvideo/2008_04_08_matches.csv
Match dump including New York City regional. Includes column with event name and event week. Provides column with competition level (to filter out elims, if you want) and match number (probably not useful). Filters out matches with incomplete information.
Guy Davidson
08-04-2008, 02:49
With Greg's new dump, I'm proud to present: my complete OPR rankings. These include every match in the TBA system, including eliminations, broken down as follows: one sheet overall, one sheet for each week, two combined sheets (combining the weekly and overall rankings): one normal, and one with repeats in the top 50 or so color labeled.
Note: the following includes teams' overall performances as well as their weekly ones. If you wish to disregard the overall ones, subtract one from all numbers :P
1114 have the top 3 and 4 out of the top 10 performances overall. 233 have 2 out of the top 10, as do 2056. 330, 987, and 2056 also all have 3 in the top 20, with 39 having 2. Other notable repeats include 217 (3 performances in the 21-42 range), 67 (same), 525 (same), 1124 (2 in 21-41), 40 (same), 1625 (2 in top 50), 103 (same, including the 13th best).
Here are the top 50 performances, be them weekly or overall:
1114 78.07555206 5
1114 71.72841092 4
1114 66.08610526 All
233 54.83482914 5
2056 54.18143261 All
40 52.36761871 5
39 52.02981858 5
233 51.19444477 All
2056 50.85653031 5
1114 49.80987076 1
330 49.67085518 4
987 49.49921146 2
103 49.17875705 5
330 48.61508348 All
987 48.54535978 5
987 48.4036174 All
2056 48.14940049 4
39 48.05951704 All
330 47.6733788 2
525 47.50920616 5
217 47.21258553 3
79 46.85564663 3
1731 46.67751354 4
217 46.39477357 5
525 45.53997317 All
254 45.22118025 5
2171 44.91825888 4
1024 44.74816411 4
67 44.18768501 All
175 43.88978378 3
1124 43.87787986 3
27 43.73318232 5
1625 42.9666571 5
1731 42.93375969 All
67 42.26870256 5
217 42.11651285 All
1124 41.9143175 All
1717 41.6884957 4
67 41.29809056 2
25 41.18181687 5
40 40.80843761 All
525 40.68607417 1
1625 40.49393267 3
494 40.49077186 5
103 40.01593827 All
93 39.93271964 5
968 39.86958078 2
233 39.20154265 3
175 39.16106424 All
469 39.06852953 3
Attached in a zip file is my complete excel spreadsheet.
Enjoy :)
rsilverstein
08-04-2008, 07:03
Great data... you can definitely see an improvement among teams over the weeks.
Travis Hoffman
08-04-2008, 14:12
Here's a theoretical and completely meaningless divisional breakdown for Championships based solely on Bongle's final OPR's and the current 339-team list (sort all teams by OPR, then go (A, C, G, N), (A, C, G, N), etc.
Even if FIRST went with this off the wall sorting system, the addition of the final few teams would skew the arrangement.
330 Newton
67 Newton
103 Newton
469 Newton
1024 Newton
368 Newton
1625 Newton
93 Newton
16 Newton
1629 Newton
71 Newton
1156 Newton
45 Newton
703 Newton
1592 Newton
237 Newton
501 Newton
816 Newton
100 Newton
176 Newton
222 Newton
384 Newton
1350 Newton
364 Newton
2165 Newton
316 Newton
1 Newton
1528 Newton
1598 Newton
488 Newton
1756 Newton
2455 Newton
461 Newton
1983 Newton
116 Newton
57 Newton
503 Newton
177 Newton
107 Newton
418 Newton
312 Newton
401 Newton
2483 Newton
801 Newton
2520 Newton
1939 Newton
476 Newton
1023 Newton
499 Newton
1646 Newton
2340 Newton
120 Newton
1143 Newton
1296 Newton
701 Newton
2352 Newton
1594 Newton
302 Newton
2454 Newton
2557 Newton
2591 Newton
207 Newton
1212 Newton
1732 Newton
2237 Newton
2023 Newton
2038 Newton
2556 Newton
2410 Newton
2424 Newton
2575 Newton
1071 Newton
2354 Newton
433 Newton
228 Newton
900 Newton
599 Newton
1599 Newton
1266 Newton
752 Newton
296 Newton
677 Newton
1595 Newton
1795 Newton
233 Galileo
525 Galileo
40 Galileo
20 Galileo
1717 Galileo
968 Galileo
365 Galileo
47 Galileo
1806 Galileo
195 Galileo
27 Galileo
1065 Galileo
1574 Galileo
111 Galileo
357 Galileo
70 Galileo
2337 Galileo
179 Galileo
234 Galileo
2046 Galileo
692 Galileo
358 Galileo
1989 Galileo
2024 Galileo
2604 Galileo
292 Galileo
435 Galileo
2468 Galileo
201 Galileo
932 Galileo
1261 Galileo
1429 Galileo
1388 Galileo
236 Galileo
231 Galileo
1474 Galileo
2624 Galileo
612 Galileo
192 Galileo
2122 Galileo
180 Galileo
2638 Galileo
1902 Galileo
1503 Galileo
1094 Galileo
2518 Galileo
2335 Galileo
2668 Galileo
2344 Galileo
329 Galileo
2377 Galileo
1138 Galileo
2474 Galileo
597 Galileo
1165 Galileo
1014 Galileo
115 Galileo
1013 Galileo
1566 Galileo
1533 Galileo
1366 Galileo
548 Galileo
1323 Galileo
547 Galileo
527 Galileo
462 Galileo
122 Galileo
1868 Galileo
340 Galileo
2053 Galileo
75 Galileo
1254 Galileo
269 Galileo
457 Galileo
1033 Galileo
1398 Galileo
2543 Galileo
1739 Galileo
1577 Galileo
1522 Galileo
922 Galileo
86 Galileo
2621 Galileo
422 Galileo
509 Galileo
2056 Curie
39 Curie
1124 Curie
191 Curie
141 Curie
1126 Curie
2171 Curie
254 Curie
1477 Curie
343 Curie
41 Curie
148 Curie
121 Curie
1662 Curie
768 Curie
1540 Curie
2016 Curie
2062 Curie
341 Curie
2549 Curie
2590 Curie
555 Curie
88 Curie
386 Curie
716 Curie
375 Curie
573 Curie
288 Curie
1319 Curie
1802 Curie
2472 Curie
66 Curie
949 Curie
48 Curie
68 Curie
84 Curie
155 Curie
108 Curie
2081 Curie
65 Curie
271 Curie
1504 Curie
2609 Curie
2550 Curie
812 Curie
686 Curie
1357 Curie
425 Curie
294 Curie
1318 Curie
1699 Curie
2342 Curie
1860 Curie
1245 Curie
1305 Curie
2415 Curie
1108 Curie
1386 Curie
135 Curie
128 Curie
2564 Curie
1747 Curie
8 Curie
2614 Curie
2599 Curie
1538 Curie
587 Curie
1758 Curie
1311 Curie
1834 Curie
159 Curie
1102 Curie
2115 Curie
1941 Curie
1547 Curie
2338 Curie
226 Curie
858 Curie
4 Curie
1523 Curie
303 Curie
2429 Curie
5 Curie
203 Curie
468 Curie
1114 Archimedes
987 Archimedes
217 Archimedes
175 Archimedes
79 Archimedes
1086 Archimedes
494 Archimedes
25 Archimedes
1251 Archimedes
33 Archimedes
1418 Archimedes
171 Archimedes
126 Archimedes
1218 Archimedes
326 Archimedes
118 Archimedes
337 Archimedes
395 Archimedes
1511 Archimedes
2487 Archimedes
359 Archimedes
291 Archimedes
397 Archimedes
694 Archimedes
1736 Archimedes
1649 Archimedes
1279 Archimedes
1746 Archimedes
1987 Archimedes
1690 Archimedes
894 Archimedes
1089 Archimedes
138 Archimedes
223 Archimedes
2214 Archimedes
842 Archimedes
1816 Archimedes
1025 Archimedes
60 Archimedes
11 Archimedes
830 Archimedes
1450 Archimedes
134 Archimedes
2449 Archimedes
102 Archimedes
85 Archimedes
980 Archimedes
2630 Archimedes
832 Archimedes
486 Archimedes
2166 Archimedes
2048 Archimedes
2437 Archimedes
440 Archimedes
1714 Archimedes
173 Archimedes
1038 Archimedes
1676 Archimedes
190 Archimedes
903 Archimedes
1727 Archimedes
1379 Archimedes
614 Archimedes
1885 Archimedes
399 Archimedes
49 Archimedes
322 Archimedes
2423 Archimedes
610 Archimedes
2430 Archimedes
178 Archimedes
224 Archimedes
1502 Archimedes
839 Archimedes
1127 Archimedes
967 Archimedes
87 Archimedes
2629 Archimedes
151 Archimedes
714 Archimedes
241 Archimedes
604 Archimedes
2041 Archimedes
868 Archimedes
1576 Archimedes
Jacob Plicque
08-04-2008, 16:47
Well, the head ref records penatlies for each robot during the match on a sheet, but you never see it unless you go to the "Contest the score" box.
My data comes from Lines Crossed in Hybrid, Balls Removed in Hybrid, Laps, Herds, Hurdles, and Balls Placed at the End.
Is the "contest the score box" online data?
By anticipated popular demand, OPRs by division.
Column order is
Team#, # of regionals, last OPR, last regional, best OPR, best regional
Stats that I found interesting:
Total OPR:
Galileo: 1707
Archimedes: 1622
Curie: 1521
Newton: 1514
OPR of top 24:
Galileo: 892 (figures, with 1114 in there)
Newton: 851
Curie: 806
Archimedes: 798
% of total OPR that the top 24 take up (a measure of depth, I suppose)
Archimedes: 49.2%
Galileo: 52.2%
Curie: 52.9%
Newton: 56.2%
Archimedes
987 2 49.3643 lv 53.1822 sd
1024 3 49.0029 buck 49.0029 buck
1124 1 47.9453 ct 47.9453 ct
525 2 46.4897 mn 46.4897 mn
27 2 41.5673 glr 41.5673 glr
93 2 40.3215 mn 40.3215 mn
365 2 37.1666 phil 37.1666 phil
1218 1 35.6348 ches 35.6348 ches
357 2 34.7581 phil 34.7581 phil
71 2 34.647 wm 34.647 wm
337 2 33.5239 hi 33.5239 hi
41 2 31.2988 ny 31.2988 ny
1065 1 30.4807 fl 30.4807 fl
201 2 29.9324 glr 29.9324 glr
2024 2 27.7007 hi 27.7007 hi
1 2 27.6828 det 27.6828 det
1598 1 27.0323 vcu 27.0323 vcu
116 2 26.4095 ny 26.4095 ny
555 4 26.0896 ny 28.6788 bay
1261 2 25.5961 palm 25.5961 palm
1690 1 24.8488 is 24.8488 is
2166 2 24.0923 gtr 24.0923 gtr
2550 1 23.621 or 23.621 or
842 3 23.3982 lv 23.3982 lv
292 2 23.0619 boil 23.0619 boil
11 2 22.9507 ches 22.9507 ches
222 1 22.724 pitts 22.724 pitts
816 2 22.6902 phil 29.4389 nj
386 2 22.5882 palm 22.5882 palm
107 2 21.8664 glr 21.8664 glr
1987 1 21.4701 mn 21.4701 mn
1504 2 21.4204 wm 21.4204 wm
85 2 21.2389 wm 21.2389 wm
2081 2 20.6428 boil 20.6428 boil
1094 1 20.5252 stl 20.5252 stl
171 1 20.006 wi 20.006 wi
66 2 20.0018 glr 20.0018 glr
614 1 18.7356 ches 18.7356 ches
2048 2 18.6977 buck 18.6977 buck
1746 2 18.6837 palm 18.6837 palm
401 1 18.6136 vcu 18.6136 vcu
1528 1 18.5772 det 18.5772 det
2377 1 18.2489 ches 18.2489 ches
190 2 18.0702 svr 18.0702 svr
499 2 17.6879 bay 17.6879 bay
1727 2 17.5064 phil 17.5064 phil
2472 1 16.8751 mn 16.8751 mn
2335 1 16.7533 gkr 16.7533 gkr
1323 2 16.5556 davis 16.5556 davis
1305 2 15.8986 gtr 15.8986 gtr
177 1 15.4353 ct 15.4353 ct
1834 2 14.9705 hi 14.9705 hi
2668 1 14.4941 phil 14.4941 phil
2624 1 13.4544 gtr 13.4544 gtr
949 1 13.3528 seat 13.3528 seat
1547 2 12.9788 gtr 12.9788 gtr
236 1 12.5966 ct 12.5966 ct
2449 1 12.261 ar 12.261 ar
1143 1 11.9864 phil 11.9864 phil
476 2 11.8943 ok 12.9425 gkr
2518 1 11.743 mn 11.743 mn
1646 2 11.4519 glr 11.4519 glr
1474 1 10.7638 bos 10.7638 bos
2342 1 10.522 bae 10.522 bae
599 2 10.2908 la 10.2908 la
1902 2 10.2798 bay 21.5419 fl
135 2 10.1138 boil 14.1674 stl
2604 1 9.16108 wm 9.16108 wm
1379 2 9.08873 bay 11.5536 peach
2575 1 9.08777 br 9.08777 br
701 2 8.54408 davis 15.0851 sd
1398 2 8.26199 palm 8.26199 palm
122 1 7.81042 vcu 7.81042 vcu
49 2 7.79258 bay 9.5169 det
303 1 7.528 nj 7.528 nj
2424 1 6.33004 ok 6.33004 ok
228 1 6.02626 ct 6.02626 ct
151 1 4.74671 bae 4.74671 bae
269 1 4.51404 wi 4.51404 wi
752 1 3.66353 nj 3.66353 nj
322 1 3.07761 glr 3.07761 glr
433 1 3.01739 phil 3.01739 phil
1577 1 2.92397 is 2.92397 is
900 2 2.86289 palm 4.02724 vcu
1795 1 0.12213 peach 0.12213 peach
461 2 -0.978711 glr 14.5376 boil
Curie
1126 2 42.8778 buck 42.8778 buck
2171 2 42.5333 wm 42.5333 wm
67 2 40.5394 glr 43.2951 flr
368 2 39.5571 hi 39.5571 hi
33 3 38.5823 glr 38.5823 glr
395 2 38.4891 ny 38.4891 ny
16 2 38.313 bay 38.313 bay
100 2 37.5837 svr 37.5837 svr
2337 2 37.2119 wm 37.2119 wm
126 2 37.134 ct 37.134 ct
191 2 35.8837 buck 39.0776 flr
1511 2 35.0501 phil 35.0501 phil
1477 2 34.4194 bay 34.4194 bay
358 2 33.2138 spbli 33.2138 spbli
703 2 33.0321 gtr 33.0321 gtr
237 2 31.8253 phil 31.8253 phil
326 2 31.1764 glr 31.1764 glr
501 2 31.0184 lone 31.0184 lone
768 2 30.8543 ches 30.8543 ches
1592 2 30.3363 co 30.3363 co
2590 1 27.1592 nj 27.1592 nj
45 2 27.1463 boil 27.1463 boil
1418 1 26.2306 ches 26.2306 ches
435 1 24.7734 vcu 24.7734 vcu
1649 1 24.1985 fl 24.1985 fl
2344 2 21.8188 ny 21.8188 ny
1350 1 21.6921 bos 21.6921 bos
294 2 21.0882 la 21.0882 la
57 2 20.7083 lone 20.7083 lone
573 2 20.1932 glr 21.5527 pitts
231 1 19.3323 lone 19.3323 lone
223 1 18.6501 nj 18.6501 nj
108 2 18.3036 fl 18.3036 fl
2609 1 18.099 wat 18.099 wat
903 2 18.0734 wm 18.0734 wm
1732 2 17.8759 glr 17.8759 glr
1747 2 17.6147 glr 17.6147 glr
155 1 16.9729 bos 16.9729 bos
486 2 16.6277 phil 16.6277 phil
1386 1 16.4528 buck 16.4528 buck
173 2 15.9452 bos 15.9452 bos
118 2 15.3893 bay 31.3232 lone
2520 1 15.2241 lv 15.2241 lv
138 1 15.0914 bae 15.0914 bae
1989 1 15.0827 ny 15.0827 ny
75 2 14.9254 ches 14.9254 ches
178 1 14.5708 ct 14.5708 ct
1802 1 13.9393 gkr 13.9393 gkr
418 1 13.6205 lone 13.6205 lone
1025 1 13.46 det 13.46 det
271 2 13.4145 ny 13.4145 ny
2474 1 13.1963 boil 13.1963 boil
1013 2 13.1038 lv 13.1038 lv
1699 1 12.7678 bos 12.7678 bos
2053 1 12.629 flr 12.629 flr
1860 1 12.5214 br 12.5214 br
340 1 12.2471 flr 12.2471 flr
1939 1 12.1341 gkr 12.1341 gkr
1566 1 12.0738 sd 12.0738 sd
967 1 11.7833 stl 11.7833 stl
1245 1 11.1402 co 11.1402 co
527 1 10.6705 spbli 10.6705 spbli
2410 2 10.5735 gkr 10.5735 gkr
2556 1 10.5214 bay 10.5214 bay
462 1 10.4146 bay 10.4146 bay
304 1 10.1755 phil 10.1755 phil
1311 1 10.0732 peach 10.0732 peach
1533 1 9.89596 peach 9.89596 peach
2038 1 9.09497 peach 9.09497 peach
86 1 8.56691 fl 8.56691 fl
1102 2 8.01401 palm 8.01401 palm
830 2 7.30086 glr 14.877 stl
2115 1 6.9709 mw 6.9709 mw
1156 1 6.54232 br 6.54232 br
858 1 6.19068 wm 6.19068 wm
1071 1 5.97234 ct 5.97234 ct
1266 2 5.88688 lv 5.88688 lv
2629 1 5.77631 svr 5.77631 svr
1599 1 3.42647 vcu 3.42647 vcu
2454 1 3.33634 hi 3.33634 hi
4 2 2.8721 lv 2.8721 lv
604 1 1.99006 svr 1.99006 svr
2429 1 0.38431 la 0.38431 la
203 1 -1.3286 ches -1.3286 ches
677 1 -5.87753 bos -5.87753 bos
Galileo
1114 3 85.1523 gtr 85.1523 gtr
103 3 55.0129 phil 55.0129 phil
217 3 50.7032 glr 50.7032 glr
40 2 49.7452 bos 49.7452 bos
330 2 46.3083 la 51.5438 sd
254 2 44.5277 hi 44.5277 hi
494 3 42.5188 glr 42.5188 glr
25 2 42.1758 hi 42.1758 hi
1717 2 38.8717 la 38.8717 la
121 1 36.7586 bae 36.7586 bae
1629 2 35.6228 buck 35.6228 buck
234 2 34.9821 wm 34.9821 wm
469 2 34.469 glr 36.1295 det
343 2 29.7443 palm 29.7443 palm
65 2 29.6645 glr 29.6645 glr
176 2 28.9639 gtr 28.9639 gtr
195 1 28.8298 ct 28.8298 ct
1540 2 28.4674 lv 28.9083 or
88 2 28.0692 bos 28.0692 bos
291 2 24.9495 glr 24.9495 glr
1450 1 24.3531 flr 24.3531 flr
2468 1 24.1073 lone 24.1073 lone
70 3 24.0254 glr 27.176 stl
2062 2 24.019 wi 24.019 wi
716 1 23.9309 ct 23.9309 ct
1503 2 23.5493 gtr 23.5493 gtr
1816 2 22.8742 mn 22.8742 mn
932 2 22.6811 ok 22.6811 ok
48 3 22.5494 buck 22.5494 buck
384 1 22.352 vcu 22.352 vcu
694 2 22.2311 ny 22.2311 ny
148 2 22.1501 bay 32.2765 stl
1089 2 22.0812 ct 22.0812 ct
316 2 20.0927 phil 20.0927 phil
548 2 20.0728 glr 20.0728 glr
2165 1 20.0665 ok 20.0665 ok
1676 2 19.7986 gtr 19.7986 gtr
364 1 19.3686 bay 19.3686 bay
84 2 19.2057 phil 19.2057 phil
1366 1 19.0103 nj 19.0103 nj
134 2 18.5866 ches 18.5866 ches
1023 1 18.233 glr 18.233 glr
2487 1 17.9854 spbli 17.9854 spbli
180 1 17.4385 fl 17.4385 fl
812 1 17.435 sd 17.435 sd
2237 2 16.7312 palm 16.7312 palm
2638 1 16.7157 spbli 16.7157 spbli
425 1 16.4547 fl 16.4547 fl
2340 1 16.3891 flr 16.3891 flr
894 1 16.1329 glr 16.1329 glr
1319 2 16.0827 palm 16.0827 palm
2046 2 15.6193 seat 29.4435 or
2549 1 15.4527 wi 15.4527 wi
2564 1 14.6666 fl 14.6666 fl
980 2 14.3034 la 14.3034 la
612 2 13.5524 buck 15.1939 vcu
1038 1 13.3602 mw 13.3602 mw
1983 2 13.2864 seat 20.1201 or
8 3 13.101 lv 13.101 lv
302 2 12.9585 wm 12.9585 wm
457 1 12.2723 fl 12.2723 fl
1739 2 11.8769 wi 11.8769 wi
1758 2 11.297 palm 11.297 palm
597 2 11.2872 hi 14.4516 sd
2599 1 11.2497 sd 11.2497 sd
2023 1 11.1125 fl 11.1125 fl
2437 2 9.80826 hi 13.5781 wi
399 2 9.67775 la 11.861 sd
1296 1 9.23699 co 9.23699 co
1212 1 9.22365 ar 9.22365 ar
1138 2 8.48742 hi 12.1488 sd
2423 1 8.05239 bos 8.05239 bos
1390 1 7.99435 fl 7.99435 fl
226 2 7.03603 glr 7.03603 glr
1885 2 6.41505 phil 10.7223 vcu
168 1 5.60546 fl 5.60546 fl
2354 1 4.46069 ok 4.46069 ok
1254 1 4.39064 wm 4.39064 wm
115 2 4.20432 davis 10.905 svr
839 2 2.64941 bos 7.2402 ct
1523 1 1.93133 fl 1.93133 fl
2621 1 0.116815 ct 0.116815 ct
1576 1 -0.647048 is -0.647048 is
509 1 -3.26759 bae -3.26759 bae
1595 1 -5.93147 or -5.93147 or
Newton
2056 2 59.334 gtr 59.334 gtr
233 2 55.609 hi 55.609 hi
39 2 52.6717 lv 52.6717 lv
175 2 47.1574 ct 47.1574 ct
1625 3 44.1421 co 49.8168 wi
141 2 42.6529 wm 42.6529 wm
359 3 39.5435 hi 39.5435 hi
1086 1 37.2707 vcu 37.2707 vcu
47 2 36.6663 glr 36.6663 glr
1806 2 35.2555 ok 35.2555 ok
968 2 34.9029 hi 35.1886 sd
20 2 34.6227 bos 40.235 flr
1574 1 34.6153 is 34.6153 is
1251 2 34.1576 palm 36.9569 fl
192 2 31.8033 svr 31.8033 svr
288 2 30.668 wm 30.668 wm
111 2 29.3402 boil 29.3402 boil
692 2 25.7874 davis 25.7874 davis
1736 1 25.5406 wi 25.5406 wi
1279 2 24.6228 bay 24.6228 bay
179 1 24.5431 fl 24.5431 fl
1594 2 23.9915 ny 23.9915 ny
397 2 23.5141 wm 25.7875 det
79 2 23.3832 bay 47.2358 fl
68 3 23.0027 glr 23.0027 glr
1662 1 22.8678 davis 22.8678 davis
1388 2 22.7622 davis 22.7622 davis
488 2 21.8286 seat 21.8286 seat
2122 2 21.7512 davis 21.7512 davis
1318 2 21.288 seat 21.288 seat
801 1 20.9428 fl 20.9428 fl
341 2 20.7585 phil 22.0585 ches
312 1 19.624 fl 19.624 fl
1429 2 18.971 lone 18.971 lone
375 3 18.6259 ny 24.7563 pitts
2214 1 18.4471 is 18.4471 is
1756 1 17.8439 mn 17.8439 mn
102 2 17.3692 spbli 17.3692 spbli
2483 2 16.524 palm 16.524 palm
503 2 16.2864 glr 17.8147 mw
2016 2 16.0195 ches 27.2495 nj
1165 1 14.3534 ar 14.3534 ar
2630 1 13.9012 is 13.9012 is
329 2 13.4912 spbli 13.4912 spbli
2430 1 12.8461 palm 12.8461 palm
2352 1 12.4272 ok 12.4272 ok
1868 1 12.3273 svr 12.3273 svr
587 1 12.3214 vcu 12.3214 vcu
1108 2 11.8804 lone 15.665 gkr
2338 1 11.471 mw 11.471 mw
440 2 11.3609 bay 11.3609 bay
832 2 11.3028 bay 16.531 peach
1714 2 11.249 buck 11.249 buck
2591 1 10.9547 glr 10.9547 glr
207 2 10.853 la 13.9768 ar
224 2 10.8517 ches 10.8517 ches
87 1 10.7999 nj 10.7999 nj
2455 1 10.7198 hi 10.7198 hi
128 1 10.4523 pitts 10.4523 pitts
1357 1 10.2145 co 10.2145 co
60 2 10.1602 lv 22.0938 ar
1014 1 10.022 buck 10.022 buck
2415 1 9.7428 peach 9.7428 peach
159 1 9.40661 co 9.40661 co
610 2 9.13372 gtr 11.0441 sd
2614 1 8.05032 pitts 8.05032 pitts
2543 2 7.97485 co 7.97485 co
868 2 7.82689 boil 7.82689 boil
1127 1 7.30454 peach 7.30454 peach
1033 1 7.02428 vcu 7.02428 vcu
1538 2 6.88265 la 9.84046 sd
547 1 6.79991 peach 6.79991 peach
2041 1 5.87738 mw 5.87738 mw
1522 1 5.56067 vcu 5.56067 vcu
5 1 3.63177 det 3.63177 det
1941 2 2.84981 glr 8.57622 wm
2557 1 0.903917 seat 0.903917 seat
120 2 0.741635 buck 17.8092 pitts
714 1 0.34217 nj 0.34217 nj
1502 2 -0.382598 buck 16.9048 stl
422 1 -0.500982 vcu -0.500982 vcu
241 1 -0.749577 bae -0.749577 bae
922 1 -1.32254 lone -1.32254 lone
296 1 -5.98088 gtr -5.98088 gtr
468 1 -7.71247 mw -7.71247 mw
MasterChief 573
09-04-2008, 15:46
Can we get an OPR for divisions based on overall performance instead of individual regionals?
cziggy343
09-04-2008, 15:51
does the makes us the 14th highest scoring robot in Galileo (based on our last regional)?
does the makes us the 14th highest scoring robot in Galileo (based on our last regional)?
It means that you have the 14th highest OPR :). That is all it means. OPR correlates strongly with scoring ability, but it also correlates with other things such as teamwork (teams that get in the way of their alliance partners would have lower OPRs) and rule-abiding (see those negative numbers? those teams tended to take penalties). Someone who has scouting data on every single team in FIRST might be able to tell you if you're literally the 14th-highest scoring robot in Galileo. However, since I don't think anyone actually has that much data, this is a nice stand-in. It is certainly something to be proud of.
Can we get an OPR for divisions based on overall performance instead of individual regionals?
Overall OPR: Accuracy is directly proportional to a team's consistency over the course of their regionals.
DIVISION Archimedes
987 51.019
525 41.6417
1124 40.8123
1024 39.5312
1218 34.8327
365 31.3377
1065 29.7045
93 29.6847
357 27.7146
41 27.6033
71 27.5385
337 27.4501
27 26.3468
2024 25.8596
1598 25.4333
1690 24.8488
201 24.5064
816 23.9692
2575 23.7964
1261 23.1945
222 23.1573
2550 23.0673
171 21.9414
555 21.2763
66 20.4658
1 20.2903
1746 19.9551
107 19.5672
1987 19.2164
292 19.0851
2377 18.916
386 18.0085
1094 17.371
2624 17.2509
401 16.9756
842 16.9502
116 16.9407
2472 16.7278
2081 16.613
2668 15.8868
1528 15.7027
2335 15.5526
177 15.5282
1504 15.51
85 15.0574
614 15.0475
1902 14.6906
949 13.9314
11 13.7692
2048 13.7644
236 13.5819
1143 13.3837
1305 13.0689
1727 12.8284
701 12.6087
2166 12.1423
499 12.0759
476 12.0487
1474 11.9805
2604 11.8988
1646 11.8752
1323 11.4047
2518 10.8855
2449 10.8716
135 10.7748
461 10.2657
1834 10.076
2342 10.0724
190 9.92706
1379 9.74611
122 9.31586
322 9.06697
49 8.83094
269 7.55734
228 7.43488
1547 6.6488
433 6.43184
2424 6.02979
900 5.22459
599 5.16972
1398 4.73357
303 3.99989
151 3.53961
1577 2.92397
752 -0.5685
1795 -1.06975
DIVISION Curie
67 43.4969
191 36.8639
368 35.6446
33 34.8674
1126 34.0836
126 31.7883
1156 30.7684
16 30.4445
2171 29.2048
1477 29.0948
100 28.9546
326 27.8608
1511 27.3043
768 27.016
1649 25.2292
435 25.2239
703 24.9523
2337 24.7343
118 24.5567
1592 24.3233
501 23.7284
45 23.6296
1350 23.041
358 22.9799
573 22.6403
237 22.4558
1418 22.3514
2590 21.7718
395 20.5786
231 20.5403
155 19.6723
1989 18.0971
2520 17.0888
223 16.0801
2609 15.9879
486 15.7825
418 15.6633
173 15.1487
57 14.9705
271 14.7283
2474 14.5278
1386 14.2628
1699 13.8221
1802 13.0795
830 13.028
108 12.9329
1245 12.8222
138 12.4111
1939 12.3322
1311 11.6342
2344 11.4982
1747 11.3411
1566 11.3223
903 11.2957
527 11.2424
1025 11.227
462 11.2191
2053 10.5242
2556 10.4971
304 10.4408
294 10.3778
340 9.8499
1732 9.80434
1533 9.59762
1013 8.82684
2410 8.58155
2115 7.70206
2038 7.54205
967 6.97196
178 6.81536
2454 6.72034
86 6.52571
1102 5.72384
858 5.61987
2629 4.37071
75 3.97127
1860 3.44524
1599 3.19584
1071 2.87368
4 2.78029
1266 2.25798
2429 1.69903
604 0.72305
677 -0.8247
203 -3.1758
DIVISION Galileo
1114 68.2768
330 48.6731
103 42.7726
217 39.6146
25 39.2088
40 36.7399
494 35.8872
121 35.6617
469 33.1259
1717 32.6803
254 32.2266
195 29.5645
343 28.5426
1629 28.4807
1540 28.3651
148 26.7634
70 26.6412
88 25.5715
2468 23.6247
234 23.3023
176 22.9377
384 22.7696
1450 22.0209
291 21.7519
65 21.6693
932 21.2843
364 20.9701
316 20.4409
2046 20.357
716 20.1283
2165 20.1283
2062 19.9514
894 19.905
180 19.7554
1503 19.556
1816 19.5513
2487 18.8446
1023 18.4076
1089 17.4138
1983 17.4012
84 17.3274
694 17.1061
48 16.8149
2638 15.5348
2549 15.4257
1319 15.177
2437 15.1399
812 14.7013
612 14.3585
425 13.7583
2340 13.2112
1366 12.7707
597 12.2728
134 12.1221
302 12.0411
548 11.4201
980 11.4169
2237 10.9598
2564 10.8055
1296 10.6061
8 10.5598
1038 10.2052
1676 10.0692
115 10.0361
1138 9.90502
2599 9.57715
399 9.24283
1885 9.05314
2423 8.50531
1254 8.20877
457 7.99797
2023 7.5684
1212 7.44153
1390 7.4258
1758 6.75003
839 6.32888
226 5.2471
2354 4.33936
1739 3.21296
168 0.70237
1523 0.25661
1576 -0.647
1595 -1.6056
2621 -2.1082
509 -5.2435
DIVISION Newton
2056 53.8927
233 50.9844
39 44.3005
175 39.5251
141 37.9473
1086 37.4814
20 36.9751
1251 36.8961
968 35.1509
1625 35.0787
79 34.8553
1574 34.6153
47 30.8913
111 28.7166
359 28.2419
1806 28.0158
341 25.2499
692 25.1171
179 24.1943
288 23.0485
1662 22.7656
1736 22.4684
397 22.3247
2016 21.736
192 21.6076
375 21.1323
1388 20.4556
488 19.2197
2214 18.4471
1279 18.3019
68 17.1798
2122 16.8979
60 16.8806
1756 16.8379
503 15.9745
1429 15.5409
801 15.3759
312 15.2619
2455 14.5993
2630 13.9012
832 13.7808
1594 13.4057
2483 13.3354
1108 13.2547
2430 12.9953
1318 12.8126
329 12.127
2352 11.7462
1014 11.6403
207 11.3265
1165 10.8877
587 10.834
102 10.4933
120 10.4564
2591 9.50392
159 9.46525
1538 9.44737
128 9.26673
610 9.26187
1357 9.24339
1868 9.1569
1714 8.83824
2614 8.69098
2415 8.63608
2338 8.5209
1127 8.42351
1502 8.25353
1033 7.87484
2041 7.37036
547 7.05956
440 6.74309
1941 6.64743
87 5.88571
2543 5.07453
224 4.18051
1522 3.30679
2557 3.26342
714 3.16513
5 1.21677
296 1.06856
922 0.27762
241 -1.0851
868 -1.3509
422 -3.2074
468 -10.173
Spider-Man
09-04-2008, 17:01
How about some statistics on the individual divisions like mean, median, standard deviation, and whatever else might be interesting. I'd like to throw some fuel on the best division debate by seeing how they stack up against each other in OPR.
A C G N
1622.8 1564.3 1707.0 1514.0 Sum
798.6 824.9 892.0 851.7 Sum Top 24
49.2 52.7 52.2 56.2 Top 24 % of total
19.1 18.4 20.0 17.8 Mean
18.2 15.2 17.9 13.9 Median
11.3 11.6 14.3 13.8 Stdev
nikeairmancurry
09-04-2008, 17:49
This might be immpossible but our team wants to know the rankings for the best hyrid teams in the country..
This might be immpossible but our team wants to know the rankings for the best hyrid teams in the country..
Not possible from these stats, you'd need to consult teams that do lots of scouting.
Jay Lundy
09-04-2008, 19:18
I noticed some people were requesting DPR scores. While the meaning of a DPR number isn't as straightforward as OPR, I think we may be able to improve the OPR calculation by taking it into account. If a team tends to play heavy defense, the teams they play against shouldn't have their OPR reduced when they play below average. Plus I love linear algebra so this gave me an excuse to use it.
<complex math warning>
So here's the equation:
( M -N ) ( p ) = ( s_t )
( N -M ) ( d ) = ( s_o )
Where (n = total # of teams):
M = n x n matrix with M(ij) = # of times i played with j. M(ii) = # of times i played. (same as M from before)
N = n x n matrix with N(ij) = # of times i played against j. N(ii) = 0.
p = n x 1 column vector of OPRs. p(i) = OPR for team i. (same as p from before)
d = n x 1 column vector of DPRs. d(i) = DPR for team i.
s_t = n x 1 column vector of total scores. s_t(i) = Sum of all of team i's match scores. (same as s from before)
s_o = n x 1 column vector of total opponent scores. s_o(i) = Sum of all of team i's opponents' match scores.
In other words, the first n equations add all the offense played by team i's allies, subtracts all the defense played by team i's opponents, and equates that with team i's total score. The second n equations sums all the offense played by team i's opponents, subtracts all the defense played by team i's allies, and equates it with team i's opponents' total score.
We can rewrite the equation as Ax = y where A = (M -N; N -M), x = (p; d), and y = (s_t; s_o).
In the data set I used, there are 2 isolated sets of teams that played no matches with teams outside their set: the Israeli and non-Israeli teams. We can separate these sets and write an equation for each one, and I think it's easier if we do:
A_1 * x_1 = y_1
A_2 * x_2 = y_2We can solve each equation completely independently, so I'm just going to focus on one equation and call it Ax = y. A has a null space of dimension 1 so it's not invertible. We can increase all the OPRs and DPRs by the same amount without having any effect on the scores, so the null space is the span of x = (1 1 1 ... 1). We can get a unique solution by adding one more equation. I (somewhat arbitrarily) chose the equation by saying: if there was no defense, scores would be 25% higher. In equation form that is:
M(11)*p(1) + M(22)*p(2) + ... + M(nn)*p(n) = 1.25 * (sum(s_t) / 3)or
( E 0 ) ( p ) = 1.25 * (sum(s_t) / 3)
( d )
E = ( M(11) M(22) ... M(nn) )
You can tack the last equation onto the end of A like so:
A = ( M -N )
( N -M )
( E 0 )
And just ask Matlab to solve Ax = y for you. Or replace a random row in A with ( E 0 ) so A becomes invertible and solve x = A_inv * y.
</complex math warning>
I ran this against the first csv Greg posted (http://www.thebluealliance.net/cdvideo/2008_03_30_matches.csv) and here are the results (top 50, ordered by OPR):
Team OPR DPR OPR + DPR
1114 71.6377 0.9474 72.5852
1124 53.2773 15.2694 68.5467
2056 51.7991 6.8767 58.6759
217 51.6703 13.4995 65.1698
233 51.5346 11.4470 62.9816
39 51.0832 4.8484 55.9316
330 50.1059 0.1292 50.2351
525 50.0129 1.2725 51.2855
175 47.6712 11.6710 59.3422
40 46.3240 10.1761 56.5001
1731 46.1172 -0.0044 46.1128
987 45.9656 7.0006 52.9662
103 45.0985 10.9291 56.0276
191 44.6783 12.1649 56.8432
79 44.1938 6.1087 50.3025
1024 43.9389 5.5522 49.4911
16 43.2490 6.0931 49.3421
67 43.2308 11.1761 54.4070
20 42.3096 6.3370 48.6466
469 41.9469 -5.4304 36.5165
494 41.2950 -1.9009 39.3941
1806 40.8038 5.2194 46.0232
365 40.6742 2.5704 43.2446
47 40.3067 -1.6335 38.6732
148 39.3002 9.0662 48.3663
1493 39.0307 -0.9984 38.0323
383 38.9932 5.5749 44.5681
1625 38.8912 5.1900 44.0813
1519 38.8147 6.3316 45.1463
1126 38.6616 0.8032 39.4648
141 38.6570 7.6568 46.3137
1718 38.4372 3.7425 42.1797
663 38.2419 14.4349 52.6767
126 37.8160 6.3778 44.1938
121 37.7131 12.7949 50.5080
195 37.7043 -1.5850 36.1192
1477 37.4595 10.8694 48.3289
368 37.1072 -2.7458 34.3614
25 37.0417 -3.1295 33.9121
1717 36.5859 6.3136 42.8995
71 36.1253 8.4642 44.5895
836 35.9330 6.4528 42.3859
93 35.5093 1.6895 37.1989
69 35.3987 2.3330 37.7317
61 35.3566 5.7965 41.1532
968 34.7835 4.2148 38.9984
2345 34.6020 1.6196 36.2216
1086 34.5104 10.6218 45.1321
58 34.4129 6.7595 41.1725
935 34.3941 7.7033 42.0974
Compare this with Guy's results (http://www.chiefdelphi.com/forums/showpost.php?p=730527&postcount=42) from the same dataset. The results are fairly similar, but there's definitely some movement in the rankings. Make of it what you will.
Personally, I don't think it tells you a whole lot to know a team's DPR. The two OPRs tell you slightly different things about a team. The old OPR tries to tell you how much a team actually scored each match. The new OPR tries to tell you how much a team could have scored each match if there was no defense. They are both potentially useful numbers.
Finally, knowing both OPR and DPR does allow you to better predict the score of a match. If you define error as:
error = actual_red_score - ( p(red1) + p(red2) + p(red3) - d(blue1) - d(blue2) - d(blue3) )then both methods are the least squares solution for their respective vector spaces, but method #2 has a lower MSE (mean square error) and ME (mean (abs) error) because it has a bigger vector space (less information loss).
Method #1 MSE = 245.0446, ME = 12.306
Method #2 MSE = 180.8867, ME = 10.514
So it's better at predicting past scores. Is it better at predicting future scores? I guess we'll see.
Guy Davidson
09-04-2008, 19:49
Jay, this is some very inpressive Linear Algebra. This is pretty awesome!
Two thoughts: Would it be possible for you, at some point, to post all DPR rankings from the overall data set? Also, maybe something more interesting for the results, could you try and solve for which correction factor (in the arbitrarily chosen equation) makes for the lowest ME? Maybe that can make it even more vaulble of a tool. I'll also shoot you a PM with another idea I have to make OPR (and probably DPR) even more meaningful.
I noticed some people were requesting DPR scores. While the meaning of a DPR number isn't as straightforward as OPR, I think we may be able to improve the OPR calculation by taking it into account. If a team tends to play heavy defense, the teams they play against shouldn't have their OPR reduced when they play below average. Plus I love linear algebra so this gave me an excuse to use it.
<complex math warning>
So here's the equation:
( M -N ) ( p ) = ( s_t )
( N -M ) ( d ) = ( s_o )
Where (n = total # of teams):
M = n x n matrix with M(ij) = # of times i played with j. M(ii) = # of times i played. (same as M from before)
N = n x n matrix with N(ij) = # of times i played against j. N(ii) = 0.
p = n x 1 column vector of OPRs. p(i) = OPR for team i. (same as p from before)
d = n x 1 column vector of DPRs. d(i) = DPR for team i.
s_t = n x 1 column vector of total scores. s_t(i) = Sum of all of team i's match scores. (same as s from before)
s_o = n x 1 column vector of total opponent scores. s_o(i) = Sum of all of team i's opponents' match scores.
In other words, the first n equations add all the offense played by team i's allies, subtracts all the defense played by team i's opponents, and equates that with team i's total score. The second n equations sums all the offense played by team i's opponents, subtracts all the defense played by team i's allies, and equates it with team i's opponents' total score.
We can rewrite the equation as Ax = y where A = (M -N; N -M), x = (p; d), and y = (s_t; s_o).
In the data set I used, there are 2 isolated sets of teams that played no matches with teams outside their set: the Israeli and non-Israeli teams. We can separate these sets and write an equation for each one, and I think it's easier if we do:
A_1 * x_1 = y_1
A_2 * x_2 = y_2We can solve each equation completely independently, so I'm just going to focus on one equation and call it Ax = y. A has a null space of dimension 1 so it's not invertible. We can increase all the OPRs and DPRs by the same amount without having any effect on the scores, so the null space is the span of x = (1 1 1 ... 1). We can get a unique solution by adding one more equation. I (somewhat arbitrarily) chose the equation by saying: if there was no defense, scores would be 25% higher. In equation form that is:
M(11)*p(1) + M(22)*p(2) + ... + M(nn)*p(n) = 1.25 * (sum(s_t) / 3)or
( E 0 ) ( p ) = 1.25 * (sum(s_t) / 3)
( d )
E = ( M(11) M(22) ... M(nn) )
You can tack the last equation onto the end of A like so:
A = ( M -N )
( N -M )
( E 0 )
And just ask Matlab to solve Ax = y for you. Or replace a random row in A with ( E 0 ) so A becomes invertible and solve x = A_inv * y.
</complex math warning>
I ran this against the first csv Greg posted (http://www.thebluealliance.net/cdvideo/2008_03_30_matches.csv) and here are the results (top 50, ordered by OPR):
Team OPR DPR OPR + DPR
1114 71.6377 0.9474 72.5852
1124 53.2773 15.2694 68.5467
2056 51.7991 6.8767 58.6759
217 51.6703 13.4995 65.1698
233 51.5346 11.4470 62.9816
39 51.0832 4.8484 55.9316
330 50.1059 0.1292 50.2351
525 50.0129 1.2725 51.2855
175 47.6712 11.6710 59.3422
40 46.3240 10.1761 56.5001
1731 46.1172 -0.0044 46.1128
987 45.9656 7.0006 52.9662
103 45.0985 10.9291 56.0276
191 44.6783 12.1649 56.8432
79 44.1938 6.1087 50.3025
1024 43.9389 5.5522 49.4911
16 43.2490 6.0931 49.3421
67 43.2308 11.1761 54.4070
20 42.3096 6.3370 48.6466
469 41.9469 -5.4304 36.5165
494 41.2950 -1.9009 39.3941
1806 40.8038 5.2194 46.0232
365 40.6742 2.5704 43.2446
47 40.3067 -1.6335 38.6732
148 39.3002 9.0662 48.3663
1493 39.0307 -0.9984 38.0323
383 38.9932 5.5749 44.5681
1625 38.8912 5.1900 44.0813
1519 38.8147 6.3316 45.1463
1126 38.6616 0.8032 39.4648
141 38.6570 7.6568 46.3137
1718 38.4372 3.7425 42.1797
663 38.2419 14.4349 52.6767
126 37.8160 6.3778 44.1938
121 37.7131 12.7949 50.5080
195 37.7043 -1.5850 36.1192
1477 37.4595 10.8694 48.3289
368 37.1072 -2.7458 34.3614
25 37.0417 -3.1295 33.9121
1717 36.5859 6.3136 42.8995
71 36.1253 8.4642 44.5895
836 35.9330 6.4528 42.3859
93 35.5093 1.6895 37.1989
69 35.3987 2.3330 37.7317
61 35.3566 5.7965 41.1532
968 34.7835 4.2148 38.9984
2345 34.6020 1.6196 36.2216
1086 34.5104 10.6218 45.1321
58 34.4129 6.7595 41.1725
935 34.3941 7.7033 42.0974
Compare this with Guy's results (http://www.chiefdelphi.com/forums/showpost.php?p=730527&postcount=42) from the same dataset. The results are fairly similar, but there's definitely some movement in the rankings. Make of it what you will.
Personally, I don't think it tells you a whole lot to know a team's DPR. The two OPRs tell you slightly different things about a team. The old OPR tries to tell you how much a team actually scored each match. The new OPR tries to tell you how much a team could have scored each match if there was no defense. They are both potentially useful numbers.
Finally, knowing both OPR and DPR does allow you to better predict the score of a match. If you define error as:
error = actual_red_score - ( p(red1) + p(red2) + p(red3) - d(blue1) - d(blue2) - d(blue3) )then both methods are the least squares solution for their respective vector spaces, but method #2 has a lower MSE (mean square error) and ME (mean (abs) error) because it has a bigger vector space (less information loss).
Method #1 MSE = 245.0446, ME = 12.306
Method #2 MSE = 180.8867, ME = 10.514
So it's better at predicting past scores. Is it better at predicting future scores? I guess we'll see.
I knew it was possible, finally somebody looked at it.
Thank You!
Karthik1
22-04-2008, 16:31
Now that its all over, would anyone like to post OPR based on just matches at nationals (separately for each division). I am interested in observing how teams did at an individual regional compared to nationals.
I would like to say -- I love numbers and data. I predicted the scores of all our qualification matches and ( other than the first match that had two of our robots quit ) the scores were within 10% most of the time -- very close !!! We also had the 15th highest OPR in Archimedes -- we ended up the 17th seed -- again very close. Based on the numbers, I said we would go 6-1 -- we were 5-2.
Team 1598
65_Xero_Huskie
22-04-2008, 20:56
I would like to say -- I love numbers and data. I predicted the scores of all our qualification matches and ( other than the first match that had two of our robots quit ) the scores were within 10% most of the time -- very close !!! We also had the 15th highest OPR in Archimedes -- we ended up the 17th seed -- again very close. Based on the numbers, I said we would go 6-1 -- we were 5-2.
Team 1598
I Dont think this has a good idea on what actually counts as reliable data.
We were 15th in Galileo in OPR, however, we dont have a hurdler. All of our points are in auto/laps/assists.
We thought we would go 5-2, but our matches didnt go as planned so we went 3-4.
I like the details of this and i really appreciate it, i have been looking for something this detailed. :)
Eugene Fang
27-04-2008, 23:25
does anyone have OPRs for the Championship Event? Thanks in advance!
Can we get the OPR rankings for the IRI. Abra ca iri dadbra......
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.