Started By
Message

re: LSUMATT "FUTURE POLL" RELEASED

Posted on 10/3/08 at 10:16 pm to
Posted by Buckeye Fan 19
Member since Dec 2007
36168 posts
Posted on 10/3/08 at 10:16 pm to
Great job, Matt. However, Penn St would jump over LSU in this scenario.
Posted by Buckeye Fan 19
Member since Dec 2007
36168 posts
Posted on 10/3/08 at 10:17 pm to
quote:

Just to be clear, even if LSU were above Penn State with 1-loss, PSU would still be ahead of LSU overall in the BCS.


OK.
Posted by MeanMachine
Baton Rouge
Member since Oct 2008
173 posts
Posted on 10/15/08 at 3:48 am to
You can find out right here:

LINK /

Posted by MeanMachine
Baton Rouge
Member since Oct 2008
173 posts
Posted on 10/15/08 at 3:49 am to
quote:


But what is neat is I can run simulations of the rest of the season. I just assume the higher ranked team wins (Coaches poll for top 25; Colley for remainder)


That means you're finding median results instead of mean results. They are the same in a Gaussian distribution but life usually doesn't follow a Gaussian. What you wanna do is calculate the chances of each game being won (for a given team) - and then run Monte Carlo simulations of the season.
This post was edited on 10/15/08 at 3:50 am
Posted by MeanMachine
Baton Rouge
Member since Oct 2008
173 posts
Posted on 10/15/08 at 3:52 am to
quote:

I can understand everything, except how to get Wolfe's data to calculate things like opponents' win/loss total. Do you have any suggestions for any language or program on how to do that?



here is the code for the Tuba Top 101. Its in C. Sorry, but the TD software eliminates the tabs, so its hard to read. You should be able to take out the part that read's Wolfe's data though:







#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>

#define MOV (0.0/6.0)
#define MAXN 10000
#define MAXT 1000
#define MAXL 24
#define DELTA 400.0
#define HFA 0.0
#define HTML 1

typedef char name_t[ 25 ];

typedef struct
{
name_t name1;
name_t name2;
int score1;
int score2;
int i1;
int i2;
int result;
} game_t;

int read_games( game_t*, name_t*, FILE* );
void compute_scores( game_t*, double*, double*, int*, int*, int, name_t* );
void sort_scores( int*, double*, int );

