TL; DR: Welches ist für BIC in der logistischen Regression richtig, das aggregierte Binomial oder Bernoulli ?
UPDATES UNTEN
Angenommen, ich habe einen Datensatz, auf den ich die logistische Regression anwenden möchte. Nehmen wir zum Beispiel an, es gibt Gruppen mit jeweils Teilnehmern, also insgesamt . Das Ergebnis ist 0 oder 1. Zum Beispiel der folgende Datensatz (R-Code):
library(dplyr)
library(tidyr)
set.seed(45)
d <- tibble(y = rbinom(500, 1, .5),
x = factor(rep(LETTERS[1:5], each = 100)))
Es gibt zwei Möglichkeiten, wie ich dies darstellen kann: wie oben, jede Beobachtung als Bernoulli-Zufallsvariable zu behandeln oder Beobachtungen innerhalb von Gruppen zu aggregieren und jede Beobachtung als Binomial zu behandeln. Die Anzahl der Zeilen im Datensatz beträgt in der ersten Instanz 500 und in der zweiten 5.
Ich kann den aggregierten Datensatz erstellen:
d %>%
group_by(x, y) %>%
summarise(n = n()) %>%
spread(y, n) %>%
rename(f = `0`, s = `1`) %>%
mutate(n = s + f) -> d_agg
Ich kann dann die logistische Regression unter Verwendung beider Datensätze in R anpassen:
g_bern <- glm(y ~ x, data=d, family=binomial)
g_binom <- glm(cbind(s,f) ~ x, data=d_agg, family=binomial)
UPDATE 2: Wir passen jetzt nur die Intercept-Modelle an:
g_bern0 <- glm(y ~ 1, data=d, family=binomial)
g_binom0 <- glm(cbind(s,f) ~ 1, data=d_agg, family=binomial)
und berechnen Sie den AIC:
> AIC(g_bern)
# [1] 694.6011
> AIC(g_binom)
# [1] 35.22172
die sich natürlich durch eine Konstante unterscheiden
2*sum(lchoose(d_agg$n, d_agg$s)) # [1] 659.3794
wie erwartet (siehe: Logistische Regression: Bernoulli vs. Binomial Response Variables ).
Die BICs unterscheiden sich jedoch durch diese Konstante UND einen Faktor, der von der "Anzahl der Beobachtungen" abhängt, und die Anzahl der Beobachtungen unterscheidet sich in jedem:
> BIC(g_bern)
# [1] 715.6742
> BIC(g_binom)
# [1] 33.26891
> nobs(g_bern)
# [1] 500
> nobs(g_binom)
# [1] 5
Zur Bestätigung können wir den BIC für beide neu berechnen:
> -2*logLik(g_bern) + attr(logLik(g_bern),"df")*log(nobs(g_bern))
# 'log Lik.' 715.6742 (df=5)
> -2*logLik(g_binom) + attr(logLik(g_binom),"df")*log(nobs(g_binom))
# 'log Lik.' 33.26891 (df=5)
und in der Tat der einzige Ort , diese beiden Zahlen unterscheiden .
UPDATE 2: Wenn wir versuchen, den Faktor zu bewerten x
, sehen wir eine Meinungsverschiedenheit, die NUR auf die Anzahl der Beobachtungen zurückzuführen ist:
> BIC(g_bern0) - BIC(g_bern)
# [1] -17.66498
> BIC(g_binom0) - BIC(g_binom)
# [1] 0.7556999
UPDATE 2: Wie erwartet sind die AICs konsistent:
> AIC(g_bern0) - AIC(g_bern)
# [1] -0.8065485
> AIC(g_binom0) - AIC(g_binom)
# [1] -0.8065485
Dies überrascht mich, da ich denken würde, dass R "wissen" würde, welche der beiden verwendet werden soll, um Mehrdeutigkeiten zu vermeiden. Es hat in beiden Fällen die gleichen Informationen.
Welcher ist richtig"? Oder ist BIC wirklich so willkürlich?
UPDATE: Ich versuche nicht, den Bernoulli mit dem Binomial-Modell zu vergleichen. Dies ist nur ein Spielzeugbeispiel. Ich habe eine Reihe von Vergleichen, bei denen es darauf ankommt, welches Setup ich verwende, da die Strafen für unterschiedlich sind. Ich habe zwei Sätze von Modellvergleichen und die siegreichen Modelländerungen basierend auf der Strafe, obwohl dies für mich die gleichen Sätze von Modellen zu sein scheinen .
UPDATES 2 und 3: Die Vergleiche wurden zum Nur-Intercept-Modell hinzugefügt und der zufällige Startwert geändert, um einen Vorzeichenunterschied im BIC zu erhalten.
quelle
g_bern0
zB definiert? Wenn die Idee ist, dass es sich um ein Nur-Abfangen-Modell handeln sollte, sehe ich kein Problem. Die tatsächlichen Zahlen des BIC spielen keine Rolle. Es ist nur ein relatives Maß. In beiden Fällen (dh ,,g_bern0
&g_binom0
) ist der Unterschied negativ, was die gleiche Präferenz impliziert (für das Nur-Intercept-Modell). Es gibt keine Inkonsistenz.Interessante Frage! Ich denke, Sie müssen sich daran erinnern, dass sowohl BIC als auch AIC ein Maß für die relative Modellanpassung sind.
Mit anderen Worten, diese Kennzahlen sagen nicht viel aus, wenn Sie sie für ein einzelnes Modell untersuchen, können Ihnen jedoch bei der Auswahl eines geeigneten Modells aus einer Reihe konkurrierender Modelle helfen. Bestimmtes:
Bei der Definition Ihrer konkurrierenden Modelle müssten Sie sicherstellen, dass die Modelle demselben konzeptionellen Rahmen folgen. Sie würden also entweder mehrere binomiale logistische Regressionsmodelle oder mehrere binäre logistische Modelle vergleichen, aber keine Mischung aus beiden. (Es ist wichtig, Gleiches mit Gleichem zu vergleichen, sonst wissen Sie nicht, ob ein Modell den Wettbewerb aufgrund seiner eigenen Vorzüge gewonnen hat oder einfach, weil Sie die Modellspezifikation / das Anpassungsverfahren geändert haben.)
Aus dieser Perspektive ist das einzige, was zählt, dass R konsistent ist, wenn der AIC und der BIC über Modelle des gleichen Typs (z. B. binomiale logistische Regressionsmodelle) berechnet werden.
Zur Verdeutlichung: g_bern ist ein binäres logistisches Regressionsmodell, während g_binom ein binomiales logistisches Regressionsmodell ist. Während beide die Erfolgswahrscheinlichkeit in einem Versuch modellieren, würden Sie bei der Definition Ihrer Gruppe konkurrierender Modelle (aus den oben erläuterten und auch von @gung abgedeckten Gründen) keine Variationen dieser Modelle miteinander mischen.
quelle