Wie gehe ich mit perfekter Trennung in der logistischen Regression um?

163

Wenn Sie eine Variable haben, die Nullen und Einsen in der Zielvariablen perfekt trennt, gibt R die folgende Warnmeldung "perfekte oder quasi perfekte Trennung" aus:

Warning message:
glm.fit: fitted probabilities numerically 0 or 1 occurred 

Wir haben immer noch das Modell, aber die Koeffizientenschätzungen sind überhöht.

Wie gehen Sie in der Praxis damit um?

user333
quelle
4
verwandte Frage
user603
1
verwandte Frage und Demo zur Regularisierung hier
Haitao Du

Antworten:

100

Eine Lösung besteht darin, eine Form der bestraften Regression zu verwenden. Tatsächlich ist dies der ursprüngliche Grund, warum einige der bestraften Regressionsformen entwickelt wurden (obwohl sich herausstellte, dass sie andere interessante Eigenschaften aufweisen.

Installieren und laden Sie das Paket glmnet in R und schon können Sie loslegen. Einer der weniger benutzerfreundlichen Aspekte von glmnet ist, dass Sie nur Matrizen füttern können, nicht Formeln, wie wir es gewohnt sind. Sie können sich jedoch model.matrix und ähnliches ansehen, um diese Matrix aus einem data.frame und einer Formel zu erstellen ...

Wenn Sie nun erwarten, dass diese perfekte Trennung nicht nur ein Nebenprodukt Ihrer Probe ist, sondern auch für die Bevölkerung zutrifft, möchten Sie dies nicht behandeln: Verwenden Sie diese Trennvariable einfach als alleinigen Prädiktor für Ihr Ergebnis, nicht ein Modell jeglicher Art zu beschäftigen.

Nick Sabbe
quelle
20
Sie können auch eine Formelschnittstelle für glmnet über das Caret-Paket verwenden.
Zach
"Nun, wenn Sie erwarten ..." Frage dazu. Ich habe eine Fall- / Kontrollstudie, die sich mit der Beziehung zum Mikrobiom befasst. Wir haben auch eine Behandlung, die fast nur in Einzelfällen zu finden ist. Wir glauben jedoch, dass die Behandlung auch das Mikrobiom beeinflussen könnte. Ist dies ein Beispiel für Ihre Einschränkung? Hypothetisch gesehen könnten wir eine Menge weiterer Fälle finden, die die Behandlung nicht anwenden, wenn wir es versuchen, aber wir haben das, was wir haben.
27.
142

Sie haben mehrere Möglichkeiten:

  1. Entfernen Sie einen Teil der Vorspannung.

    (a) Durch Bestrafung der Wahrscheinlichkeit gemäß @ Nicks Vorschlag. Package Logistf in R oder die FIRTHOption in SAS PROC LOGISTICimplementieren die in Firth (1993), "Bias Reduction of Maximum Likelihood Estimations", Biometrika , 80 , 1, vorgeschlagene Methode ; Dadurch wird die Verzerrung erster Ordnung aus den Schätzungen der maximalen Wahrscheinlichkeit entfernt. ( Hier empfiehlt @Gavin das brglmPaket, mit dem ich nicht vertraut bin, aber ich erfahre , dass es einen ähnlichen Ansatz für nicht-kanonische Link-Funktionen implementiert, z. B. probit.)

    (b) Durch Verwendung von median-unverzerrten Schätzungen in der exakten bedingten logistischen Regression. Package elrm oder Logistix in R, oder die EXACTAussage in SAS PROC LOGISTIC.

  2. Schließen Sie Fälle aus, in denen die Prädiktorkategorie oder der Prädiktorwert, der die Trennung verursacht, auftritt. Diese können durchaus außerhalb Ihres Anwendungsbereichs liegen. oder verdient weitere, gezielte Untersuchung. (Das R-Paket safeBinaryRegression ist praktisch, um sie zu finden.)

  3. Modell neu gießen. In der Regel hätten Sie dies vorher getan, wenn Sie darüber nachgedacht hätten, da es für Ihre Stichprobengröße zu komplex ist.

    (a) Entfernen Sie den Prädiktor aus dem Modell. Dicey, aus den von @Simon angegebenen Gründen: "Sie entfernen den Prädiktor, der die Antwort am besten erklärt".

    (b) Durch Reduzieren der Prädiktorkategorien / Binning der Prädiktorwerte. Nur wenn das Sinn macht.

    (c) Erneutes Ausdrücken des Prädiktors als zwei (oder mehr) gekreuzte Faktoren ohne Wechselwirkung. Nur wenn das Sinn macht.

  4. Verwenden Sie eine Bayes'sche Analyse gemäß @ Manoels Vorschlag . Obwohl es unwahrscheinlich erscheint, dass Sie dies nur wegen der Trennung tun möchten, sollten Sie die anderen Vorzüge in Betracht ziehen. Das von ihm empfohlene Papier ist Gelman et al . Appl. Stat. , 2 , 4 : der fragliche Standardwert ist ein unabhängiger Cauchy-Prior für jeden Koeffizienten mit einem Mittelwert von Null und einer Skala von ; Wird verwendet, nachdem alle kontinuierlichen Prädiktoren auf einen Mittelwert von Null und eine Standardabweichung von normiert wurden . Wenn Sie stark informative Prioritäten aufklären können, umso besser. 15212

  5. Nichts tun. (Berechnen Sie die Konfidenzintervalle jedoch anhand der Profilwahrscheinlichkeiten, da die Wald-Schätzungen des Standardfehlers stark falsch sind.) Eine häufig übersehene Option. Wenn der Zweck des Modells nur darin besteht, zu beschreiben, was Sie über die Beziehungen zwischen Prädiktoren und Reaktion gelernt haben, ist es keine Schande, ein Konfidenzintervall für ein Quotenverhältnis von beispielsweise 2,3 nach oben anzugeben. (In der Tat kann es faul erscheinen, Konfidenzintervalle auf der Grundlage unvoreingenommener Schätzungen zu zitieren, die die Quotenquoten ausschließen, die am besten von den Daten unterstützt werden.) Probleme treten auf, wenn Sie versuchen, mithilfe von Punktschätzungen Vorhersagen zu treffen.

  6. Verwenden Sie ein verstecktes logistisches Regressionsmodell, wie es in Rousseeuw & Christmann (2003), "Robustheit gegen Trennung und Ausreißer bei logistischer Regression", Computational Statistics & Data Analysis , 43 , 3, beschrieben und im R-Paket hlr implementiert ist . (@ user603 schlägt dies vor. ) Ich habe das Papier nicht gelesen, aber sie sagen in der Zusammenfassung, dass "ein etwas allgemeineres Modell vorgeschlagen wird, unter dem die beobachtete Antwort stark verwandt, aber nicht gleich der nicht beobachtbaren wahren Antwort ist", was darauf hindeutet Für mich ist es möglicherweise keine gute Idee, die Methode zu verwenden, es sei denn, das klingt plausibel.

  7. "Ändern Sie einige zufällig ausgewählte Beobachtungen von 1 auf 0 oder 0 auf 1 unter Variablen, die eine vollständige Trennung aufweisen": @ RobertF's Kommentar . Dieser Vorschlag scheint darauf zurückzuführen zu sein, dass die Trennung an sich eher ein Problem als ein Symptom für einen Mangel an Informationen in den Daten darstellt. Dies könnte dazu führen, dass Sie andere Methoden der Schätzung der maximalen Wahrscheinlichkeit vorziehen oder Rückschlüsse auf solche ziehen, mit denen Sie etwas anfangen können vernünftige Präzision - Ansätze, die ihre eigenen Vorzüge haben und nicht nur "Fixes" für die Trennung sind. (Abgesehen davon, dass es sich um ein Ad-hoc -Verfahren handelt, ist es für die meisten unangenehm, dass Analysten, die dieselbe Frage zu denselben Daten stellen und dieselben Annahmen treffen, aufgrund des Ergebnisses eines Münzwurfs oder was auch immer unterschiedliche Antworten geben sollten.)

Scortchi
quelle
1
@Scortchi Es gibt eine andere (ketzerische) Option. Was ist mit der Änderung einiger zufällig ausgewählter Beobachtungen von 1 auf 0 oder 0 auf 1 unter Variablen, die eine vollständige Trennung aufweisen?
RobertF
@ RobertF: Danke! Ich hatte nicht an dieses gedacht - wenn Sie irgendwelche Hinweise bezüglich seiner Leistung haben, wäre ich dankbar. Sind Sie auf Leute gestoßen, die es in der Praxis anwenden?
Scortchi
@Scortchi - Nein, es gibt Hinweise darauf, dass Forscher künstliche Daten hinzufügen, um eine vollständige Trennung zu verhindern, aber ich habe keine Artikel über die selektive Änderung der Daten gefunden. Ich habe keine Ahnung, wie effektiv diese Methode sein würde.
RobertF
1
@tatami: Nicht alle (viele?) Programme warnen vor Trennung per se, was schwierig zu erkennen sein kann, wenn es sich um eine lineare Kombination mehrerer Variablen handelt, sondern vor Konvergenzfehlern und / oder angepassten Werten, die nahe bei Null oder Eins liegen Überprüfen Sie diese immer.
Scortchi
2
@ Scortchi: sehr schöne zusammenfassung in deiner antwort. Persönlich bevorzuge ich den Bayes'schen Ansatz, aber es ist erwähnenswert, die schöne Analyse des allgemeinen Phänomens aus der Sicht der Frequentisten in projecteuclid.org/euclid.ejs/1239716414 zu erwähnen . Der Autor bietet einige einseitige Konfidenzintervalle an, die auch bei vollständiger Trennung in der logistischen Regression verwendet werden können.
Cyan
55

Dies ist eine Erweiterung der Antworten von Scortchi und Manoel, aber da Sie RI zu verwenden scheinen, dachte ich, ich würde etwas Code liefern. :)

