inertia
(mass; in kg) and resistance
(force; in Newtons) to predict_force_
, predict_power_
, predict_relative_power_
, as well as predict_kinematics()
functions. This increases the ability of the {shorts} package to deal with external resistance, like weight vest, sled, and tether devices.predict_kinematics()
function to include inertia
(mass; in kg) and resistance
(force; in Newtons) parameters, as well as to allow the user to either provide the shorts_model
object, or provide MSS
and MAC
parameters. Additional parameter add_inertia_to_vertical
to allow user to decided whether inertia should be added to bodymass
when calculating vertical force.predict_force_at_velocity()
functionfind_max_power_
and find_power_critial_
function to add support for the inertia
(mass; in kg) and resistance
(force; in Newtons) parametersmake_FV_profile()
function and added support for the inertia
(mass; in kg) and resistance
(force; in Newtons) parameters. Removed the S3 print and plot methods, as well as the class type involving this functionconvert_FV()
function available for the users and added support for the inertia
(mass; in kg) and resistance
(force; in Newtons) parameterspredict_time_at_distance_FV()
function to use simpler convert_FV()
functionfind_max_power
functions to find_peak_power
to avoid confusion between Pmax
and Ppeak
inertia
(mass; in kg) and resistance
(force; in Newtons) to optimal_FV()
functioninertia
(mass; in kg) and resistance
(force; in Newtons) to probe_FV()
functionmodel_tether_DC()
function with an additional distance correction
(DC) parameter estimate. DC parameter serves as an intercept when distance doesn’t start at zerouse_observed_MSS
parameter to model_radar_gun()
and model_tether()
functions. This allows user to estimate MSS
parameter from the observed dataFD
parameter to model_timing_gates_FD()
and model_timing_gates_FD_TC()
functions, which allow user to provide fixed FD
parameter value.predict()
function not to return fitted values, but to use generic predict method on the object. This allows user to use newdata
parameter. Added fitted()
method to return fitted values insteadFV_slope_perc
to profile_imb
in the output of the optimal_
functionsfind_optimal_FV()
and find_optimal_FV_peak()
are now wrapped inside the optimal_FV
, but the method is selected using method
parameter (“max” for find_optimal_FV()
and “peak” for find_optimal_FV_peak()
). Please refer to examplesoptimal_
functions and moved to probe_FV()
and probe_MSS_MAC()
functions. Please refer to examplesfind_optimal_distance()
function that can take other optimal and probe functions as parameter. Please refer to examplesfind_optimal_FV_peak()
(now implemented in find_optimal_FV()
function using method="peak"
parameter) where information needed to calculate air resistance was not forwardedfind_optimal_MSS_MAC()
and find_optimal_FV()
functions. Some of the columns are renamed to better clarityconvert_FV()
to convert from FV profile to sprint profile. This is used to calculate Peak Power (Ppeak
) metric and its locationmin_func
parameter to find_optimal_MSS_MAC_distance()
and find_optimal_FV_distance()
. This allows to optimize by using any other metricfind_optimal_FV_peak()
function, which optimize the profile while keeping the Peak Power the same. Accompanying find_optimal_FV_peak_distance()
is also addedformat_splits()
model_tether()
function for modeling data output from tether devices, which involve velocity at distancePmax_relative
to Pmax_rel
in the output of the make_FV_profile()
functionF0_poly
, F0_poly_rel
, V0_poly
, Pmax_poly
, Pmax_poly_rel
, and FV_slope_poly
to the output of the make_FV_profile()
function using the method outlined in Pierre Samozino and Nicolas Peyror, et al (2021) <doi: 10.1111/sms.14097>predict_time_at_distance_FV()
which uses FV profile’s F0
and V0
to predict time at distance. For more info see Pierre Samozino and Nicolas Peyror, et al (2021) <doi: 10.1111/sms.14097>find_optimal_MSS_MAC()
, find_optimal_MSS_MAC_distance()
, find_optimal_FV()
, find_optimal_FV_distance()
. For more info on the FV optimization see Pierre Samozino and Nicolas Peyror, et al (2021) <doi: 10.1111/sms.14097>This is NEW version of the {shorts} package INCOMPATIBLE with the previous due to drastic changes in functions. Here are the changes utilized:
predict_
functions, time_correction
and distance_correction
are no longer used, since due to novel models of estimation, it is hard to neatly implement them into functions. Now the predict_
functions predict on a scale where sprint starts at t=0
and d=0
, rather than on the original (data) scale. This will also remove the confusion for the user.predict_
functions, the user now uses MSS
and MAC
parametersstats::nls()
to minpack.lm::nlsLM()
in model_
functions. This is done to avoid “singular gradient” error and inability of the stats::nls()
to estimate when there are zero residuals. Please make note that now when you use ...
in model_
function, it will be forwarded to minpack.lm::nlsLM()
. If you have been using control = stats::nls.control(warnOnly = TRUE)
to avoid stats::nls()
to throw error when fitting when there are zero residuals, now you can remove it. If needed use control = minpack.lm::nls.lm.control()
instead.create_timing_gates_splits()
function to generate timing gates splitsmodel_timing_gates()
, model_timing_gates_TC()
, model_timing_gates_FD()
, and model_timing_gates_FD_TC()
. All other functions have been removedmodel_radar_gun()
which also estimates time correction (TC
) parameter.model_radar_gun()
feature n-folds cross-validation, as opposed to model_timing_gates()
family of functions, which features leave-one-out cross-validation (LOOCV) due to small number of observations. Using the CV
parameter, set n-fold cross-validations for the model_radar_gun()
function.LOOCV
in the shorts_model
object to CV
to reflect above changes in model_radar_gun()
functionmodel_using_splits_with_distance_correction()
function the predict_XXX_at_distance()
family of functions doesn’t work correctly if distance_correction
is used as parameter (i.e., different than zero). This is because the model definition is completely different, and predicting on the same distance scale is not possible. Please refer to Jovanović, M., Vescovi, J.D. (2020) for more information.plot.shorts_fv_profile()
functionresiduals()
S3 method, as well as with internal function shorts_model_fit()
that provides model fit estimates (i.e. RMSE, MAE, MAPE)model_using_splits_with_distance_correction()
function that implements novel model definition to estimate flying start distancemixed_model_using_splits_with_distance_correction()
function that implements novel model definition to estimate flying start distanceggplot2
and tidyr
package dependency and implemented it in S3 plotting functionsget_FV_profile
now return a object class shorts_fv_profile
shorts_fv_profile
objectforce
and relative_force
to horizontal_force
and relative_horizontal_force
in the shorts_fv_profile
object and data frame returned by the predict_kinematics
acceleration
, bodymass
, net_horizontal_force
, air_resistance
, and vertical_force
, resultant_force_relative
, power
, and force_angle
in the shorts_fv_profile
object and data frame returned by the predict_kinematics
shorts_model
and shorts_mixed_model
objectsAdded sample radar gun data from Jean-Benoît Morin Microsoft Excel spreadsheet, freely available at his website (accessed October 27, 2020)). For more information ?jb_morin
Added get_FV_profile
for generating Force-Velocity profile summary using Pierre Samozino and Jean-Benoît Morin method (for more DOI:10.1111/sms.12490)
get_air_resistance
function to estimate air resistance in newtonspredict_air_resistance_at_time
and predict_air_resistance_at_time
functionspredict_force_at_time
and predict_force_at_distance
functionspredict_power_at_time
and predict_power_at_distance
functionspredict_relative_power_at_distance
and predict_relative_power_at_time
use air resistance to do the calculations. The default bodymass is 75kg. To replicate earlier function behavior, use predict_velocity_at_
multiplied by predict_acceleration_at_
to get relative power without air resistancepredict_kinematics
now uses aforementioned changes in predict_relative_power_
functions, and added force and air resistance in the outputfind_max_power_distance
and find_power_critical_distance
now uses aforementioned changes and returns absolute power, rather than relative, and air resistance is used in the power calculationsfind_max_power_time
, find_velocity_critical_time
, find_acceleration_critical_time
, and find_power_critical_time
functionsmodel_using_radar_with_time_correction
where time_correction parameter is estimatedmixed_model_using_radar_with_time_correction
where time_correction parameter is estimateddata("vescovi")
). For more info see ?vescovi
time_correction
and distance_correction
to all model parameters output to align thempredict_kinematics
function that predicts 0-6s distance (100Hz), velocity, acceleration, and relative powerprint
, coef
, summary
, predict
, and residuals
methodsrandom
parameter to mixed_
family of functions to allow higher flexibility in model definitions, but removed corrections_as_random_effects
parameter. The default behavious is to use all parameters as random effects....
to model_using_radar
and mixed_model_using_radar
to be forwarded to nlme::nlme
sprint-corrections
vignette by adding a short simulation studytime_delay
to time_correction
in shorts::model_using_instant_velocity
and shorts::mixed_model_using_instant_velocity
functions to be more consistent across functions. Also, this correction is added to time, so use negative numbers insteadtime_correction
in shorts::mixed_model_using_instant_velocity
and shorts::mixed_model_using_split_times
is now numeric vector, not column nametime_correction
in shorts::model_using_split_times
and shorts::mixed_model_using_split_times
time_correction
in shorts:predict_
family of functionsdistance_correction
in shorts:predict_
family of functionstime_correction
in shorts::model_using_split_times_with_time_correction
and shorts::mixed_model_using_split_times_with_time_correction
distance_correction
in shorts::model_using_split_times_with_corrections
and shorts::mixed_model_using_split_times_with_corrections
shorts::mixed_model_
functionsmaxAbsErr
from model_fit elementfind_
family of functions for finding max power and critical distance when velocity or acceleration reaches certain threshold...
to all modeling functions so that extra parameters can be forwarded to the optimization enginesplit_times
recreated using distance shift behind the first timing gate. Needed to demo mixed models with corrections_model_using_instant_velocity
to _model_using_radar
_model_using_split_times_
to _model_using_splits_