An archived instance of a Discrete forum

Eigen ranking

mark

(15 pts)

In this problem, you’re going to pick a small athletic league and perform an eigenranking of the teams, as discussed in class. We’ve got several Observable notebooks where these topics are discussed and the computations illustrated:

Note that Audrey’s sample answer below is the based on that last link in particular.

To get started, pick some reasonably sized division in some athletic league. Fair examples would include

You don’t have to do football and are welcome to find your own data. Do yourself a favor, though, and keep the size small!

Once you’ve selected and analyzed your data, respond here with:

  • A description of your data and pointer to where you got that data,
  • Your list of teams, written out as code,
  • Your game matrix, also written out as code,
  • An image of the corresponding digraph, and
  • The resulting ranking.

Note that there is a sample response below for you to emulate. That response is built using this Observalbe notebook. That’s live code so you can open and edit it to generate your responses.

audrey

I chose to analyze the 2014 Big Ten Eastern division. I obtained the data from this web page and the team links coming from there:

From there I see the following list of teams:

teams = [
  "Ohio_State",
  "Michigan_State",
  "Maryland",
  "Rutgers",
  "Michigan",
  "Penn_State",
  "Indiana"
]

And, examining the results on the individual team pages, I was able to construct the following game matrix:

M = [
  [0, 1, 1, 1, 1, 1, 1],
  [0, 0, 1, 1, 1, 1, 1],
  [0, 0, 0, 0, 1, 1, 1],
  [0, 0, 1, 0, 1, 0, 1],
  [0, 0, 0, 0, 0, 1, 1],
  [0, 0, 0, 1, 0, 0, 1],
  [0, 0, 0, 0, 0, 0, 0]
]

The corresponding directed graph looks like so:

Ohio_State Ohio_State Michigan_State Michigan_State Ohio_State->Michigan_State 1 Maryland Maryland Ohio_State->Maryland 1 Rutgers Rutgers Ohio_State->Rutgers 1 Michigan Michigan Ohio_State->Michigan 1 Penn_State Penn_State Ohio_State->Penn_State 1 Indiana Indiana Ohio_State->Indiana 1 Michigan_State->Maryland 1 Michigan_State->Rutgers 1 Michigan_State->Michigan 1 Michigan_State->Penn_State 1 Michigan_State->Indiana 1 Maryland->Michigan 1 Maryland->Penn_State 1 Maryland->Indiana 1 Rutgers->Maryland 1 Rutgers->Michigan 1 Rutgers->Indiana 1 Michigan->Penn_State 1 Michigan->Indiana 1 Penn_State->Rutgers 1 Penn_State->Indiana 1

It’s pretty easy to see that the digraph is not strongly connected. Nonetheless, the eigenranking looks pretty reasonable:

Rank Team Rating
1 Ohio_State 0.813
2 Michigan_State 0.473
3 Rutgers 0.212
4 Maryland 0.187
5 Penn_State 0.152
6 Michigan 0.109
7 Indiana 0.000
ksimmon1

I analyzed the 2021 NFL AFC Eastern Division. I obtained the data from this webpage:

The list of teams:
teams = [
“BuffaloBills”,
“NewEnglandPatriots”,
“MiamiDolphins”,
“NewYorkJets”
]

Game Matrix: (Each teams plays each other twice)
M = [
[0, 1, 2, 2],
[1, 0, 0, 2],
[0, 2, 0, 2],
[0, 0, 0, 0]
]

The directed graph:

The eigenranking of the teams:

Rank Team Rating
1 BuffaloBills 0.768
2 MiamiDolphins 0.476
3 NewEnglandPatriots 0.428
4 NewYorkJets 0.000
Patt

I analyzed the 2012 NFL NFC Eastern division. I got my data from here: 2012 NFL Standings & Team Stats | Pro-Football-Reference.com

This is my list of teams:
teams = [
“San_Francisco_49ers”,
“Seattle_Seahawks”,
“St_Louis_Rams”,
“Arizona_Cardinals”,
]

and this is my Game Matrix:
M = [
[0, 1, 0, 2],
[1, 0, 1, 1],
[1, 1, 0, 2],
[0, 1, 0, 0]
]

Everyone played each other twice, however there was one tie between the San Francisco 49ers and St. Louis Rams. I counted the tie as a loss for both teams.

