What's new
USCHO Fan Forum

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

  • The USCHO Fan Forum has migrated to a new plaform, xenForo. Most of the function of the forum should work in familiar ways. Please note that you can switch between light and dark modes by clicking on the gear icon in the upper right of the main menu bar. We are hoping that this new platform will prove to be faster and more reliable. Please feel free to explore its features.

Pairwise and Bracketology 2013 Edition

  • Thread starter Thread starter Priceless
  • Start date Start date
Status
Not open for further replies.
Re: Pairwise and Bracketology 2013 Edition

I still have to input the values (off to the internet!) and create a second function for the ecac third place game... but here we go

Code:
off.vctr=c(2.30,2.63,1.17,1.92,2.79,1.70,3.47,2.74,2.49,2.32,3.14,2.46,1.97,3.69,3.01,2.60,2.65,2.14,2.90,3.87,2.79,2.35,2.44,2.52,2.87,2.93,2.08,2.66,3.39,3.54,3.05,2.68,4.08,2.42,2.22,3.25,3.51,2.37,3.35,2.60,2.63,2.63,3.63,3.24,2.66,2.28,2.37,2.98,2.87,2.53,2.90,2.67,3.58,1.98,2.88,3.02,2.46,2.61,2.44,2.93)
def.vctr=c(2.92,2.64,4.29,3.71,2.64,4.07,2.68,2.59,2.34,2.49,2.81,3.93,2.48,2.91,2.80,3.09,2.32,2.89,2.42,2.20,2.34,2.98,3.38,2.82,2.82,2.49,2.56,3.20,3.37,2.01,2.13,1.60,1.77,2.39,2.60,2.67,2.06,3.38,2.18,2.85,2.85,2.74,2.75,2.16,2.40,2.90,3.68,2.24,1.54,3.09,2.21,3.78,2.16,5.82,2.88,2.30,2.79,1.81,1.85,2.76)
chodr.denom=2.74

win.prob.cts=matrix(0,59,59)

n.large=100
for(i in 1:59){
  for(j in 1:59){
win.p=0
loss.p=0
tie.p=0
for(goals in 0:n.large){

  if(goals>0){
    win.p=dpois(goals,off.vctr[i]*def.vctr[j]/chodr.denom)*
          ppois(goals-1,off.vctr[j]*def.vctr[i]/chodr.denom)+win.p
    
  }#end if
  tie.p=dpois(goals,off.vctr[i]*def.vctr[j]/chodr.denom)*
        dpois(goals,off.vctr[j]*def.vctr[i]/chodr.denom)+tie.p
}#end for goals
win.prob.cts[i,j]=win.p+(off.vctr[i]*def.vctr[j])/(off.vctr[i]*def.vctr[j]+off.vctr[j]*def.vctr[i])*tie.p

}#end for j
}#end for i






win.prob.ot=matrix(0,59,59)
tie.prob.ot=matrix(0,59,59)
n.large=100
for(i in 1:59){
  for(j in 1:59){
    win.p=0
    loss.p=0
    tie.p=0
    for(goals in 0:n.large){
      
      if(goals>0){
        win.p=dpois(goals,off.vctr[i]*def.vctr[j]/chodr.denom)*
          ppois(goals-1,off.vctr[j]*def.vctr[i]/chodr.denom)+win.p
        
      }#end if
      tie.p=dpois(goals,off.vctr[i]*def.vctr[j]/chodr.denom)*
        dpois(goals,off.vctr[j]*def.vctr[i]/chodr.denom)+tie.p
    }#end for goals
    
    win.ot.p=(off.vctr[i]*def.vctr[j])/(off.vctr[i]*def.vctr[j]+off.vctr[j]*def.vctr[i])*(1-exp(-(off.vctr[i]*def.vctr[j]+off.vctr[j]*def.vctr[i])/chodr.denom/12))
    tie.ot.p=exp(-(off.vctr[i]*def.vctr[j]+off.vctr[j]*def.vctr[i])/chodr.denom/12)

    
    
    win.prob.ot[i,j]=win.p+tie.p*win.ot.p
    tie.prob.ot[i,j]=tie.p*tie.ot.p
  }#end for j
}#end for i


