- My Forums
- Tiger Rant
- LSU Recruiting
- SEC Rant
- Saints Talk
- Pelicans Talk
- More Sports Board
- Fantasy Sports
- Golf Board
- Soccer Board
- O-T Lounge
- Tech Board
- Home/Garden Board
- Outdoor Board
- Health/Fitness Board
- Movie/TV Board
- Book Board
- Music Board
- Political Talk
- Money Talk
- Fark Board
- Gaming Board
- Travel Board
- Food/Drink Board
- Ticket Exchange
- TD Help Board
Customize My Forums- View All Forums
- Show Left Links
- Topic Sort Options
- Trending Topics
- Recent Topics
- Active Topics
Started By
Message
Posted on 10/3/08 at 10:17 pm to lsumatt
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 on 10/15/08 at 3:48 am to reddman
Posted on 10/15/08 at 3:49 am to lsumatt
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 on 10/15/08 at 3:52 am to southeastBoot
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 on 10/15/08 at 4:44 am to MeanMachine
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.
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 on 10/15/08 at 4:58 am to loweralabamatrojan
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 on 10/15/08 at 5:07 am to MeanMachine
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.
like the steroid raging love child of Urban Meyer and Steve Spurrier, it won't matter to TUba.
Posted on 10/15/08 at 5:16 am to loweralabamatrojan
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 on 10/16/08 at 1:37 pm to MeanMachine
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 on 10/16/08 at 1:46 pm to lsumatt
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 on 10/16/08 at 1:50 pm to BuckeyeFan87
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 on 10/16/08 at 1:50 pm to BuckeyeFan87
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 on 10/16/08 at 1:59 pm to geauxgeauxgirl
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 on 10/16/08 at 2:14 pm to BuckeyeFan87
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 on 10/16/08 at 2:16 pm to geauxgeauxgirl
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?
Popular
Back to top
![logo](https://images.tigerdroppings.com/images/layout/TDIcon.jpg)