These functions model the sprint split times using mono-exponential equation, where time is used as target or outcome variable, and distance as predictor. Function mixed_model_using_splits provides the simplest model with estimated MSS and TAU parameters. Time correction using heuristic rule of thumbs (e.g., adding 0.3s to split times) can be implemented using time_correction function parameter. Function mixed_model_using_splits_with_time_correction, besides estimating MSS and TAU, estimates additional parameter time_correction. Function mixed_model_using_splits_with_corrections, besides estimating MSS, TAU and time_correction, estimates additional parameter distance_correction. For more information about these function please refer to accompanying vignettes in this package.

mixed_model_using_splits(
  data,
  distance,
  time,
  athlete,
  time_correction = 0,
  random = MSS + TAU ~ 1,
  LOOCV = FALSE,
  na.rm = FALSE,
  ...
)

mixed_model_using_splits_with_time_correction(
  data,
  distance,
  time,
  athlete,
  random = MSS + TAU ~ 1,
  LOOCV = FALSE,
  na.rm = FALSE,
  ...
)

mixed_model_using_splits_with_corrections(
  data,
  distance,
  time,
  athlete,
  random = MSS + TAU ~ 1,
  LOOCV = FALSE,
  na.rm = FALSE,
  ...
)

Arguments

data

Data frame

distance

Character string. Name of the column in data

time

Character string. Name of the column in data

athlete

Character string. Name of the column in data. Used as levels in the nlme

time_correction

Numeric vector. Used to correct for different starting techniques. This correction is done by adding time_correction to time. Default is 0. See more in Haugen et al. (2018)

random

Formula forwarded to nlme to set random effects. Default is MSS + TAU ~ 1

LOOCV

Should Leave-one-out cross-validation be used to estimate model fit? Default is FALSE

na.rm

Logical. Default is FALSE

...

Forwarded to nlme function

Value

List object with the following elements:

parameters

List with two data frames: fixed and random containing the following estimated parameters: MSS, TAU, time_correction, distance_correction, MAC, and PMAX

model_fit

List with the following components: RSE, R_squared, minErr, maxErr, and RMSE

model

Model returned by the nlme function

data

Data frame used to estimate the sprint parameters, consisting of athlete, distance, time, and pred_time columns

References

Haugen TA, Tønnessen E, Seiler SK. 2012. The Difference Is in the Start: Impact of Timing and Start Procedure on Sprint Running Performance: Journal of Strength and Conditioning Research 26:473–479. DOI: 10.1519/JSC.0b013e318226030b.

Examples