Ich glaube, die einfachste und direkteste Lösung für Ihr Problem ist die Verwendung einer Bayes'schen Analyse mit nicht informativen Vorannahmen, wie sie von Gelman et al. (2008) vorgeschlagen wurden. Wie Scortchi erwähnt, empfiehlt Gelman, für jeden Koeffizienten einen Cauchy vor dem Medianwert von 0,0 und eine Skala von 2,5 zu setzen (normalisiert mit einem Mittelwert von 0,0 und einer SD von 0,5). Dadurch werden die Koeffizienten reguliert und nur leicht gegen Null gezogen. In diesem Fall ist es genau das, was Sie wollen. Aufgrund des sehr breiten Schwanzes erlaubt der Cauchy weiterhin große Koeffizienten (im Gegensatz zum kurzschwänzigen Normal) von Gelman:

Bildbeschreibung hier eingeben

Wie führe ich diese Analyse durch? Verwenden Sie die bayesglmFunktion im Paket arm , die diese Analyse implementiert!

library(arm)

set.seed(123456)
# Faking some data where x1 is unrelated to y
# while x2 perfectly separates y.
d <- data.frame(y  =  c(0,0,0,0, 0, 1,1,1,1,1),
                x1 = rnorm(10),
                x2 = sort(rnorm(10)))