int main( void )
{
static game_t games[ MAXN ];
static name_t names[ MAXT ];
static double scores[ MAXT ];
static double sos[ MAXT ];
static int ranks[ MAXT ];
static int sos_ranks[ MAXT ];
static int temp[ MAXT ];
FILE* fp;
int cnt, fnd;
int i, ia, ri, k, r1, j, ls;
static int w[ MAXT ];
static int l[ MAXT ];
static name_t IA[ 120 ];
static char str[ 64 ];

fp = fopen( "games.txt", "rt" );
cnt = read_games( games, names, fp );
fclose( fp );
compute_scores( games, scores, sos, w, l, cnt, names );
sort_scores( ranks, scores, cnt );
sort_scores( sos_ranks, sos, cnt );
fp = fopen( "teams.txt", "rt" );
fgets( str, MAXT, fp );
ia = 0;
while( !feof( fp ) )
{
strcpy( IA[ ia ], str );
IA[ ia ][ strlen( IA[ ia ] ) - 1 ] = '\0';
ia++;
fgets( str, MAXT, fp );
}
ri = 0;
if( HTML ) {
printf( "<html><body bgcolor = \"purple\" text = \"yellow\"><center><table border=\"1\">\n" );
printf( " <tr>\n" );
printf( " <td>Rank</td>\n" );
printf( " <td>Team</td>\n" );
printf( " <td>Rating</td>\n" );
printf( " <td>SOS Rank</td>\n" );
printf( " <td>SOS</td>\n" );
printf( " <td>W</td>\n" );
printf( " <td>L</td>\n" );
printf( " <td>Pct</td>\n" );
printf( " </tr>\n" );
}

for( k = 0; k < MAXT; k++ ) {
temp[k] = sos_ranks[k];
}
ri = 0;
for( i = 0; i < MAXT; i++ )
{
fnd = 0;
for( k = 0; k < MAXT; k++ )
{
if( strcmp( IA[k], names[temp[i]] ) == 0 ) {
fnd = 1;
break;
}
}
if( fnd == 1 ) {
sos_ranks[temp[i]] = ri+1;
ri++;
}
}
ri = 0;
ls = 0;
for( i = 0; i < MAXT; i++ )
{
for( k = 0; k < MAXT; k++ )
{
if( strcmp( IA[k], names[ranks[i]] ) == 0 ) {
ri++;
j= ranks[i];
if( !HTML ) {
printf( "%i %25s %5.0f %5.0f %i-%i\n", ri, names[j], scores[j], sos[j], w[j], l[j]);
break;
}
else {
printf( " <tr>\n" );
if( ri != 0 && (int) scores[j] == ls )
printf("\t\t<td>-</td>\n" );
else
printf("\t\t<td>%i</td>\n", ri );
printf("\t\t<td>%25s</td>\n\t\t<td>%5i</td>\n\t\t<td>%i</td>\n\t\t<td>%5i</td>\n\t\t<td>%i</td>\n\t\t<td>%i</td>\n\t\t<td>%4.3f</td>\n",
names[j], (int) scores[j],sos_ranks[j], (int) sos[j], w[j], l[j], ((double)w[j]/(double)(w[j]+l[j])) );
printf( " </tr>\n" );
ls = scores[j];
break;
}
}
}
}
if( HTML ) {
printf( "</table></center></body><html>\n" );
}
return 0;
}

void sort_scores( int* r, double* s, int cnt )
{
int i, j, k;

for( i = 0; i < cnt; i++ )
r[ i ] = i;
for( i = 0; i < cnt-1; i++ )
{
for( j = 0; j < cnt-1; j++ )
{
if( s[ r[ j ] ] < s[ r[ j+1 ] ] )
{
k = r[ j+1 ];
r[ j+1 ] = r[ j ];
r[ j ] = k;
}
}
}
}


void compute_scores( game_t* g0, double* s, double* sos, int* w, int* l, int cnt, name_t* n )
{
int i;
int j;
static int gcnt[ MAXT ];
static double os[ MAXN ];
double stake;
double mov;
double avg;
game_t* g;

for( i = 0; i < cnt; i++ )
{
os[ i ] = 0.0;
gcnt[ i ] = 0;
sos[i] = 0.0;
}
g = g0;
while( g->i1 != -1 )
{
gcnt[ g->i1 ]++;
gcnt[ g->i2 ]++;
if( g->result == 1 )
{
w[ g->i1 ]++;
l[ g->i2 ]++;
}
else if( g->result == -1 )
{
w[ g->i2 ]++;
l[ g->i1 ]++;
}
g++;
}
for( j = 0; j < 100000; j++ )
{
for( i = 0; i < cnt; i++ )
s[ i ] = 0.0;
g = g0;
while( g->i1 != -1 )
{
s[ g->i1 ] += os[ g->i2 ];
s[ g->i2 ] += os[ g->i1 ];
if( g->result == 1 )
{
mov = (double) g->score1 / (double) (g->score1 + g->score2);
mov -= 0.50;
mov *= 2.0;
stake = (1.0 + (mov-1.0)*MOV)*DELTA;
s[ g->i1 ] += stake;
s[ g->i2 ] -= stake;
}
else if( g->result == -1 )
{
mov = (double) g->score2 / (double) (g->score1 + g->score2);
mov -= 0.50;
mov *= 2.0;
stake = (1.0 + (mov-1.0)*MOV)*DELTA;
s[ g->i1 ] -= stake;
s[ g->i2 ] += stake;
}
else
{
printf( "%i %s %s \n", g->result, g->name1, g->name2 );
abort();
}
g++;
}
for( i = 0; i < cnt; i++ )
{
s[ i ] = (s[i] / (double) gcnt[ i ] + os[i])/2.0;
os[ i ] = s[ i ];
}
}
avg = 0.0;
for( i = 0; i < cnt; i++ )
{
avg += s[i];
}
avg /= cnt;
for( i = 0; i < cnt; i++ )
{
s[i] -= avg;
}
g = g0;
while( g->i1 != -1 )
{
sos[g->i1] += s[g->i2];
sos[g->i2] += s[g->i1];
g++;
}
for( i = 0; i < cnt; i++ )
{
sos[ i ] /= (double) gcnt[ i ];
}
}