data("split_times") mixed_model <- mixed_model_using_splits( data = split_times, distance = "distance", time = "time", athlete = "athlete" ) print(mixed_model)
#> Estimated fixed model parameters #> -------------------------------- #> MSS TAU MAC PMAX #> 8.0649112 0.6551988 12.3091052 24.8179600 #> time_correction distance_correction #> 0.0000000 0.0000000 #> #> Estimated random model parameters #> ---------------------------------- #> athlete MSS TAU MAC PMAX time_correction #> 1 James 9.691736 0.8469741 11.44278 27.72510 0 #> 2 Jim 7.833622 0.5048535 15.51663 30.38785 0 #> 3 John 7.780395 0.7274302 10.69573 20.80424 0 #> 4 Kimberley 8.569518 0.8022235 10.68221 22.88535 0 #> 5 Samantha 6.449284 0.3945129 16.34746 26.35735 0 #> distance_correction #> 1 0 #> 2 0 #> 3 0 #> 4 0 #> 5 0 #> #> Model fit estimators #> -------------------- #> RSE R_squared minErr maxErr maxAbsErr RMSE #> 0.02600213 0.99982036 -0.02934519 0.04964582 0.04964582 0.02139178 #> MAE MAPE #> 0.01722581 0.90185579
coef(mixed_model)
#> $fixed #> MSS TAU MAC PMAX #> 8.0649112 0.6551988 12.3091052 24.8179600 #> time_correction distance_correction #> 0.0000000 0.0000000 #> #> $random #> athlete MSS TAU MAC PMAX time_correction #> 1 James 9.691736 0.8469741 11.44278 27.72510 0 #> 2 Jim 7.833622 0.5048535 15.51663 30.38785 0 #> 3 John 7.780395 0.7274302 10.69573 20.80424 0 #> 4 Kimberley 8.569518 0.8022235 10.68221 22.88535 0 #> 5 Samantha 6.449284 0.3945129 16.34746 26.35735 0 #> distance_correction #> 1 0 #> 2 0 #> 3 0 #> 4 0 #> 5 0 #>
plot(mixed_model)
mixed_model <- mixed_model_using_splits_with_time_correction( data = split_times, distance = "distance", time = "time", athlete = "athlete" ) print(mixed_model)
#> Estimated fixed model parameters #> -------------------------------- #> MSS TAU MAC PMAX #> 8.3040140 0.9687348 8.5720197 17.7955429 #> time_correction distance_correction #> 0.1989677 0.0000000 #> #> Estimated random model parameters #> ---------------------------------- #> athlete MSS TAU MAC PMAX time_correction #> 1 James 10.186327 1.2429367 8.195370 20.87018 0.1989677 #> 2 Jim 7.946099 0.7643674 10.395655 20.65123 0.1989677 #> 3 John 7.996262 1.0488272 7.624003 15.24088 0.1989677 #> 4 Kimberley 8.899472 1.1615147 7.661953 17.04683 0.1989677 #> 5 Samantha 6.491911 0.6260282 10.369998 16.83028 0.1989677 #> distance_correction #> 1 0 #> 2 0 #> 3 0 #> 4 0 #> 5 0 #> #> Model fit estimators #> -------------------- #> RSE R_squared minErr maxErr maxAbsErr RMSE #> 0.005976815 0.999990286 -0.016508275 0.009370607 0.016508275 0.004882226 #> MAE MAPE #> 0.003481096 0.186135567
coef(mixed_model)
#> $fixed #> MSS TAU MAC PMAX #> 8.3040140 0.9687348 8.5720197 17.7955429 #> time_correction distance_correction #> 0.1989677 0.0000000 #> #> $random #> athlete MSS TAU MAC PMAX time_correction #> 1 James 10.186327 1.2429367 8.195370 20.87018 0.1989677 #> 2 Jim 7.946099 0.7643674 10.395655 20.65123 0.1989677 #> 3 John 7.996262 1.0488272 7.624003 15.24088 0.1989677 #> 4 Kimberley 8.899472 1.1615147 7.661953 17.04683 0.1989677 #> 5 Samantha 6.491911 0.6260282 10.369998 16.83028 0.1989677 #> distance_correction #> 1 0 #> 2 0 #> 3 0 #> 4 0 #> 5 0 #>
plot(mixed_model)
mixed_model <- mixed_model_using_splits_with_corrections( data = split_times, distance = "distance", time = "time", athlete = "athlete" ) print(mixed_model)
#> Estimated fixed model parameters #> -------------------------------- #> MSS TAU MAC PMAX #> 8.30214146 0.96451514 8.60758021 17.86533713 #> time_correction distance_correction #> 0.19182206 -0.03160813 #> #> Estimated random model parameters #> ---------------------------------- #> athlete MSS TAU MAC PMAX time_correction #> 1 James 10.181185 1.2365903 8.233273 20.95612 0.1918221 #> 2 Jim 7.945162 0.7606548 10.445161 20.74713 0.1918221 #> 3 John 7.995271 1.0449746 7.651163 15.29328 0.1918221 #> 4 Kimberley 8.897262 1.1566801 7.692068 17.10959 0.1918221 #> 5 Samantha 6.491827 0.6236760 10.408973 16.89331 0.1918221 #> distance_correction #> 1 -0.03160813 #> 2 -0.03160813 #> 3 -0.03160813 #> 4 -0.03160813 #> 5 -0.03160813 #> #> Model fit estimators #> -------------------- #> RSE R_squared minErr maxErr maxAbsErr RMSE #> 0.005978968 0.999990279 -0.016518623 0.009421823 0.016518623 0.004883964 #> MAE MAPE #> 0.003494858 0.186774770
coef(mixed_model)
#> $fixed #> MSS TAU MAC PMAX #> 8.30214146 0.96451514 8.60758021 17.86533713 #> time_correction distance_correction #> 0.19182206 -0.03160813 #> #> $random #> athlete MSS TAU MAC PMAX time_correction #> 1 James 10.181185 1.2365903 8.233273 20.95612 0.1918221 #> 2 Jim 7.945162 0.7606548 10.445161 20.74713 0.1918221 #> 3 John 7.995271 1.0449746 7.651163 15.29328 0.1918221 #> 4 Kimberley 8.897262 1.1566801 7.692068 17.10959 0.1918221 #> 5 Samantha 6.491827 0.6236760 10.408973 16.89331 0.1918221 #> distance_correction #> 1 -0.03160813 #> 2 -0.03160813 #> 3 -0.03160813 #> 4 -0.03160813 #> 5 -0.03160813 #>
plot(mixed_model)
#> Warning: Removed 3 row(s) containing missing values (geom_path).