fit <- glm(y ~ x1 + x2, data=d, family="binomial")

## Warning message:
## glm.fit: fitted probabilities numerically 0 or 1 occurred 

summary(fit)
## Call:
## glm(formula = y ~ x1 + x2, family = "binomial", data = d)
##
## Deviance Residuals: 
##       Min          1Q      Median          3Q         Max  
## -1.114e-05  -2.110e-08   0.000e+00   2.110e-08   1.325e-05  
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)
## (Intercept)    -18.528  75938.934       0        1
## x1              -4.837  76469.100       0        1
## x2              81.689 165617.221       0        1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1.3863e+01  on 9  degrees of freedom
## Residual deviance: 3.3646e-10  on 7  degrees of freedom
## AIC: 6
## 
## Number of Fisher Scoring iterations: 25

Funktioniert nicht so gut ... Jetzt die Bayesianische Version:

fit <- bayesglm(y ~ x1 + x2, data=d, family="binomial")
display(fit)
## bayesglm(formula = y ~ x1 + x2, family = "binomial", data = d)
##             coef.est coef.se
## (Intercept) -1.10     1.37  
## x1          -0.05     0.79  
## x2           3.75     1.85  
## ---
## n = 10, k = 3
## residual deviance = 2.2, null deviance = 3.3 (difference = 1.1)

Super einfach, nein?

Verweise

Gelman et al. (2008), "Eine schwach informative Standardvorverteilung für logistische und andere Regressionsmodelle", Ann. Appl. Stat., 2, 4 http://projecteuclid.org/euclid.aoas/1231424214