int read_games( game_t* g, name_t* n, FILE* fp )
{
char buffer[ 256 ];
int i, j1, j2, cnt, j3;
cnt = i = 0;
fgets( buffer, 255, fp );
while( !feof( fp ) )
{
cnt++;
strncpy( g->name1, buffer + 10, MAXL );
j2 = strlen( g->name1 )-1;
while( g->name1[ j2 ] == ' ' )
g->name1[ j2-- ] = '\0';
while( g->name1[ 0 ] == ' ' )
{
for( j2 = 0; j2 < strlen( g->name1 ); j2++ )
g->name1[j2] = g->name1[j2+1];
}
g->score1 = atoi( buffer + 37 );
strncpy( g->name2, buffer + 41, MAXL );
j2 = strlen( g->name2 )-1;
while( g->name2[ j2 ] == ' ' )
g->name2[ j2-- ] = '\0';
while( g->name2[ 0 ] == ' ' )
{
for( j2 = 0; j2 < strlen( g->name2 ); j2++ )
g->name2[j2] = g->name2[j2+1];
}
g->score2 = atoi( buffer + 68 );
for( j1 = 0; j1 < i; j1++ )
if( strncmp( g->name1, n[ j1 ], MAXL ) == 0 ) break;
if( j1 == i )
strncpy( n[ i++ ], g->name1, MAXL );
for( j2 = 0; j2 < i; j2++ )
if( strncmp( g->name2, n[ j2 ], MAXL ) == 0 ) break;
if( j2 == i )
strncpy( n[ i++ ], g->name2, MAXL );
g->i1 = j1;
g->i2 = j2;
if( g->score1 > g->score2 )
g->result = 1;
else if( g->score1 < g->score2 )
g->result = -1;
else
g->result = 0;
g++;
fgets( buffer, 255, fp );
}
g->i1 = -1;
return i;
}


Posted by loweralabamatrojan
Lower Alabama
Member since Oct 2006
13136 posts
Posted on 10/15/08 at 4:44 am to
I'm guessing MOV is definitely in play in the TUba Top 101 figures.

Otherwise USC wouldn't be so high, and LSU wouldn't be so low.

LSUmatt will probably tell you that a 30 point loss doesn't mean anything in the computers, but I imagine a result like that makes a bit of difference to humans ranking teams.
Posted by Jrv2damac
Kanorado
Member since Mar 2004
65826 posts
Posted on 10/15/08 at 4:44 am to
Sup fricker?
Posted by loweralabamatrojan
Lower Alabama
Member since Oct 2006
13136 posts
Posted on 10/15/08 at 4:56 am to
Aight bitch.
Posted by MeanMachine
Baton Rouge
Member since Oct 2008
173 posts
Posted on 10/15/08 at 4:58 am to
quote:

I'm guessing MOV is definitely in play in the TUba Top 101 figures.



You are half correct.

MOV plays a roll but only in the first 6 weeks. Note the #define MOV statement - for week 1 it is 6/6, for week 2 it is 5/6, for week 3 it is 4/6, then 3/6, 2/6, 1/6, and for week 7 and on its 0/6.

