Suppose we wanted to produce confidence distributions for data with binary outcomes and where we employ a logistic regression, we would do the following. Here, I use the mtcars dataset for the example and also simulate some very simple binary data. We use suppressMessages() to avoid seeing the long list of profiling messages.

library(concurve)
## Please see the documentation on https://data.lesslikely.com/concurve/ or by typing help(concurve)
X <- rnorm(100, mean = 0, sd = 1)
Y <- rbinom(n = 100, size = 1, prob = 0.5)

mydata1 <- data.frame(X, Y)

model1 <- glm(Y ~ X,
data = mydata1,

model2 <- glm(am ~ mpg, family = binomial(link = "logit"), data = mtcars)

summary(model1)
##
## Call:
## glm(formula = Y ~ X, family = binomial(link = "logit"), data = mydata1)
##
## Deviance Residuals:
##    Min      1Q  Median      3Q     Max
## -1.459  -1.136  -0.889   1.167   1.497
##
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.02064    0.20301  -0.102    0.919
## X            0.35394    0.22524   1.571    0.116
##
## (Dispersion parameter for binomial family taken to be 1)
##
##     Null deviance: 138.59  on 99  degrees of freedom
## Residual deviance: 136.02  on 98  degrees of freedom
## AIC: 140.02
##
## Number of Fisher Scoring iterations: 4
summary(model2)
##
## Call:
## glm(formula = am ~ mpg, family = binomial(link = "logit"), data = mtcars)
##
## Deviance Residuals:
##     Min       1Q   Median       3Q      Max
## -1.5701  -0.7531  -0.4245   0.5866   2.0617
##
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)
## (Intercept)  -6.6035     2.3514  -2.808  0.00498 **
## mpg           0.3070     0.1148   2.673  0.00751 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
##     Null deviance: 43.230  on 31  degrees of freedom
## Residual deviance: 29.675  on 30  degrees of freedom
## AIC: 33.675
##
## Number of Fisher Scoring iterations: 5
model_pro <- suppressMessages(curve_gen(
model = model1,
var = "X",
method = "glm",
log = T,
steps = 1000,
table = TRUE))

model_con <- suppressMessages(curve_gen(
model = model2,
var = "mpg",
method = "glm",
log = T,
steps = 1000,
table = TRUE))

head(model_con[[1]], 10)
##    lower.limit upper.limit intrvl.width intrvl.level    cdf pvalue      svalue
## 1     1.359192    1.359581 0.0003887775        0.001 0.5005  0.999 0.001443417
## 2     1.358998    1.359776 0.0007775530        0.002 0.5010  0.998 0.002888279
## 3     1.358804    1.359970 0.0011663270        0.003 0.5015  0.997 0.004334590
## 4     1.358609    1.360164 0.0015551002        0.004 0.5020  0.996 0.005782353
## 5     1.358415    1.360359 0.0019438731        0.005 0.5025  0.995 0.007231569
## 6     1.358221    1.360556 0.0023349563        0.006 0.5030  0.994 0.008682243
## 7     1.358027    1.360754 0.0027268373        0.007 0.5035  0.993 0.010134377
## 8     1.357833    1.360951 0.0031187240        0.008 0.5040  0.992 0.011587974
## 9     1.357638    1.361149 0.0035106173        0.009 0.5045  0.991 0.013043037
## 10    1.357444    1.361347 0.0039025176        0.010 0.5050  0.990 0.014499570
(ggcurve(model_con[[1]],
measure = "ratio",
type = "c",
nullvalue = c(0.8, 1.2), title = "Confidence Curve",
subtitle = "The function displays intervals at every level.",
xaxis = expression(theta == ~"Range of Values"),
yaxis1 = expression(paste(italic(p), "-value")),
yaxis2 = "Levels for CI (%)"))

(ggcurve(model_pro[[1]],
measure = "ratio",
type = "c",
nullvalue = c(0.8, 1.2), title = "Confidence Curve",
subtitle = "The function displays intervals at every level.",
xaxis = expression(theta == ~"Range of Values"),
yaxis1 = expression(paste(italic(p), "-value")),
yaxis2 = "Levels for CI (%)"))

(ggcurve(model_con[[2]],
measure = "ratio",
type = "cdf",
nullvalue = c(0.8, 1.2), title = "Confidence Distribution",
subtitle = "The function displays intervals at every level.",
xaxis = expression(theta == ~"Range of Values"),
yaxis1 = expression(paste(italic(p), "-value")),
yaxis2 = "Levels for CI (%)"))

(ggcurve(model_pro[[2]],
measure = "ratio",
type = "cdf",
nullvalue = c(0.8, 1.2), title = "Confidence Distribution",
subtitle = "The function displays intervals at every level.",
xaxis = expression(theta == ~"Range of Values"),
yaxis1 = expression(paste(italic(p), "-value")),
yaxis2 = "Levels for CI (%)"))

(ggcurve(model_con[[2]],
measure = "ratio",
type = "cd",
nullvalue = NULL, title = "Confidence Density",
subtitle = "The function displays intervals at every level.",
xaxis = expression(theta == ~"Range of Values"),
yaxis1 = expression(paste(italic(p), "-value")),
yaxis2 = "Levels for CI (%)"))

(ggcurve(model_pro[[2]],
measure = "ratio",
type = "cd",
nullvalue = NULL, title = "Confidence Density",
subtitle = "The function displays intervals at every level.",
xaxis = expression(theta == ~"Range of Values"),
yaxis1 = expression(paste(italic(p), "-value")),
yaxis2 = "Levels for CI (%)"))

# Cite R Packages

Please remember to cite the R packages that you use in your work.

citation("concurve")
##
## Rafi Z, Vigotsky A (2020). _concurve: Computes and Plots Compatibility
## (Confidence) Intervals, P-Values, S-Values, & Likelihood Intervals to
## Form Consonance, Surprisal, & Likelihood Functions_. R package version
## 2.7.7, <URL: https://CRAN.R-project.org/package=concurve>.
##
## Rafi Z, Greenland S (2020). "Semantic and Cognitive Tools to Aid
## Statistical Science: Replace Confidence and Significance by
## Compatibility and Surprise." _BMC Medical Research Methodology_, *20*,
## 244. ISSN 1471-2288, doi: 10.1186/s12874-020-01105-9 (URL:
## https://doi.org/10.1186/s12874-020-01105-9), <URL:
## https://doi.org/10.1186/s12874-020-01105-9>.
##
## To see these entries in BibTeX format, use 'print(<citation>,
## bibtex=TRUE)', 'toBibtex(.)', or set
## 'options(citation.bibtex.max=999)'.
citation("cowplot")
##
## To cite package 'cowplot' in publications use:
##
##   Claus O. Wilke (2020). cowplot: Streamlined Plot Theme and Plot
##   Annotations for 'ggplot2'. R package version 1.1.0.
##   https://CRAN.R-project.org/package=cowplot
##
## A BibTeX entry for LaTeX users is
##
##   @Manual{,
##     title = {cowplot: Streamlined Plot Theme and Plot Annotations for 'ggplot2'},
##     author = {Claus O. Wilke},
##     year = {2020},
##     note = {R package version 1.1.0},
##     url = {https://CRAN.R-project.org/package=cowplot},
##   }