Rasmus Bååth
quelle
6
Nein, zu einfach. Können Sie erklären, was Sie gerade getan haben? Was ist der Prior, der bayesglmverwendet wird? Wenn die ML-Schätzung der Bayes'schen Schätzung mit einer Pauschalpriorität entspricht, wie helfen hier nicht informative Prioritäten?
StasK
5
Weitere Infos hinzugefügt! Der Prior ist vage, aber nicht flach. Es hat einen gewissen Einfluss, da es die Schätzungen reguliert und sie leicht in Richtung 0,0 zieht, was Sie meines Erachtens in diesem Fall wollen.
Rasmus Bååth
> m = bayesglm (match ~., family = binomial (link = 'logit'), data = df) Warnmeldung: Angepasste Wahrscheinlichkeiten numerisch 0 oder 1 aufgetreten Nicht gut!
Chris
Versuchen Sie als Starter eine etwas stärkere Regularisierung, indem Sie prior.dfden Standardwert erhöhen 1.0und / oder prior.scaleden Standardwert verringern. 2.5Versuchen Sie es vielleicht mit:m=bayesglm(match ~. , family = binomial(link = 'logit'), data = df, prior.df=5)
Rasmus Bååth
1
Was genau machen wir, wenn wir prior.df im Modell erhöhen? Gibt es eine Grenze, wie hoch wir gehen wollen? Mein Verständnis ist, dass es das Modell einschränkt, um Konvergenz mit genauen Schätzungen des Fehlers zu ermöglichen?
Hamilton
7

Eine der gründlichsten Erklärungen für "quasi vollständige Trennung" ist Paul Allisons Artikel. Er schreibt über SAS-Software, aber die Probleme, die er anspricht, sind für jede Software verallgemeinerbar:

  • Eine vollständige Trennung tritt immer dann auf, wenn eine lineare Funktion von x perfekte Vorhersagen von y erzeugen kann

  • Eine quasi vollständige Trennung tritt auf, wenn (a) ein Koeffizientenvektor b existiert, so dass bxi ≥ 0 ist, wenn yi = 1 , und bxi ≤ 0 *, wenn ** yi = 0 und diese Gleichheit für mindestens einen Fall in jeder Kategorie der gilt abhängige Variable. Mit anderen Worten, im einfachsten Fall existiert für jede dichotome unabhängige Variable in einer logistischen Regression keine ML-Schätzung für den Regressionskoeffizienten, wenn in der aus dieser Variablen und der abhängigen Variablen gebildeten 2 × 2-Tabelle eine Null vorhanden ist.

Allison diskutiert viele der bereits erwähnten Lösungen, einschließlich des Löschens von Problemvariablen, des Ausblendens von Kategorien, des Nichtstuns, der Nutzung der exakten logistischen Regression, der Bayes'schen Schätzung und der bestraften Maximalwahrscheinlichkeitsschätzung.

http://www2.sas.com/proceedings/forum2008/360-2008.pdf

Mike Hunter
quelle
3

warning

Mit Daten, die nach dem Vorbild von erzeugt wurden

x <- seq(-3, 3, by=0.1)
y <- x > 0
summary(glm(y ~ x, family=binomial))

Die Warnung wird gemacht:

Warning messages:
1: glm.fit: algorithm did not converge 
2: glm.fit: fitted probabilities numerically 0 or 1 occurred 

was ganz offensichtlich die Abhängigkeit widerspiegelt, die in diese Daten eingebaut ist.

In R ist der Wald-Test mit summary.glmoder mit waldtestim lmtestPaket enthalten. Der Likelihood-Ratio-Test wird mit anovaoder mit lrtestin der lmtestPackung durchgeführt. In beiden Fällen ist die Informationsmatrix unendlich und es ist kein Rückschluss möglich. Vielmehr R nicht produziert Ausgang, aber man kann ihm nicht vertrauen. Die Inferenz, die R in diesen Fällen typischerweise erzeugt, hat p-Werte, die sehr nahe bei eins liegen. Dies liegt daran, dass der Präzisionsverlust im OP um Größenordnungen kleiner ist als der Präzisionsverlust in der Varianz-Kovarianz-Matrix.

Einige der hier beschriebenen Lösungen:

Verwenden Sie einen Ein-Schritt-Schätzer,

Es gibt viele Theorien, die die geringe Verzerrung, Effizienz und Generalisierbarkeit von Einschrittschätzern unterstützen. Es ist einfach, einen Ein-Schritt-Schätzer in R anzugeben, und die Ergebnisse sind in der Regel sehr günstig für Vorhersage und Inferenz. Und dieses Modell wird niemals auseinander gehen, weil der Iterator (Newton-Raphson) einfach keine Chance dazu hat!

fit.1s <- glm(y ~ x, family=binomial, control=glm.control(maxit=1))
summary(fit.1s)

