FP | R Documentation |
Fractional polynomials transformation for continuous covariates.
FP(x, p = c(-2, -1, -0.5, 0.5, 1, 2, 3), scaling = TRUE)
x |
a numeric vector. |
p |
all powers of |
scaling |
a logical indicating if the measurements are scaled prior to model fitting. |
A fractional polynomial refers to a model
\sum_{j = 1}^k (\beta_j x^{p_j} + \gamma_j x^{p_j} \log(x)) +
\beta_{k + 1} \log(x) + \gamma_{k + 1} \log(x)^2
,
where the degree of the fractional polynomial is the number of non-zero regression coefficients
\beta
and \gamma
.
A matrix including all powers p
of x
,
all powers p
of log(x)
, and log(x)
.
Willi Sauerbrei and Patrick Royston (1999), Building multivariable prognostic and diagnostic models: transformation of the predictors by using fractional polynomials. Journal of the Royal Statistical Society A, 162, 71–94.
gamboost
to fit smooth models, bbs
for P-spline base-learners
data("bodyfat", package = "TH.data")
tbodyfat <- bodyfat
### map covariates into [1, 2]
indep <- names(tbodyfat)[-2]
tbodyfat[indep] <- lapply(bodyfat[indep], function(x) {
x <- x - min(x)
x / max(x) + 1
})
### generate formula
fpfm <- as.formula(paste("DEXfat ~ ",
paste("FP(", indep, ", scaling = FALSE)", collapse = "+")))
fpfm
### fit linear model
bf_fp <- glmboost(fpfm, data = tbodyfat,
control = boost_control(mstop = 3000))
### when to stop
mstop(aic <- AIC(bf_fp))
plot(aic)
### coefficients
cf <- coef(bf_fp[mstop(aic)])
length(cf)
cf[abs(cf) > 0]
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.