Predicting Times in Distance Running

When the weather is adequately pleasant and a suitable location is available (minimal cars and hecklers), my preferred form of exercise is running. I only run in about one race per year, but I am nevertheless interested in what times I might require for various distances. One day I noticed an interesting pattern in my personal-best times at various distances.

The actual times are t(.25)=60.2, t(.5)=135.5, t(1)=304.5, t(2)=664.5, t(4)=1410. (Units are t(miles)=seconds.) But look what happens if we adjust the numbers a wee bit. We get a sequence a0, a1, a2, ... that looks like

           a   =    60
            0
 
           a   =   135  =  2a  + 15
            1                0
 
           a   =   300  =  2a  + 30
            2                1
 
           a   =   660  =  2a  + 60
            3                2
 
           a   =  1440  =  2a  + 120
            4                3
To get the predicted time when doubling the distance, double the time and add 30 seconds/mile. As an equation, using d for distance in miles and t for time in seconds,
           t(d)  =  2t(d/2) + 30d

This is interesting enough in itself -- I can now make a reasonable prediction at my time for an 8-mile run as 2*1440+240 seconds. But who runs an 8-mile? I'd really like to find this function t(d) for any distance d. Using the Moment Generating Function technique, I will find a(i) as a function of i and then convert to t(d).

           a   =  60
            0
 
                              n-1
           a   =  2a    + 15*2             for n > 0
            n       n-1
Let
              infinity
               -----
               \
                \       i
         C  =    >   a x
                /     i
               /
               -----
                i=0
Then
                    infinity          infinity
                     -----             -----
                     \                 \
                      \       i         \         i
         C - 2xC  =    >   a x    -      >  2a   x
                      /     i           /     i-1
                     /                 /
                     -----             -----
                      i=0               i=1
 
 
                    infinity          infinity
                     -----             -----
                     \                 \
                      \       i         \              i-1   i
                  =    >   a x    -      >  ( a  - 15*2    )x
                      /     i           /      i
                     /                 /
                     -----             -----
                      i=0               i=1
 
 
                            infinity
                             -----
                             \
                              \         i-1   i
                  =  a   +     >  ( 15*2    )x
                      0       /
                             /
                             -----
                              i=1
 
 
                                 infinity
                                  -----
                                  \
                                   \         i
                  =  a   +  15/2    >  ( 2x )
                      0            /
                                  /
                                  -----
                                   i=1
 
 
                                          infinity
                                           -----
                                           \
                                            \         i
                  =  a   -  15/2  +  15/2    >  ( 2x )
                      0                     /
                                           /
                                           -----
                                            i=0
 
 
                                       15/2
                  =  a   -  15/2  +  --------
                      0               1 - 2x
 
So
 
             C - 2xC         1                     15/2
      C  =  ---------  =  -------- ( a  - 15/2 + -------- )
             1 - 2x        1 - 2x     0           1 - 2x
 
 
 
             a  - 15/2          15/2
              0             -------------
         =  -----------  +             2
              1 - 2x         ( 1 - 2x )
 
 
 
                        infinity               infinity
                         -----                  -----
                         \                      \
                          \          i           \                i
         =  ( a  - 15/2 )  >   ( 2x )    +  15/2  >  (i + 1)( 2x )
               0          /                      /
                         /                      /
                         -----                  -----
                          i=0                    i=0
 
 
            infinity
             -----
             \
              \                     i                   i   i
         =     >   ( ( a  - 15/2 )*2  + (15/2)*(i + 1)*2  )x
              /         0
             /
             -----
              i=0
Hence
                               i                     i
         a   =  ( a  - 15/2 )*2   +  (15/2)*(i + 1)*2
          i        0
 
                                 i
             =  ( a  + 15*i/2 )*2
                   0
Now note that for all i,
            (i-2)                             (i-2)
       d = 2           and     a  = t(d) = t(2     )
                                i
so we have
          (i-2)                       i
       t(2     )  =  ( a  + 15*i/2 )*2
                        0
Rewriting
            (i-2)
       d = 2
as
       log ( d )  =  i - 2       or       i  =  2 + log ( d )
          2                                            2
