By default, target variable is the reps performed, while the predictors is the perc_1RM or weight. To reverse this, use the reverse = TRUE argument

## Usage

estimate_k(perc_1RM, reps, eRIR = 0, reverse = FALSE, weighted = "none", ...)

estimate_k_1RM(weight, reps, eRIR = 0, reverse = FALSE, weighted = "none", ...)

estimate_kmod(
perc_1RM,
reps,
eRIR = 0,
reverse = FALSE,
weighted = "none",
...
)

estimate_kmod_1RM(
weight,
reps,
eRIR = 0,
reverse = FALSE,
weighted = "none",
...
)

estimate_klin(
perc_1RM,
reps,
eRIR = 0,
reverse = FALSE,
weighted = "none",
...
)

estimate_klin_1RM(
weight,
reps,
eRIR = 0,
reverse = FALSE,
weighted = "none",
...
)

get_predicted_1RM_from_k_model(model)

## Arguments

perc_1RM

%1RM

reps

Number of repetitions done

eRIR

Subjective estimation of reps-in-reserve (eRIR)

reverse

Logical, default is FALSE. Should reps be used as predictor instead as a target?

weighted

What weighting should be used for the non-linear regression? Default is "none". Other options include: "reps" (for 1/reps weighting), "load" (for using weight or %1RM), "eRIR" (for 1/(eRIR+1) weighting), "reps x load", "reps x eRIR", "load x eRIR", and "reps x load x eRIR"

...

Forwarded to nls function

weight

Weight used

model

Object returned from the estimate_k_1RM function

## Value

nls object

## Functions

• estimate_k(): Estimate the parameter k in the Epley's equation

• estimate_k_1RM(): Estimate the parameter k in the Epley's equation, as well as 1RM. This is a novel estimation function that uses the absolute weights.

• estimate_kmod(): Estimate the parameter kmod in the modified Epley's equation

• estimate_kmod_1RM(): Estimate the parameter kmod in the modified Epley's equation, as well as 1RM. This is a novel estimation function that uses the absolute weights

• estimate_klin(): Estimate the parameter klin using the Linear/Brzycki model

• estimate_klin_1RM(): Estimate the parameter klin in the Linear/Brzycki equation, as well as 1RM. This is a novel estimation function that uses the absolute weights

• get_predicted_1RM_from_k_model(): Estimate the 1RM from estimate_k_1RM function

The problem with Epley's estimation model (implemented in estimate_k_1RM function) is that it predicts the 1RM when nRM = 0. Thus, the estimated parameter in the model produced by the estimate_k_1RM function is not 1RM, but 0RM. This function calculates the weight at nRM = 1 for both the normal and reverse model. See Examples for code

## Examples

# ---------------------------------------------------------
# Epley's model
m1 <- estimate_k(
perc_1RM = c(0.7, 0.8, 0.9),
reps = c(10, 5, 3)
)

coef(m1)
#>          k
#> 0.04404789
# ---------------------------------------------------------
# Epley's model that also estimates 1RM
m1 <- estimate_k_1RM(
weight = c(70, 110, 140),
reps = c(10, 5, 3)
)

coef(m1)
#>           k         0RM
#>   0.2542595 248.2568808
# ---------------------------------------------------------
# Modified Epley's model
m1 <- estimate_kmod(
perc_1RM = c(0.7, 0.8, 0.9),
reps = c(10, 5, 3)
)

coef(m1)
#>       kmod
#> 0.05089595
# ---------------------------------------------------------
# Modified Epley's model that also estimates 1RM
m1 <- estimate_kmod_1RM(
weight = c(70, 110, 140),
reps = c(10, 5, 3)
)

coef(m1)
#>        kmod         1RM
#>   0.2027168 197.9310353
# ---------------------------------------------------------
# Linear/Brzycki model
m1 <- estimate_klin(
perc_1RM = c(0.7, 0.8, 0.9),
reps = c(10, 5, 3)
)

coef(m1)
#>     klin
#> 26.42857
# ---------------------------------------------------------
# Linear/Brzycki model thal also estimates 1RM
m1 <- estimate_klin_1RM(
weight = c(70, 110, 140),
reps = c(10, 5, 3)
)

coef(m1)
#>      klin       1RM
#>  15.81081 156.00000
# ---------------------------------------------------------
# Estimating 1RM from Epley's model
m1 <- estimate_k_1RM(150 * c(0.9, 0.8, 0.7), c(3, 6, 12))
m2 <- estimate_k_1RM(150 * c(0.9, 0.8, 0.7), c(3, 6, 12), reverse = TRUE)

# Estimated 0RM values from both model
c(coef(m1)[], coef(m2)[])
#>  0.03433858 0.03518712

# But these are not 1RMs!!!
# Using the "reverse" model, where nRM is the predictor (in this case m2)
# makes it easier to predict 1RM
predict(m2, newdata = data.frame(nRM = 1))
#>  142.9047

# But for the normal model it involve reversing the formula
# To spare you from the math pain, use this
get_predicted_1RM_from_k_model(m1)
#>  142.3961

# It also works for the "reverse" model
get_predicted_1RM_from_k_model(m2)
#>  142.9047