Logistische Regression BIC: Was ist das richtige N?


7

TL; DR: Welches ist für BIC in der logistischen Regression richtig, das aggregierte Binomial oder Bernoulli ?NN

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):j=5m=100n=500

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 .N

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 .NN

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.

Antworten:


6

Der BIC (und der AIC) sind relative Maße für den Vergleich von Modellen. Es macht jedoch keinen Sinn, das ansonsten gleiche Modell zwischen der Verwendung einer aggregierten und einer disaggregierten Antwort zu vergleichen. Es wäre auch nicht sinnvoll, Modelle zu vergleichen, die ansonsten unterschiedlich wären (z. B. unterschiedliche Regressoren), bei denen jedoch ein Modell eine aggregierte Antwort und das andere Modell eine disaggregierte Version der Antwort verwendet. Solange die beiden verglichenen Modelle die Antwortvariable im selben Format darstellen, ist alles in Ordnung. Beachten Sie, dass die beiden Formate sind letztlich Äquivalent sie die gleichen Informationen enthalten und meist nur anders aussehen auf der Außenseite finden Sie unter : Eingabeformat für die Antwort in binomischen GLM in R .


Nur zur Klarstellung: Ich versuche nicht, g_bern mit g_binom zu vergleichen. Dies ist ein Spielzeugbeispiel. Ich habe eine Anwendung, in der diese Strafe wichtig ist, für welches Modell gewinnt. Es ist also nicht alles in dem Sinne in Ordnung, dass sie nicht gleichwertig sind. Das ist der Punkt. (siehe mein Update)
Salatdressing

1
Dann müssen Sie die tatsächliche Situation beschreiben, mit der Sie konfrontiert sind, und nicht ein anderes Spielzeugbeispiel. XY-Fragen führen oft zu Antworten, die nicht das ansprechen, was der Fragesteller wirklich wissen muss.
Gung - Reinstate Monica

Ich habe ein Update hinzugefügt, das zeigt, dass die Vergleiche mit dem Nur-Intercept-Modell zwischen den Ansätzen inkonsistent sind, da die Anzahl der Beobachtungen unterschiedlich ist. Meine Frage ist, welcher der beiden scheinbar gleichwertigen Ansätze "richtig" ist.
Salatdressing

1
@ Saladdressing, ich folge deinem Update nicht. Wo ist g_bern0zB 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.
Gung - Reinstate Monica

Der Unterschied im BIC zwischen den beiden Vergleichen war eine Größenordnung, die bei einem logarithmischen Wert wie dem BIC sehr groß ist. Und das sollen die gleichen Modelle sein. Trotzdem habe ich den Samen erhöht. Jetzt gibt es eine Vorzeicheninkonsistenz zwischen den beiden BIC-Vergleichen. Ich kann nicht sehen, wie "die beiden Formate letztendlich gleichwertig sind - sie enthalten die gleichen Informationen und sehen von außen meist nur unterschiedlich aus", könnte möglicherweise zutreffen, wenn ein BIC -18 und der andere 1 ist. Dies ist ein erstaunlicher Unterschied.
Salatdressing

3

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:

  1. Wenn Ihr Ziel darin besteht, das beste unter diesen konkurrierenden Modellen für die Vorhersage der Ergebnisvariablen zu finden, wählen Sie das Modell mit dem niedrigsten AIC-Wert aus.
  2. Wenn Ihr Ziel darin besteht, unter diesen konkurrierenden Modellen das "Beste" zu finden, um die Auswirkungen der im Modell enthaltenen Prädiktorvariablen auf die Ergebnisvariable zu verstehen und zu beschreiben, wählen Sie das Modell mit dem niedrigsten BIC-Wert aus.

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.


Bitte beachten Sie mein Update. Nur zur Klarstellung: Ich versuche nicht, g_bern mit g_binom zu vergleichen. Dies ist ein Spielzeugbeispiel.
Salatdressing
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.