The directed graph:

San_Francisco_49ers San_Francisco_49ers Seattle_Seahawks Seattle_Seahawks San_Francisco_49ers->Seattle_Seahawks 1 Arizona_Cardinals Arizona_Cardinals San_Francisco_49ers->Arizona_Cardinals 2 Seattle_Seahawks->San_Francisco_49ers 1 Seattle_Seahawks->Arizona_Cardinals 1 St_Louis_Rams St_Louis_Rams Seattle_Seahawks->St_Louis_Rams 1 Arizona_Cardinals->Seattle_Seahawks 1 St_Louis_Rams->San_Francisco_49ers 1 St_Louis_Rams->Seattle_Seahawks 1 St_Louis_Rams->Arizona_Cardinals 2

The eigenranking of the teams:

Rank Team Rating
1 St_Louis_Rams 0.643
2 Seattle_Seahawks 0.570
3 San_Francisco_49ers 0.451
4 Arizona_Cardinals 0.243
bshambli

I chose to analyze the 2021 NFC North division.

Here’s where I got my data from:

Here are the teams:

teams = [
  "ChicagoBears",
  "MinnesotaVikings",
  "GreenBayPackers",
  "DetroitLions" 
]

Here is my game matrix:

M = [
  [0, 2, 1, 2],
  [0, 0, 1, 0],
  [1, 1, 0, 0],
  [0, 0, 2, 0],
]

There was a tie between the Green Bay Packers vs the Minnesota Vikings. The tie is represented in a loss for both teams in my data.

Here’s the graph:
image

Here is the final eigenranking of the teams:

Rank Team Rating
1 ChicagoBears 0.769
2 GreenBayPackers 0.447
3 DetroitLions 0.410
4 MinnesotaVikings 0.205
Jared

I chose to analyze the 2018 NFL AFC Western Division, and got the data from pro football reference:

The list of teams:
teams =
[“KansasCityChiefs”,
“LosAngelesChargers”,
“DenverBroncos”,
“OaklandRaiders”]

Game Matrix:
M = [
[0, 1, 1, 1],
[1, 0, 1, 1],
[0, 0, 0, 2],
[0, 1, 0, 0]
]

The directed graph:
image_2022-12-07_222900119

Eigenrankings:
image_2022-12-07_223059266

nhowe

I chose to analyze the 2020 NFC South division. I obtained the data from this web page and the team links coming from there: 2020 NFL Standings & Team Stats | Pro-Football-Reference.com

teams = [
“New_Orleans”,
“Tampa_Bay”,
“Carolina_Panthers”,
“Atlanta_Falcons”
]

Game Matrix: (Each team plays twice, except for NewOrleans and TampaBay which played again in the playoffs. I chose to include this metric)
M = [
[0, 2, 2, 2],
[1, 0, 2, 2],
[0, 0, 0, 1],
[0, 0, 1, 0]
]

The directed graph:
image

Eigenranking of the teams:

Rank Team Rating
1 New_Orleans 0.822
2 Tampa_Bay 0.569
3 Atlanta_Falcons 0.000
4 Carolina_Panthers 0.000
csluder2

I chose to analyze the 2012 NFL AFC West from the link here:

List of teams:
2012 AFC west
teams = [
“Denver_Broncos”,
“Chargers”,
“Raiders”,
“Chiefs”
]
This is the game matrix (Teams play one another twice).
M = [
[0,2,2,2],
[0,0,2,2],
[0,0,0,2],
[0,0,0,0],
]
The directed graph:

Denver_Broncos Denver_Broncos Chargers Chargers Denver_Broncos->Chargers 2 Raiders Raiders Denver_Broncos->Raiders 2 Chiefs Chiefs Denver_Broncos->Chiefs 2 Chargers->Raiders 2 Chargers->Chiefs 2 Raiders->Chiefs 2

EigenRanking of the teams (returns NaN for all and fixes itself if I put a win for the chiefs):

Rank Team Rating
1 Chiefs NaN
2 Raiders NaN
3 Chargers NaN
4 Denver_Broncos NaN

if I give the chiefs a win this happens:

Rank Team Rating
1 Denver_Broncos 0.766
2 Chargers 0.490
3 Chiefs 0.320
4 Raiders 0.267
mark