dspline.Rd
Used to fit B-splines, natural cubic splines, and piecewise linear splines(Perperoglu et al. 2019) .
dspline(
type = "bs",
knots = 1,
degree = 1,
beta.1 = "rel",
beta.2 = "rel",
beta.3 = "rel",
beta.4 = "rel",
beta.5 = "rel",
beta.6 = "rel"
)
The type of spline. Can take "bs"
(B-spline),
"ns"
(natural cubic spline),
or "ls"
(piecewise linear spline)
The number/location of spline internal knots. If a single number is given it indicates the number of knots (they will be equally spaced across the range of doses for each agent). If a numeric vector is given it indicates the location of the knots.
The degree of the piecewise B-spline polynomial - e.g. degree=1
for linear, degree=2
for quadratic, degree=3
for cubic.
Pooling for the 1st coefficient. Can take "rel"
, "common"
, "random"
or be
assigned a numeric value (see details).
Pooling for the 2nd coefficient. Can take "rel"
, "common"
, "random"
or be
assigned a numeric value (see details).
Pooling for the 3rd coefficient. Can take "rel"
, "common"
, "random"
or be
assigned a numeric value (see details).
Pooling for the 4th coefficient. Can take "rel"
, "common"
, "random"
or be
assigned a numeric value (see details).
Pooling for the 5th coefficient. Can take "rel"
, "common"
, "random"
or be
assigned a numeric value (see details).
Pooling for the 6th coefficient. Can take "rel"
, "common"
, "random"
or be
assigned a numeric value (see details).
An object of class("dosefun")
Argument | Model specification |
"rel" | Implies that relative effects should be pooled for this dose-response parameter separately for each agent in the network. |
"common" | Implies that all agents share the same common effect for this dose-response parameter. |
"random" | Implies that all agents share a similar (exchangeable) effect for this dose-response parameter. This approach allows for modelling of variability between agents. |
numeric() | Assigned a numeric value, indicating that this dose-response parameter should not be estimated from the data but should be assigned the numeric value determined by the user. This can be useful for fixing specific dose-response parameters (e.g. Hill parameters in Emax functions) to a single value. |
When relative effects are modelled on more than one dose-response parameter,
correlation between them is automatically estimated using a vague inverse-Wishart prior.
This prior can be made slightly more informative by specifying the scale matrix omega
and by changing the degrees of freedom of the inverse-Wishart prior
using the priors
argument in mbnma.run()
.
Perperoglu A, Sauerbrei W, Abrahamowicz M, Schmid M (2019). “A review of spline function procedures in R.” BMC Medical Research Methodology, 19(46), 1-16. doi:10.1186/s12874-019-0666-3 .
# Second order B spline with 2 knots and random effects on the 2nd coefficient
dspline(type="bs", knots=2, degree=2,
beta.1="rel", beta.2="rel")
#> $name
#> [1] "bs"
#>
#> $fun
#> ~beta.1 * spline.1 + beta.2 * spline.2 + beta.3 * spline.3 +
#> beta.4 * spline.4
#> <environment: 0x55e2699242b0>
#>
#> $params
#> [1] "beta.1" "beta.2" "beta.3" "beta.4"
#>
#> $nparam
#> [1] 4
#>
#> $knots
#> $knots[[1]]
#> [1] 2
#>
#>
#> $degree
#> [1] 2
#>
#> $jags
#> [1] "s.beta.1[agent[i,k]] * spline[i,k,1] + s.beta.2[agent[i,k]] * spline[i,k,2] + s.beta.3[agent[i,k]] * spline[i,k,3] + s.beta.4[agent[i,k]] * spline[i,k,4]"
#>
#> $apool
#> beta.1 beta.2 beta.3 beta.4
#> "rel" "rel" "rel" "rel"
#>
#> $bname
#> beta.1 beta.2 beta.3 beta.4
#> "beta.1" "beta.2" "beta.3" "beta.4"
#>
#> attr(,"class")
#> [1] "dosefun"
# Piecewise linear spline with knots at 0.1 and 0.5 quantiles
# Single parameter independent of treatment estimated for 1st coefficient
#with random effects
dspline(type="ls", knots=c(0.1,0.5),
beta.1="random", beta.2="rel")
#> $name
#> [1] "ls"
#>
#> $fun
#> ~beta.1 * spline.1 + beta.2 * spline.2 + beta.3 * spline.3
#> <environment: 0x55e26ad4c970>
#>
#> $params
#> [1] "beta.1" "beta.2" "beta.3"
#>
#> $nparam
#> [1] 3
#>
#> $knots
#> $knots[[1]]
#> [1] 0.1 0.5
#>
#>
#> $degree
#> [1] 1
#>
#> $jags
#> [1] "s.beta.1[agent[i,k]] * spline[i,k,1] + s.beta.2[agent[i,k]] * spline[i,k,2] + s.beta.3[agent[i,k]] * spline[i,k,3]"
#>
#> $apool
#> beta.1 beta.2 beta.3
#> "random" "rel" "rel"
#>
#> $bname
#> beta.1 beta.2 beta.3
#> "beta.1" "beta.2" "beta.3"
#>
#> attr(,"class")
#> [1] "dosefun"