FV_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_