I should note that this is inefficient... technically i can get away with saying that win.prob.cts[i,j]=1-win.prob.cts[j,i]

but I don't need this to be optimally fast, it'll only take a few seconds and I only need to do it once.

edit: and of course, its full of bugs... :-/

edit #2: here we go... I went by the alphabetical ordering of jtw's two letter codes (because that was the easiest way to encode)... and all those numbers are hand inputs using Robin Lock's figures.
 
Last edited:
Re: Pairwise and Bracketology 2013 Edition

Jim,
I hope you are still around. I have a question about the Thursday results. I had thought from my own digging that AK needs the Mankato compare to qualify, and that they would lose it if Mankato won on Thurs. You show still a chance for AK in the case of Mankato winning Thurs. Can you elaborate on those scenarios? I mean, the important parts of what has to fall right for them?

Thanks.
 
Re: Pairwise and Bracketology 2013 Edition

Awww.. You stat and computer guys are breaking my heart. I started out wanting to be a physicist and think about elementary particles. Then life changed and I ended up in one of the caring professions. Times like this I get envious....

"I can compute and entire table in a few lines....." Envy..


"I should get out my crystal ball and just tell you what will happen":D

I think I'm more on your side of the line in the sand. That is, if you put teaching HS in that 'caring' category (depends on the lunar cycle, for me). At any rate, I'm D-3 at best when it comes to stat programming.
 
Re: Pairwise and Bracketology 2013 Edition

I think I'm more on your side of the line in the sand. That is, if you put teaching HS in that 'caring' category (depends on the lunar cycle, for me). At any rate, I'm D-3 at best when it comes to stat programming.

I'm not even that. But, I would have really enjoyed it. And, I think I would have been really good. But, now I spend my time trying to help people with their emotions/thoughts/spirits, etc. A totally different field.

And, this time of year, listening to these guys, I think, "I almost wish I were there......"
 
Re: Pairwise and Bracketology 2013 Edition

I still have to input the values (off to the internet!) and create a second function for the ecac third place game... but here we go

Code:
off.vctr=c(2.30,2.63,1.17,1.92,2.79,1.70,3.47,2.74,2.49,2.32,3.14,2.46,1.97,3.69,3.01,2.60,2.65,2.14,2.90,3.87,2.79,2.35,2.44,2.52,2.87,2.93,2.08,2.66,3.39,3.54,3.05,2.68,4.08,2.42,2.22,3.25,3.51,2.37,3.35,2.60,2.63,2.63,3.63,3.24,2.66,2.28,2.37,2.98,2.87,2.53,2.90,2.67,3.58,1.98,2.88,3.02,2.46,2.61,2.44,2.93)
def.vctr=c(2.92,2.64,4.29,3.71,2.64,4.07,2.68,2.59,2.34,2.49,2.81,3.93,2.48,2.91,2.80,3.09,2.32,2.89,2.42,2.20,2.34,2.98,3.38,2.82,2.82,2.49,2.56,3.20,3.37,2.01,2.13,1.60,1.77,2.39,2.60,2.67,2.06,3.38,2.18,2.85,2.85,2.74,2.75,2.16,2.40,2.90,3.68,2.24,1.54,3.09,2.21,3.78,2.16,5.82,2.88,2.30,2.79,1.81,1.85,2.76)
chodr.denom=2.74

win.prob.cts=matrix(0,59,59)

n.large=100
for(i in 1:59){
  for(j in 1:59){
win.p=0
loss.p=0
tie.p=0
for(goals in 0:n.large){

  if(goals>0){
    win.p=dpois(goals,off.vctr[i]*def.vctr[j]/chodr.denom)*
          ppois(goals-1,off.vctr[j]*def.vctr[i]/chodr.denom)+win.p
    
  }#end if
  tie.p=dpois(goals,off.vctr[i]*def.vctr[j]/chodr.denom)*
        dpois(goals,off.vctr[j]*def.vctr[i]/chodr.denom)+tie.p
}#end for goals
win.prob.cts[i,j]=win.p+(off.vctr[i]*def.vctr[j])/(off.vctr[i]*def.vctr[j]+off.vctr[j]*def.vctr[i])*tie.p

}#end for j
}#end for i






