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_