# The ‘gfilogisreg’ package

The main function of the ‘gfilogisreg’ package is `gfilogisreg`. It simulates the fiducial distribution of the parameters of a logistic regression model.

To illustrate it, we will consider a logistic dose-response model for inference on the median lethal dose. The median lethal dose (LD50) is the amount of a substance, such as a drug, that is expected to kill half of its users.

The results of LD50 experiments can be modeled using the relation \[ \textrm{logit}(p_i) = \beta_1(x_i - \mu) \] where \(p_i\) is the probability of death at the dose administration \(x_i\), and \(\mu\) is the median lethal dose, i.e. the dosage at which the probability of death is \(0.5\). The \(x_i\) are known while \(\beta_1\) and \(\mu\) are fixed effects that are unknown.

This relation can be written in the form \[ \textrm{logit}(p_i) = \beta_0 + \beta_1 x_i \] with \(\mu = -\beta_0 / \beta_1\).

We will perform the fiducial inference in this model with the following data:

    dat <- data.frame(
      x = c(
        -2, -2, -2, -2, -2,
        -1, -1, -1, -1, -1,
         0,  0,  0,  0,  0,
         1,  1,  1,  1,  1,
         2,  2,  2,  2,  2
      ),
      y = c(
        1, 0, 0, 0, 0,
        1, 1, 1, 0, 0,
        1, 1, 0, 0, 0,
        1, 1, 1, 1, 0,
        1, 1, 1, 1, 1
      )
    )

Let’s go:

    library(gfilogisreg)
    set.seed(666L)
    fidsamples <- gfilogisreg(y ~ x, data = dat, N = 500L)

Here are the fiducial estimates and \(95\%\)-confidence intervals of the parameters \(\beta_0\) and \(\beta_1\):

    gfiSummary(fidsamples)
    #>                  mean    median        lwr      upr
    #> (Intercept) 0.5510683 0.5099083 -0.4386194 1.662866
    #> x           0.9153775 0.8728642  0.2119688 1.944350
    #> attr(,"confidence level")
    #> [1] 0.95

The fiducial estimates are close to the maximum likelihood estimates:

    glm(y ~ x, data = dat, family = binomial())
    #>
    #> Call:  glm(formula = y ~ x, family = binomial(), data = dat)
    #>
    #> Coefficients:
    #> (Intercept)            x
    #>      0.5639       0.9192
    #>
    #> Degrees of Freedom: 24 Total (i.e. Null);  23 Residual
    #> Null Deviance:       33.65
    #> Residual Deviance: 26.22     AIC: 30.22

Now let us draw the fiducial \(95\%\)-confidence interval about our parameter of interest \(\mu\):

    gfiConfInt(~ -`(Intercept)`/x, fidsamples)
    #>       2.5%      97.5%
    #> -2.6565460  0.6644137