win.prob.ot=matrix(0,59,59)
tie.prob.ot=matrix(0,59,59)
n.large=100
for(i in 1:59){
  for(j in 1:59){
    win.p=0
    loss.p=0
    tie.p=0
    for(goals in 0:n.large){
      
      if(goals>0){
        win.p=dpois(goals,off.vctr[i]*def.vctr[j]/chodr.denom)*
          ppois(goals-1,off.vctr[j]*def.vctr[i]/chodr.denom)+win.p
        
      }#end if
      tie.p=dpois(goals,off.vctr[i]*def.vctr[j]/chodr.denom)*
        dpois(goals,off.vctr[j]*def.vctr[i]/chodr.denom)+tie.p
    }#end for goals
    
    win.ot.p=(off.vctr[i]*def.vctr[j])/(off.vctr[i]*def.vctr[j]+off.vctr[j]*def.vctr[i])*(1-exp(-(off.vctr[i]*def.vctr[j]+off.vctr[j]*def.vctr[i])/chodr.denom/12))
    tie.ot.p=exp(-(off.vctr[i]*def.vctr[j]+off.vctr[j]*def.vctr[i])/chodr.denom/12)

    
    
    win.prob.ot[i,j]=win.p+tie.p*win.ot.p
    tie.prob.ot[i,j]=tie.p*tie.ot.p
  }#end for j
}#end for i


I should note that this is inefficient... technically i can get away with saying that win.prob.cts[i,j]=1-win.prob.cts[j,i]

but I don't need this to be optimally fast, it'll only take a few seconds and I only need to do it once.

edit: and of course, its full of bugs... :-/

edit #2: here we go... I went by the alphabetical ordering of jtw's two letter codes (because that was the easiest way to encode)... and all those numbers are hand inputs using Robin Lock's figures.

What did you get? I take it these are probabilities of winning the games, in some kind of way?
 
Re: Pairwise and Bracketology 2013 Edition

What did you get? I take it these are probabilities of winning the games, in some kind of way?

Chance of winning or win/tie/loss a neutral site game... and I'll admit I could have made a mistake on the input
 
Re: Pairwise and Bracketology 2013 Edition

Chance of winning or win/tie/loss a neutral site game... and I'll admit I could have made a mistake on the input

I can't find an output. It outputs to a 59x59 matrix, right? Could we have a gander at that? Adn, when you say "mistake on the input" you mean a copying error from the CHODR numbers?
 
Re: Pairwise and Bracketology 2013 Edition

So, what you are going to do with this big matrix?

It feeds into the calculation of probabilities for each game... semi-ad-hoc, sure, but it gets the job done... anyhow... assuming no goofs using CHODR

SNIP

edit: yup, and I've screwed up somewhere!
 
Last edited:
Re: Pairwise and Bracketology 2013 Edition

Fixed, I think

Code:
   NAME   NCAA     S1     S2     S3     S4   CONF  ATLRG    TUC
