The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
See vignette("sclr-math")
for model specification, log-likelihood, scores and second derivatives.
Model fitting is done with a function called sclr
. It is used in the same way as other fitting functions like lm
.
# One-titre fit to included simulated data
fit1 <- sclr(status ~ logHI, one_titre_data)
summary(fit1)
#> Call: status ~ logHI
#>
#> Parameter estimates
#> theta beta_0 beta_logHI
#> -0.03497876 -5.42535734 2.14877741
#>
#> 95% confidence intervals
#> 2.5 % 97.5 %
#> theta -0.1350572 0.06509969
#> beta_0 -6.4417802 -4.40893450
#> beta_logHI 1.8146909 2.48286389
#>
#> Log likelihood: -2469.765
# Two-titre fit to included simulated data
fit2 <- sclr(status ~ logHI + logNI, two_titre_data)
summary(fit2)
#> Call: status ~ logHI + logNI
#>
#> Parameter estimates
#> theta beta_0 beta_logHI beta_logNI
#> -0.1231823 -5.6536038 2.2098460 1.0409995
#>
#> 95% confidence intervals
#> 2.5 % 97.5 %
#> theta -0.2395860 -0.006778714
#> beta_0 -6.6252070 -4.682000650
#> beta_logHI 1.8981507 2.521541191
#> beta_logNI 0.8738325 1.208166538
#>
#> Log likelihood: -1858.46
The predict
method will return the point estimate and a confidence interval of \(\beta_0 + \beta_1X_1 + ... + \beta_kX_k\) where \(k\) is the number of covariates. It will also apply the inverse logit transformation to these estimates and interval bounds to get the point estimate and the interval for the probability of protection on the original scale.
# One-titre fit
preddata1 <- data.frame(logHI = seq(0, 8, length.out = 101))
pred1 <- predict(fit1, preddata1)
head(pred1[, c("logHI", "prot_l", "prot_point", "prot_u")])
#> # A tibble: 6 x 4
#> logHI prot_l prot_point prot_u
#> <dbl> <dbl> <dbl> <dbl>
#> 1 0 0.00159 0.00438 0.0120
#> 2 0.08 0.00194 0.00520 0.0139
#> 3 0.16 0.00236 0.00617 0.0160
#> 4 0.24 0.00288 0.00732 0.0185
#> 5 0.32 0.00351 0.00868 0.0213
#> 6 0.4 0.00427 0.0103 0.0246
# Two-titre fit
preddata2 <- data.frame(logHI = seq(0, 8, length.out = 101), logNI = 1)
pred2 <- predict(fit2, preddata2)
head(pred2[, c("logHI", "logNI", "prot_l", "prot_point", "prot_u")])
#> # A tibble: 6 x 5
#> logHI logNI prot_l prot_point prot_u
#> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 0 1 0.00432 0.00983 0.0222
#> 2 0.08 1 0.00527 0.0117 0.0258
#> 3 0.16 1 0.00643 0.0139 0.0299
#> 4 0.24 1 0.00785 0.0166 0.0347
#> 5 0.32 1 0.00957 0.0197 0.0402
#> 6 0.4 1 0.0117 0.0235 0.0466
To get the estimated titre (and the confidence interval) that corresponds to a particular protection level (eg. 50%), use the get_protection_level
function. Its interface is similar to that of predict
.
protHI1 <- get_protection_level(fit1, "logHI", lvl = 0.5)
print(protHI1)
#> # A tibble: 3 x 3
#> logHI prot_prob est
#> <dbl> <dbl> <chr>
#> 1 2.39 0.5 low bound
#> 2 2.52 0.5 point
#> 3 2.64 0.5 upper bound
prot_lvls2 <- data.frame(logNI = log(c(0.1, 10, 40)))
protHI2 <- get_protection_level(fit2, "logHI", prot_lvls2)
print(protHI2)
#> logNI logHI prot_prob est
#> 1 -2.302585 3.4024635 0.5 low bound
#> 2 2.302585 1.3380153 0.5 low bound
#> 3 3.688879 0.6568784 0.5 low bound
#> 4 -2.302585 3.6430566 0.5 point
#> 5 2.302585 1.4736837 0.5 point
#> 6 3.688879 0.8206373 0.5 point
#> 7 -2.302585 3.8723188 0.5 upper bound
#> 8 2.302585 1.5883861 0.5 upper bound
#> 9 3.688879 0.9605298 0.5 upper bound
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.