suppressPackageStartupMessages({
library(tidyverse)
})
df <- tibble(
group = 0:1,
N = c(25, 25),
events = c(0, 3)
)
# Haldane correction for OR
df |>
mutate(
odds = (events + 0.5) / (N - events + 0.5)
) |>
pull(odds) |>
(\(x) x[2] / x[1])()
#> [1] 7.933333
# Firth's logistic regression
df |>
mutate(N = N - events) |>
pivot_longer(
-group,
names_to = "outcome",
values_to = "N"
) |>
mutate(
outcome = as.integer(outcome == "events")
) |>
logistf::logistf(
outcome ~ group,
data = _,
weights = N,
firth = TRUE
) |>
coef() |>
_[[2]] |>
exp()
#> [1] 7.933333
# Jeffreys prior for beta-binomial model
df |>
mutate(
# posterior parameters
alpha = events + 0.5,
beta = N - events + 0.5,
# posterior mean
mean = alpha / (alpha + beta),
# posterior odds
odds = mean / (1 - mean)
) |>
pull(odds) |>
(\(x) x[2] / x[1])()
#> [1] 7.933333 Post #206
253
Biostatistics on the Table И вот что еще удивительно: априорные распределения Джеффриса имеют непосредственное отношение к фриквентистскому методу, который недавно рассматривали.
Точечные оценки ОШ получаются одинаковыми при использовании поправки Холдейна, регрессии Фирта и апостериорного ОШ при использовании априорного распределения Джеффриса [θ ~ Beta(1/2, 1/2)] в бета-биномиальной модели.
- ❤ 1