1    AA 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
2    AF 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
3    AH 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
4    AI 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
5    Ak 0.0008 0.0000 0.0000 0.0000 0.0008 0.0000 0.0008 1.0000
6    Ar 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
7    BC 1.0000 0.3523 0.6205 0.0272 0.0000 0.2718 0.7282 1.0000
8    BG 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
9    Bn 0.1194 0.0000 0.0000 0.0000 0.1194 0.1194 0.0000 1.0000
10   BS 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
11   BU 0.1855 0.0000 0.0000 0.0001 0.1854 0.1662 0.0193 1.0000
12   By 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
13   Ca 0.2295 0.0000 0.0000 0.0000 0.2295 0.2295 0.0000 0.0000
14   CC 0.0254 0.0000 0.0000 0.0000 0.0254 0.0254 0.0000 1.0000
15   Cg 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
16   Ck 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
17   Cr 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000
18   Ct 0.2534 0.0000 0.0000 0.0000 0.2534 0.2534 0.0000 0.5977
19   Da 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000
20   DU 0.9977 0.0000 0.0023 0.8708 0.1246 0.0000 0.9977 1.0000
21   FS 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000
22   Ha 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
23   HC 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000
24   LS 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
25   MA 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
26   MD 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
27   Me 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
28   Mh 0.1900 0.0000 0.0000 0.0000 0.1900 0.1900 0.0000 0.0000
29   Mi 0.0910 0.0000 0.0000 0.0000 0.0910 0.0910 0.0000 0.3209
30   Mk 0.9997 0.1208 0.3253 0.5517 0.0019 0.1377 0.8620 1.0000
31   ML 1.0000 0.3291 0.6255 0.0454 0.0000 0.3085 0.6915 1.0000
32   Mm 1.0000 0.8453 0.1547 0.0000 0.0000 0.4294 0.5706 1.0000
33   Mn 1.0000 1.0000 0.0000 0.0000 0.0000 0.4581 0.5419 1.0000
34   Mr 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
35   MS 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
36   MT 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
37   ND 1.0000 0.0676 0.6934 0.2390 0.0000 0.1196 0.8804 1.0000
38   NE 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
39   NH 1.0000 0.0000 0.4793 0.5207 0.0000 0.0000 1.0000 1.0000
40   Ni 0.9944 0.0348 0.3464 0.4884 0.1248 0.3271 0.6673 1.0000
41   NM 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
42   NO 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000
43   Nt 0.8667 0.1346 0.0631 0.3205 0.3485 0.3360 0.5307 1.0000
44   OS 0.1436 0.0000 0.0000 0.0000 0.1436 0.1436 0.0000 1.0000
45   Pn 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
46   PS 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
47   Pv 0.2549 0.0000 0.0000 0.0000 0.2549 0.2535 0.0014 1.0000
48   Qn 1.0000 1.0000 0.0000 0.0000 0.0000 0.5046 0.4954 1.0000
49   RM 0.0201 0.0000 0.0000 0.0000 0.0201 0.0000 0.0201 1.0000
50   RP 0.1641 0.0000 0.0000 0.0000 0.1641 0.0000 0.1641 1.0000
51   RT 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
52   SC 0.9899 0.0250 0.2187 0.5488 0.1974 0.1983 0.7916 1.0000
53   SH 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
54   SL 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000
55   Un 0.5894 0.0000 0.0000 0.1454 0.4440 0.2497 0.3397 1.0000
56   Vt 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
57   Wi 0.0822 0.0000 0.0000 0.0176 0.0646 0.0609 0.0213 1.0000
58   WM 0.8190 0.0000 0.0000 0.0000 0.8190 0.0000 0.8190 1.0000
59   Ya 0.9833 0.0905 0.4708 0.2244 0.1976 0.1263 0.8570 1.0000
 
Re: Pairwise and Bracketology 2013 Edition

Well done, Patman. You did this in R? Clearly, I need to play with it again.
 
Re: Pairwise and Bracketology 2013 Edition

Fixed, I think

Code:
   NAME   NCAA     S1     S2     S3     S4   CONF  ATLRG    TUC
40   [B]Ni 0.9944[/B] 0.0348 0.3464 0.4884 0.1248 0.3271 0.6673 1.0000
So Niagara is the Ivory Soap of college hockey? :D
 
Re: Pairwise and Bracketology 2013 Edition

When it comes to a team's OOC schedule, where does that affect them the most?

Let's use Minny and St Cloud as an example. Minny 8-0. St Cloud 3-5. Conference play, identical results, although St Cloud played a slightly tougher schedule. But, Minny only loses 1 compare, and St Cloud loses enough that they could be playing the Championship game Saturday night for their tourney hopes.

In RPI:
St Cloud .5358
Minny .5670
A big difference, and it's all because of the OOC record.

In TUCs:
St Cloud: .6042
Minny .6250
These are almost the same, and mostly that is because of all the TUCs they both play in Conference play. I believe there are currently no schools in between these 2 TUC records, so this is not affecting St Cloud at all.

In CommOpp
Hard to quantify this, but...
St Cloud has losses (sweeps) to UNH (Hockey East) and NoMich (CCHA) and a split with RPI(I think it was - anyway a ECAC school). These hurt in every compare with all the teams from those conferences, because the only way to recover that part of the compare is if that school lost in games against WCHA opponents.
Minnesota, on the other hand, has wins (sweeps) against MichState (CCHA) and Vermont (HE) and single wins against NoDame (again, CCHA), BC (Hockey East again), Canisius (AHA), and Air Force (AHA again). These serve Minny well in all those compares. In fact the only reason the QU is currently guaranteed the overall #1 is because they played and beat WCHA teams with whom the Gophers split, and thus the CommOpp part of the compare is irrecoverable. Were it not for that, it would be reasonable that Minny could pass them in RPI and win the compare.