Gibt:

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept) -0.03987    0.29569  -0.135    0.893    
x            1.19604    0.16794   7.122 1.07e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Sie können also sehen, dass die Vorhersagen die Richtung des Trends widerspiegeln. Und die Schlussfolgerung lässt stark auf die Trends schließen, die wir für wahr halten.

Bildbeschreibung hier eingeben

einen Punktetest durchführen,

Die Score-Statistik (oder Rao-Statistik) unterscheidet sich von der Likelihood-Ratio-Statistik und der Wald-Statistik. Es ist keine Bewertung der Varianz unter der Alternativhypothese erforderlich. Wir passen das Modell unter die Null an:

mm <- model.matrix( ~ x)
fit0 <- glm(y ~ 1, family=binomial)
pred0 <- predict(fit0, type='response')
inf.null <- t(mm) %*% diag(binomial()$variance(mu=pred0)) %*% mm
sc.null <- t(mm) %*% c(y - pred0)
score.stat <- t(sc.null) %*% solve(inf.null) %*% sc.null ## compare to chisq
pchisq(score.stat, 1, lower.tail=F)

χ2

> pchisq(scstat, df=1, lower.tail=F)
             [,1]
[1,] 1.343494e-11

In beiden Fällen haben Sie die Schlussfolgerung für ein OR von unendlich.

und verwenden Sie mediane unvoreingenommene Schätzungen für ein Konfidenzintervall.

Sie können einen medianen unverzerrten, nicht singulären 95% -KI für das unendliche Quotenverhältnis mithilfe der medianen unverzerrten Schätzung erstellen. Das Paket epitoolsin R kann dies tun. Und ich gebe hier ein Beispiel für die Implementierung dieses Schätzers: Konfidenzintervall für Bernoulli-Stichproben

AdamO
quelle
2
Das ist großartig, aber ich habe natürlich ein paar Probleme: (1) Der Likelihood-Ratio-Test verwendet nicht die Informationsmatrix; Es ist nur der Wald-Test, der erfolgreich ist und bei Trennung katastrophal versagt. (2) Ich kenne mich mit Ein-Schritt-Schätzern überhaupt nicht aus, aber die Neigungsschätzung hier scheint absurd niedrig. (3) Ein Konfidenzintervall ist nicht median-unvoreingenommen. Was Sie in diesem Abschnitt verknüpfen, ist das mittlere p-Konfidenzintervall. (4) Sie können Konfidenzintervalle erhalten, indem Sie das LR umkehren oder Tests bewerten. ...
Scortchi
... (5) Sie können den Score-Test in R durchführen, indem Sie test="Rao"der anovaFunktion das Argument geben . (Nun, die letzten beiden sind Notizen, keine Streitigkeiten.)
Scortchi
@scortchi gut zu wissen, dass anova Standard-Score-Tests hat! Vielleicht ist eine Implementierung von Hand sinnvoll. CIs sind nicht median unverzerrt, aber CIs für den median unverzerrten Schätzer liefern konsistente Schlussfolgerungen für Grenzparameter. Die Mitte p ist ein solcher Schätzer. Das p kann in ein Odds-Ratio b / c transformiert werden, das für Eins-zu-Eins-Transformationen unveränderlich ist. Ist der LR-Test für Grenzparameter konsistent?
AdamO
Nur die Nullhypothese darf keine Parameter an einer Grenze enthalten, damit Wilks 'Theorem angewendet werden kann, obwohl Score- und LR-Tests in endlichen Stichproben ungefähr sind.
Scortchi
2

Seien Sie vorsichtig mit dieser Warnmeldung von R. Wenn Sie sich diesen Blog-Beitrag von Andrew Gelman ansehen, werden Sie feststellen, dass es sich nicht immer um ein Problem der perfekten Trennung handelt, sondern manchmal um einen Fehler glm. Es scheint, dass wenn die Startwerte zu weit von der Maximum-Likelihood-Schätzung entfernt sind, sie explodieren. Überprüfen Sie dies zunächst mit anderer Software wie Stata.

Wenn Sie dieses Problem wirklich haben, können Sie versuchen, Bayes'sche Modellierung mit informativen Prioritäten zu verwenden.

Aber in der Praxis werde ich nur die Prädiktoren los, die die Probleme verursachen, weil ich nicht weiß, wie ich einen informativen Prior auswählen soll. Aber ich vermute, es gibt ein Papier von Gelman über die Verwendung von Informativem, wenn Sie dieses Problem des perfekten Trennungsproblems haben. Google es einfach. Vielleicht solltest du es versuchen.