The reasoning is answered in the FAQ on the link LINK /
This post was edited on 10/15/08 at 4:59 am
Posted by loweralabamatrojan
Lower Alabama
Member since Oct 2006
13136 posts
Posted on 10/15/08 at 5:07 am to
Gotcha. So from here on out, if you are blowing teams out of the water and running the score up
like the steroid raging love child of Urban Meyer and Steve Spurrier, it won't matter to TUba.
Posted by Jrv2damac
Kanorado
Member since Mar 2004
65826 posts
Posted on 10/15/08 at 5:11 am to
YEEN HEARD?!
Posted by MeanMachine
Baton Rouge
Member since Oct 2008
173 posts
Posted on 10/15/08 at 5:16 am to
quote:

Gotcha. So from here on out, if you are blowing teams out of the water and running the score up
like the steroid raging love child of Urban Meyer and Steve Spurrier, it won't matter to TUba.




Indeed. Read the FAQ for the reasoning.

Posted by loweralabamatrojan
Lower Alabama
Member since Oct 2006
13136 posts
Posted on 10/15/08 at 5:17 am to
Schnap!
Posted by lsumatt
Austin
Member since Feb 2005
12812 posts
Posted on 10/16/08 at 1:37 pm to
quote:

That means you're finding median results instead of mean results. They are the same in a Gaussian distribution but life usually doesn't follow a Gaussian. What you wanna do is calculate the chances of each game being won (for a given team) - and then run Monte Carlo simulations of the season.


Yeah I know. But I don't have that kind of time right now. Rick Tellshow seems to have beat to the punch on that anyway and is running some neat simulations.
Posted by BuckeyeFan87
Columbus
Member since Dec 2007
25240 posts
Posted on 10/16/08 at 1:46 pm to
No way is a 12-1 LSU over an undefeated Penn State team. Especially when LSU already got thumped and PSU has Joe Pa. He's the feel good story of the season.
Posted by Summer Grove Tiger
Dallas, TX
Member since Jan 2008
1381 posts
Posted on 10/16/08 at 1:50 pm to
quote:

PSU has Joe Pa. He's the feel good story of the season.


Yeah, it's amazing how much of his past coaching glory seems to have been rediscovered, now that he's been "thuggin' it up" in recruiting the last 2-3 years.
Posted by tigeraddict
Baton Rouge
Member since Mar 2007
11877 posts
Posted on 10/16/08 at 1:50 pm to
quote:

No way is a 12-1 LSU over an undefeated Penn State team. Especially when LSU already got thumped and PSU has Joe Pa. He's the feel good story of the season.


That would be in the computer polls only. You can't predict what humans might vote....
Posted by Golfer
Member since Nov 2005
75052 posts
Posted on 10/16/08 at 1:59 pm to
quote:

This is the most ridiculous spin of homerism I have ever seen.


Which explains why he only gave LSU a 1% Chance last year...please.
Posted by lsumatt
Austin
Member since Feb 2005
12812 posts
Posted on 10/16/08 at 2:14 pm to
quote:

No way is a 12-1 LSU over an undefeated Penn State team.


Do you read? This is a computer poll, not the BCS. Computers are more likely to give a team with a worse record the nod. PSU actually plays a pretty easy schedule.

It should be noted that this is a week and half old and haven't had the time to update this week. Undefeated PSU may very well be above LSU with some upsets
Posted by lsumatt
Austin
Member since Feb 2005
12812 posts
Posted on 10/16/08 at 2:16 pm to
quote:

This is the most ridiculous spin of homerism I have ever seen.


How is this homerism? I just solved a bunch of equations using a computer algorithm based on the Colley Matrix. What is my "Enter" Key purple and Gold?
first pageprev pagePage 4 of 5Next pagelast page

Back to top
logoFollow TigerDroppings for LSU Football News
Follow us on Twitter, Facebook and Instagram to get the latest updates on LSU Football and Recruiting.

FacebookTwitterInstagram