Then
                    (i-2)
       t(d)  =  t( 2      )
 
                                 i
             =  ( a  + 15*i/2 )*2
                   0
 
                                                   ( 2 + log ( d ) )
             =  ( a  + (15/2)*( 2 + log ( d ) ) )*2         2
                   0                   2
 
 
             =  ( a  + 15 + (15/2)*log ( d ) )*4d
                   0                  2

We could have made our derivation a little more general by using a variable s instead of the constant 15, in which case the solution would be

       t(d)  =  ( a  + s + (s/2)*log ( d ) )*4d
                   0                2
This curve exhibits the expected characteristics of being strictly increasing and having its rate of increase strictly decreasing, but otherwise it looks pretty unintuitive. Can we relate the parameters to anything physical? Well, the first is pretty natural -- it is the person's best time in the quarter mile. A quarter mile is about the longest distance that can be run all out. Anything further and you have to hold back at least a little at the beginning of the race in order to maintain speed at the end. So the first parameter a0 is a measure of raw speed. The second parameter s is a measure of how well the runner can carry the speed over distance. That is, it describes the runner's strength or endurance. But it is not clear to me exactly what physical characteristic it actually measures.

One way to determine the parameters for your personal time prediction function is to use your personal (or season) best times. Your best quarter-mile time is then a0, and s is your half-mile time minus twice your quarter-mile, or alternatively mile minus twice your half-mile and then divide by two. Obviously, these alternative methods should yield similar numbers or else the method isn't going to apply to you. A better way to find a0 and s is to use all available best times in a curve-fitting program. I did a least-squares fit to my personal-best times shown above to find values for a0 and s, and got a0=60.82 and s=14.2325. The following table compares predicted and actual times.

           Distance       Actual       Predicted
 
            1/4 mile      1:00.2         1:00.8
            1/2 mile      2:15.5         2:15.9
              mile        5:04.5         5:00.2
            2 mile       11:04.5        10:57.4
            4 mile       23:30          23:48.6
            8000 m       30:25          30:20

Seeing my model make a reasonable prediction for the 8K, I wondered how well it might apply to other people. Some members of the local IBM running club were nice enough to give me some of their times, and I generated prediction data for them. What I found out was that my

       t(d)  =  ( a  + s + (s/2)*log ( d ) )*4d
                   0                2
curve could be fit pretty well to their times, but for most people a power law
                   B
       t(d)  =  A*d
was an even better fit! The parameters A and B, determined with a least-squares fit, don't have any physical meaning, but with a few data points they can nicely predict times at various distances. None of the club runners had even as many known times as I had, so I really had too little data to say which curve actually fit better in general. I guess to prove my logarithmic model I need to go run a 3:09:48 marathon.


(Addendum) The most recent time in the above data is the 8K from 1994. Starting in 1992 each year I ran the "B.C. Blood Run", an 8K, and that was my only timed run for the year. How well I did depended mostly on how much effort I put into extending my season to late October when the race was held. (I'm a "fair weather" runner. I generally don't run when it's cold, wet, or dark, and that covers a good deal of the year in the Northeast.) In 1997 I came reasonably close to my 8K record -- half a minute -- but then in 1998 I somehow injured my knee and was kind of introduced to the idea of never being able to run again. I did recover enough to run in the 1998 and 1999 Blood Runs, but my times were minutes slower.

In 2000, I finally was able to run without my knee making comments. I enthusiastically prepared for the October race, only to discover that the Red Cross had decided not to hold it! I still gave them my entrance fee (a pint of blood), and I expect they'll continue to reap benefit from having held the race so many years -- I moved up from twice-a-year donations to three or four times a year due mostly to my appreciation for the race. But after two years of struggle I knew I was running better, and I wanted to know how much. Since the 8K wasn't available, I decided to race two distances I had never run and see how my times compared with my model's prediction. The model predicts 38:52 for a 10K and 17:57 for a 5K. I managed 40:07 and 18:57. I suspect I can improve the 5K, but I felt like that 10K was about as good as I was capable of this season, and it is hard to picture taking over a minute off it. It is probably time for me to work age into the model.


The information provided, and views expressed on this site are my own and do not represent the IBM Corporation.



 

Return to the author's home page.