[net.sport.football] It shouldn't work, but...

stassen@trwspp.UUCP (10/03/84)

[]

	I have written a rather interesting program based on the property
of "transitivity" in football.  The theory states that if A beats B by N
points, and B beats C by M points, then A will beat C by M+N points.

	Before you laugh yourself silly, I wrote a program which used a
slightly more sophisticated version of this theory.  Last week it was 10-4.
Of course, it has its drawbacks: it can't be used until two or three weeks
into the season, and if there are no real connections between two teams
due to compete, then the result is pretty worthless.

	But, anyways, here's the algorithm:

	(NOTATION)

		Sab is the score in a game played by A and B.  It is
		    the points scored by A minus the points scored by B.
		Vn  are the differences in scores summed up over one link.
		In  are the "importance factors" for the links.

		
	(ALGORITHM)

	Suppose team A is to play team B.

	We would first find (with recursion) all "links" between A and B,
	without "loops."  ie, A played C, who played D, who played E,
	who played B.  Each team can only appear once in any link ("no
	loops"), so you couldn't get something like: A played D, who
	played C, who played E, who played D, who played B.  That would
	be shortened to: A played D, who played B.

	Then, when all links are figured out, multiply each link by
	an "importance factor" (In).  The importance factor is 2 ** (10 -
	the number of steps in the link) * (18 - number of weeks ago
	of the oldest step ) ** 2.  For a "second divisional matchup," (when
	two teams have played each other before), a special importance
	value of 1000000 is used, for the "direct" link.

	Then you compute the differences in scores (Vn) for each link, for
	example, if the link is A -> D -> C -> B, you would add
	Sad + Sdc + Scb. (written out), you would take:

	points scored by A against D - points scored by D against A
      + points scored by D against C - points scored by C against D
      + points scored by C against B - points scored by B against C

	Take this value and multiply it by the "importance factor."

	Repeat for each link that has been found. Take the sum of these
	values, and divide by the sum of the importance factors.


	Or,

		Sum over n of ( Vn * In )
		-------------------------
		Sum over n of   ( In )


	This is the predicted "point spread" between the two teams in question.
Note: it runs a lot faster if you don't allow "links" with more than 10
hops (which aren't very useful, anyways).


	I don't think it is going to go 10-4 this week ... here are its
	picks:  (These were generated by a slightly different version
	than indicated above, so don't worry if you do not get the same
	ones if you write the program).

		Chicago 	+3  over Saint Louis
	(!)	Kansas City 	+1  over San Diego
	(!)	Tampa Bay 	+4  over Detroit
		New England     +27 over Cincinnati
	(!)	Indianapolis    +19 over Philadelphia
		Miami		+51 over Houston
		Rams		+4  over New Orleans
	(!)	Atlanta		+12 over New York Giants
		Cleveland       +16 over New York Jets
		Washington      +25 over Dallas
	(!)	Buffalo         +11 over Seattle
		San Francisco   +41 over Pittsburgh
		Raiders         +32 over Minnesota
		Green Bay      +1/2 over Denver

	Oh well, it is a very new algorithm, and certainly could use
	some "tuning up."  All suggestions will be welcomed.  It seems
	to do rather well with "compensating" for teams with good/poor
	defenses/offenses, but it can get confused if a game is much
	closer/much less close than the score indicates.  In this case,
	maybe the halftime or end-of-3rd-quarter score should be considered.
	(or just fudging the final score to reflect how close the game
	really was).

------------------------------------------------------------------------------
The opinions expressed in this document are my own.  They are not intended to
reflect the views of my employer - TRW - or anyone else.  Intelligent and
responsible commentaries should be directed to me;  Flames to the bit bucket.
------------------------------------------------------------------------------
Christian W. Stassen	[decvax!trwrb,vortex,ihnp4!vortex]!trwspp!stassen

	"Seek not, lest Ye crash the heads."

ryan@fremen.DEC (10/06/84)

  (Buffalo +11 over Seattle!!! - did you
apply Bistromatics? :-)
	How about trying the algorithm with yardage instead of points (which
would better represent those games where the score doesn't really represent
what happened)?  The problem, of course, is in translating the resulting
yardage differentials into point spreads - it would take some tuning.
		Mike Ryan (ryan%fremen.DEC@decwrl, or some such nonsense)