Emax time-course function
temax.Rd
** For version 0.2.3: to ensure positive posterior values, et50 and hill parameters are now modeled on the natural scale using a half-normal prior rather than a symmetrical prior on the exponential scale to improve model stability **
Usage
temax(
pool.emax = "rel",
method.emax = "common",
pool.et50 = "rel",
method.et50 = "common",
pool.hill = NULL,
method.hill = NULL,
p.expon = FALSE
)
Arguments
- pool.emax
Pooling for Emax parameter. Can take
"rel"
or"abs"
(see details).- method.emax
Method for synthesis of Emax parameter. Can take
"common
,"random"
, or be assigned a numeric value (see details).- pool.et50
Pooling for ET50 parameter. Can take
"rel"
or"abs"
(see details).- method.et50
Method for synthesis of ET50 parameter. Can take
"common
,"random"
, or be assigned a numeric value (see details).- pool.hill
Pooling for Hill parameter. Can take
"rel"
or"abs"
(see details).- method.hill
Method for synthesis of Hill parameter. Can take
"common
,"random"
, or be assigned a numeric value (see details).- p.expon
Should parameters that can only take positive values be modeled on the exponential scale (
TRUE
) or should they be assigned a prior that restricts the posterior to positive values (FALSE
)
Details
Emax represents the maximum response.
ET50 represents the time at which 50% of the maximum response is achieved. This can only take positive values and so is modeled on the exponential scale and assigned a symmetrical normal prior Alternatively it can be assigned a normal prior truncated at zero (half-normal) (this will be the default in MBNMAtime version >=0.2.3).
Hill is the Hill parameter, which allows for a sigmoidal function. This can only take positive values and so is modeled on the exponential scale and assigned a symmetrical normal prior Alternatively it can be assigned a normal prior truncated at zero (half-normal) (this will be the default in MBNMAtime version >=0.2.3).
Without Hill parameter: $$\frac{E_{max}\times{x}}{ET_{50}+x}$$
With Hill parameter: $$\frac{E_{max}\times{x^{hill}}}{ET_{50}\times{hill}+x^{hill}}$$
Time-course parameters
Time-course parameters in the model must be specified using a pool
and a method
prefix.
pool
is used to define the approach used for pooling of a given time-course parameter and
can take any of:
Argument | Model specification |
"rel" | Indicates that relative effects should be pooled for this time-course parameter. Relative effects preserve randomisation within included studies, are likely to vary less between studies (only due to effect modification), and allow for testing of consistency between direct and indirect evidence. Pooling follows the general approach for Network Meta-Analysis proposed by Lu and Ades (2004) . |
"abs" | Indicates that study arms should be pooled across the whole network for this time-course parameter independently of assigned treatment to estimate an absolute effect. This implies estimating a single value across the network for this time-course parameter, and may therefore be making strong assumptions of similarity. |
method
is used to define the model used for meta-analysis for a given time-course parameter
and can take any of the following values:
Argument | Model specification |
"common" | Implies that all studies estimate the same true effect (often called a "fixed effect" meta-analysis) |
"random" | Implies that all studies estimate a separate true effect, but that each of these true effects vary randomly around a true mean effect. This approach allows for modelling of between-study heterogeneity. |
numeric() | Assigned a numeric value, indicating that this time-course 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 time-course parameters (e.g. Hill parameters in Emax functions, power parameters in fractional polynomials) to a single value. |
When relative effects are modelled on more than one time-course 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 mb.run()
.
References
Lu G, Ades AE (2004). “Combination of direct and indirect evidence in mixed treatment comparisons.” Stat Med, 23(20), 3105-24. ISSN 0277-6715 (Print) 0277-6715 (Linking), doi:10.1002/sim.1875 , https://pubmed.ncbi.nlm.nih.gov/15449338/.
Examples
# Model without a Hill parameter
temax(pool.emax="rel", method.emax="random", pool.et50="abs", method.et50="common")
#> 'et50' parameters must take positive values.
#> Default half-normal prior restricts posterior to positive values.
#> $name
#> [1] "emax"
#>
#> $fun
#> ~(emax * time)/(et50 + time)
#> <environment: 0x55700462e200>
#>
#> $f
#> function (time, beta.1, beta.2, beta.3, p.expon)
#> {
#> if (p.expon == TRUE) {
#> y <- (beta.1 * (time^exp(beta.3)))/((exp(beta.2)^exp(beta.3)) +
#> (time^exp(beta.3)))
#> }
#> else {
#> y <- (beta.1 * (time^beta.3))/((exp(beta.2)^beta.3) +
#> (time^beta.3))
#> }
#> return(y)
#> }
#> <bytecode: 0x556fff96fb50>
#> <environment: 0x55700462e200>
#>
#> $latex
#> [1] "$\\frac{\\beta_1 \\times x_m}{{\\beta_2} + x_m}$"
#>
#> $params
#> [1] "emax" "et50"
#>
#> $nparam
#> [1] 2
#>
#> $jags
#> [1] "(beta.1[i,k] * time[i,m]) / (beta.2 + time[i,m])"
#>
#> $apool
#> emax et50
#> "rel" "abs"
#>
#> $amethod
#> emax et50
#> "random" "common"
#>
#> $bname
#> emax et50
#> "beta.1" "beta.2"
#>
#> $bpool
#> emax et50
#> "pool.1" "pool.2"
#>
#> $bmethod
#> emax et50
#> "method.1" "method.2"
#>
#> $p.expon
#> [1] FALSE
#>
#> attr(,"class")
#> [1] "timefun"
# Model including a Hill parameter and defaults for Emax and ET50 parameters
temax(pool.hill="abs", method.hill="common")
#> 'et50' parameters must take positive values.
#> Default half-normal prior restricts posterior to positive values.
#> 'hill' parameters must take positive values.
#> Default half-normal prior restricts posterior to positive values.
#> $name
#> [1] "emax"
#>
#> $fun
#> ~(emax * (time^hill))/((et50^hill) + (time^hill))
#> <environment: 0x5570041ca5b8>
#>
#> $f
#> function (time, beta.1, beta.2, beta.3, p.expon)
#> {
#> if (p.expon == TRUE) {
#> y <- (beta.1 * (time^exp(beta.3)))/((exp(beta.2)^exp(beta.3)) +
#> (time^exp(beta.3)))
#> }
#> else {
#> y <- (beta.1 * (time^beta.3))/((exp(beta.2)^beta.3) +
#> (time^beta.3))
#> }
#> return(y)
#> }
#> <bytecode: 0x556fff96fb50>
#> <environment: 0x5570041ca5b8>
#>
#> $latex
#> [1] "$\\frac{\\beta_1 \\times x_m^{\\beta_3}}{{\\beta_2}^{\\beta_3} + x_m^{\\beta_3}}$"
#>
#> $params
#> [1] "emax" "et50" "hill"
#>
#> $nparam
#> [1] 3
#>
#> $jags
#> [1] "(beta.1[i,k] * (abs(time[i,m]) ^ beta.3)) / ((abs(beta.2[i,k]) ^ beta.3) + (abs(time[i,m]) ^ beta.3))"
#>
#> $apool
#> emax et50 hill
#> "rel" "rel" "abs"
#>
#> $amethod
#> emax et50 hill
#> "common" "common" "common"
#>
#> $bname
#> emax et50 hill
#> "beta.1" "beta.2" "beta.3"
#>
#> $bpool
#> emax et50 hill
#> "pool.1" "pool.2" "pool.3"
#>
#> $bmethod
#> emax et50 hill
#> "method.1" "method.2" "method.3"
#>
#> $p.expon
#> [1] FALSE
#>
#> attr(,"class")
#> [1] "timefun"