So, one answer to the question is:
OOC record is important it 2 things
1) it makes up about 25% of your schedule, so it affects your RPI. If your OOC games are 25% of your sched, then 25% * 25 % or about 6% or your RPI is actually your record in those games.
2) It greatly affect your CommOpp record for comparisons with teams near you in the PWR standings.
 
Re: Pairwise and Bracketology 2013 Edition

Interesting Scenario: 5 ECAC Teams in:
The key is that Brown wins, Yale and Union each win a game, and no other AQs so that RPI gets the last at-large spot, plus Notre Dame loses their first game. ECAC seeds: 1, 8, 14, 15, 16, necessitating a #1-#13 opening match (QPac-Western Michigan), minimizing protection of the #1 seed. And in what city, since Brown has Providence?

(Yale can lose 2 in this scenario rather than QPac. Then the ECAC seeds are #1, 12, 14, 15, 16. I don't think there's a way to give 4 ECAC seeds the entire bottom tier, but this is pretty close.)


Your Picks
Atlantic Hockey
Semifinal #2: Connecticut defeats Mercyhurst
Semifinal #1: Niagara defeats Canisius
Championship game: Niagara defeats Connecticut
CCHA
Semifinal #2: Ohio State defeats Notre Dame
Semifinal #1: Miami defeats Michigan
Championship game: Miami defeats Ohio State
ECAC
Semifinal #2: Yale defeats Union
Semifinal #1: Brown defeats Quinnipiac
Championship game: Brown defeats Yale
Consolation game: Union defeats Quinnipiac
Hockey East
Semifinal #2: Boston College defeats Boston University
Semifinal #1: Massachusetts-Lowell defeats Providence
Championship game: Massachusetts-Lowell defeats Boston College
WCHA
Play-in #2: North Dakota defeats Colorado College
Play-in #1: Minnesota State defeats Wisconsin
Semifinal #2: Minnesota defeats North Dakota
Semifinal #1: St. Cloud State defeats Minnesota State
Championship game: Minnesota defeats St. Cloud State


Read more: http://www.uscho.com/rankings/pairwise-predictor/#ixzz2O5OniZi3
 
Last edited:
Re: Pairwise and Bracketology 2013 Edition

Interesting Scenario: 5 ECAC Teams in:
The key is that Brown wins, Yale and Union each win a game, and no other AQs so that RPI gets the last at-large spot, plus Notre Dame loses their first game. ECAC seeds: 1, 8, 14, 15, 16, necessitating a #1-#13 opening match (QPac-Western Michigan), minimizing protection of the #1 seed. And in what city, since Brown has Providence?

(Yale can lose 2 in this scenario rather than QPac. Then the ECAC seeds are #1, 12, 14, 15, 16. I don't think there's a way to give 4 ECAC seeds the entire bottom tier, but this is pretty close.)

...and the people on the NCAA Committee looks for the nearest bridge... :p

I think in that case, the NCAA would invoke the "5 team" exception and allow Quinnipiac to be the one seed in Providence vs an ECAC team.
 
Re: Pairwise and Bracketology 2013 Edition

...and the people on the NCAA Committee looks for the nearest bridge... :p

I think in that case, the NCAA would invoke the "5 team" exception and allow Quinnipiac to be the one seed in Providence vs an ECAC team.

Sure... but the interesting thing about that is that you'd be "protecting" Quinnipiac by having them play a team they'd lost to exactly one week earlier, and this time giving Brown a pseudo-home game. Not much protection!
 
Last edited:
I think in that case, the NCAA would invoke the "5 team" exception and allow Quinnipiac to be the one seed in Providence vs an ECAC team.

That ECAC team would have to be host Brown, who would have beaten QU the weekend before. Not sure that would go over great.
 
Status
Not open for further replies.
Back
Top