dlnm (version 2.3.9)

thr: Generate a Basis Matrix of Linear Threshold Transformations

Description

The function generates a basis matrix including transformed variables through high, low or double linear threshold parameterization. It is meant to be used internally by onebasis and crossbasis and not directly run by the users.

Usage

thr(x, thr.value=NULL, side=NULL, intercept=FALSE)

Arguments

x

the predictor variable. Missing values are allowed.

thr.value

numeric scalar or vector defining the threshold value(s).

side

type of threshold parameterization: "l" for low, "h" for high, "d" for double. See Details below.

intercept

logical. If TRUE, an intercept is included in the basis matrix. See Details below.

Value

A matrix object of class "thr". It contains the attributes thr.value, side and intercept, with values which can be different than the arguments provided due to internal reset.

Details

A linear threshold function defines a linear relationship beyond a specific threshold. A high linear threshold defines a linear increase above the threshold, while a low linear threshold defines a linear increase below. A double linear threshold includes both of them.

The argument thr.value is placed at the median if not provided. If side is not provided, the default is side="h" when thr.value is a scalar, side="d" otherwise. Only the minimum (for side="h" and side="l") and minimum and maximum values (for side="d") of thr.value are considered.

If intercept=TRUE, an intercept is included in the model, namely an additional variable with a constant value of 1.

See Also

onebasis to generate basis matrices and crossbasis to generate cross-basis matrices.

See dlnm-package for an introduction to the package and for links to package vignettes providing more detailed information.

Examples

Run this code
# NOT RUN {
### simple use (accessing non-exported function through ':::')
dlnm:::thr(1:5, thr=3)
dlnm:::thr(1:5, side="d")
dlnm:::thr(1:5, side="d", intercept=TRUE)

### use as an internal function in onebasis
b <- onebasis(chicagoNMMAPS$pm10, "thr", thr.value=20)
summary(b)
model <- glm(death ~ b, family=quasipoisson(), chicagoNMMAPS)
pred <- crosspred(b, model, at=0:60)
plot(pred, xlab="PM10", ylab="RR", main="RR for PM10")
# }

Run the code above in your browser using DataLab