Manoel Galdino
quelle
8
Das Problem beim Entfernen von Prädiktoren besteht darin, dass Sie den Prädiktor entfernen, der die Antwort am besten erklärt. Ich würde behaupten, dass dies nur Sinn macht, wenn Sie Ihr Modell überanpassen, indem Sie beispielsweise zu viele komplizierte Interaktionen anpassen.
Simon Byrne
4
Kein Fehler, aber ein Problem, da die anfänglichen Schätzungen zu weit von der MLE entfernt sind. Dies tritt nicht auf, wenn Sie nicht versuchen, sie selbst auszuwählen.
Scortchi
Ich verstehe das, aber ich denke, das ist ein Fehler im Algorithmus.
Manoel Galdino
5
Nun, ich möchte nicht über die Definition von 'Bug' streiten. Aber das Verhalten ist in Basis R weder unergründlich noch unfixierbar - Sie müssen nicht "mit anderer Software prüfen". Wenn Sie viele Nicht-Konvergenz-Probleme automatisch lösen möchten, führt das glm2Paket eine Überprüfung durch, dass die Wahrscheinlichkeit bei jedem Bewertungsschritt tatsächlich zunimmt, und halbiert die Schrittgröße, wenn dies nicht der Fall ist.
Scortchi
3
Es gibt (auf CRAN) das R-Paket, safeBinaryRegression das entwickelt wurde, um solche Probleme zu diagnostizieren und zu beheben. Dabei werden Optimierungsmethoden verwendet, um sicherzustellen, dass eine Trennung oder Quasiseparation vorliegt. Versuch es!
kjetil b halvorsen
2

Ich bin nicht sicher, ob ich den Aussagen in Ihrer Frage zustimme.

Ich denke, dass eine Warnmeldung bedeutet, dass für einige der beobachteten X- Werte in Ihren Daten die angepasste Wahrscheinlichkeit numerisch 0 oder 1 ist. Mit anderen Worten, bei der Auflösung wird 0 oder 1 angezeigt.

Sie können rennen predict(yourmodel,yourdata,type='response')und Sie werden dort 0en oder / und 1en als vorhergesagte Wahrscheinlichkeiten finden.

Daher halte ich es für in Ordnung, nur die Ergebnisse zu verwenden.

StayLearning
quelle
-1

Ich verstehe, dass dies ein alter Beitrag ist, aber ich werde trotzdem mit der Beantwortung fortfahren, da ich seit Tagen damit zu kämpfen habe und es anderen helfen kann.

Eine vollständige Trennung findet statt, wenn Ihre ausgewählten Variablen zur Anpassung an das Modell sehr genau zwischen Nullen und Einsen oder Ja und Nein unterscheiden können. Unser ganzer Ansatz der Datenwissenschaft basiert auf der Wahrscheinlichkeitsschätzung, scheitert jedoch in diesem Fall.

Korrekturschritte: -

  1. Verwenden Sie bayesglm () anstelle von glm (), wenn die Varianz zwischen den Variablen gering ist

  2. Manchmal kann die Verwendung von (maxit = ”some numerical value”) zusammen mit bayesglm () helfen

3.Die dritte und wichtigste Prüfung für Ihre ausgewählten Variablen für die Modellanpassung besteht darin, dass eine Variable vorhanden sein muss, für die die Multi-Kollinearität mit der Variablen Y (outout) sehr hoch ist. Verwerfen Sie diese Variable aus Ihrem Modell.

Wie in meinem Fall hatte ich Telekommunikations-Abwanderungsdaten, um die Abwanderungsdaten für die Validierungsdaten vorherzusagen. Ich hatte eine Variable in meinen Trainingsdaten, die sehr gut zwischen Ja und Nein unterscheiden konnte. Nach dem Ablegen konnte ich das richtige Modell bekommen. Außerdem können Sie Ihr Modell schrittweise anpassen, um es genauer zu machen.

yash
quelle
2
Ich sehe nicht, dass diese Antwort viel zur Diskussion beiträgt. Der Bayes'sche Ansatz wird in früheren Antworten ausführlich behandelt, die Beseitigung "problematischer" Prädiktoren ist ebenfalls bereits erwähnt (und wird davon abgeraten). Eine schrittweise Variablenauswahl ist meines Wissens nach selten eine gute Idee.
Einar