Auswählen von Variablen, die in ein Modell mit mehreren linearen Regressionen aufgenommen werden sollen

35

Ich arbeite derzeit daran, ein Modell mit einer multiplen linearen Regression zu erstellen. Nachdem ich mit meinem Modell herumgespielt habe, bin ich mir nicht sicher, wie ich am besten bestimmen kann, welche Variablen aufbewahrt und welche entfernt werden sollen.

Mein Modell startete mit 10 Prädiktoren für den DV. Bei Verwendung aller 10 Prädiktoren wurden vier als signifikant angesehen. Wenn ich nur einige der offensichtlich falschen Prädiktoren entferne, werden einige meiner Prädiktoren, die anfangs nicht signifikant waren, signifikant. Was mich zu meiner Frage führt: Wie kann man bestimmen, welche Prädiktoren in ihr Modell aufgenommen werden sollen? Mir schien, Sie sollten das Modell einmal mit allen Prädiktoren ausführen, die nicht signifikanten entfernen und dann erneut ausführen. Aber wenn das Entfernen nur einiger dieser Prädiktoren andere signifikant macht, frage ich mich, ob ich bei all dem den falschen Ansatz gewählt habe.

Ich glaube, dass dieser Thread meiner Frage ähnelt, bin mir aber nicht sicher , ob ich die Diskussion richtig interpretiere. Vielleicht ist dies eher ein experimentelles Designthema, aber vielleicht hat jemand etwas Erfahrung, die er teilen kann.

cryptic_star
quelle
Die Antwort darauf hängt in hohem Maße von Ihren Zielen und Anforderungen ab: Suchen Sie nach einer einfachen Assoziation oder streben Sie eine Vorhersage an? Wie hoch ist Ihre Interpretierbarkeit? Haben Sie Informationen zu den Variablen aus anderen Veröffentlichungen, die den Prozess beeinflussen könnten? Wie wäre es mit Interaktionen oder transformierten Versionen der Variablen? Können Sie diese einbeziehen? usw. Sie müssen weitere Details angeben, um eine gute Antwort zu erhalten.
Nick Sabbe
Basierend auf Ihren Fragen dient dies zur Vorhersage. Einfluss auf andere Variablen bietet nur eine mögliche Assoziation. Es gibt keine Wechselwirkungen zwischen ihnen. Es muss nur ein Wert transformiert werden, und es wurde getan.
cryptic_star
1
Gibt es eine Theorie, die besagt, welche Prädiktoren Sie einbeziehen sollten? Wenn Sie viele Variablen und keine Theorie gemessen haben, würde ich empfehlen, eine Reihe von Beobachtungen durchzuführen, damit Sie Ihr Modell an Daten testen können, die nicht zum Erstellen verwendet wurden. Es ist nicht korrekt, ein Modell mit denselben Daten zu testen und zu validieren.
Michelle
Kreuzvalidierung (wie Nick Sabbe diskutiert), bestrafte Methoden (Dikran Marsupial) oder die Auswahl von Variablen basierend auf vorheriger Theorie (Michelle) sind alles Optionen. Beachten Sie jedoch, dass die Variablenauswahl an sich eine sehr schwierige Aufgabe ist. Um zu verstehen, warum es so anstrengend ist, kann es hilfreich sein, meine Antwort hier zu lesen: Algorithmen für die automatische Modellauswahl . Schließlich ist es wert, zu erkennen, dass das Problem mit der logischen Struktur dieser Aktivität zusammenhängt, und nicht, ob der Computer es automatisch für Sie erledigt oder Sie es manuell für sich selbst erledigen.
gung - Wiedereinsetzung von Monica
Sehen
jokel

Antworten:

19

Basierend auf Ihrer Reaktion auf meinen Kommentar:

Sie suchen nach Vorhersage. Sie sollten sich also nicht wirklich auf die (In-) Signifikanz der Koeffizienten verlassen. Du wärst besser dran

  • Wählen Sie ein Kriterium, das Ihren Prognosebedarf am besten beschreibt (z. B. Fehlklassifizierungsrate, AUC von ROC, eine Form davon mit Gewichten, ...).
  • Bewerten Sie dieses Kriterium für jedes Modell von Interesse . Dies kann z. B. durch Bereitstellung eines Validierungssatzes (wenn Sie Glück haben oder reich sind), durch Kreuzvalidierung (in der Regel zehnfach) oder durch andere Optionen geschehen, die Ihr interessierendes Kriterium zulässt. Wenn möglich, finden Sie auch eine Schätzung der SE des Kriteriums für jedes Modell (z. B. durch Verwendung der Werte über die verschiedenen Falten bei der Kreuzvalidierung).
  • Jetzt können Sie das Modell mit dem besten Wert des Kriteriums auswählen. In der Regel wird jedoch empfohlen, das sparsamste Modell (die wenigsten Variablen) auszuwählen, das innerhalb einer SE des besten Werts liegt.

Bezüglich jedes Modells von Interesse : Hier liegt ein ziemlicher Haken. Mit 10 potenziellen Prädiktoren ist das eine Wagenladung potenzieller Modelle. Wenn Sie die Zeit oder die Prozessoren dafür haben (oder wenn Ihre Daten klein genug sind, damit die Modelle fit und schnell genug ausgewertet werden): Haben Sie einen Ball. Wenn nicht, können Sie dies durch fundierte Vermutungen, Vorwärts- oder Rückwärtsmodellierung (aber unter Verwendung des Kriteriums anstelle der Signifikanz) oder noch besser: Verwenden Sie einen Algorithmus, der eine angemessene Menge von Modellen auswählt. Ein Algorithmus, der dies tut, ist die bestrafte Regression, insbesondere die Lasso-Regression. Wenn Sie R verwenden, schließen Sie einfach das Paket glmnet an und schon können Sie loslegen.

Nick Sabbe
quelle
+1, aber können Sie erklären, warum genau Sie "das sparsamste Modell (die wenigsten Variablen) auswählen, das innerhalb einer SE des besten Werts liegt"?
Rolando2
Sparsamkeit ist in den meisten Situationen eine erwünschte Eigenschaft: Sie erhöht die Interpretierbarkeit und verringert die Anzahl der Messungen, die Sie für ein neues Subjekt zur Verwendung des Modells durchführen müssen. Die andere Seite der Geschichte ist, dass das, was Sie für Ihr Kriterium erhalten, nur eine Schätzung ist, mit übereinstimmendem SE: Ich habe einige Diagramme gesehen, die die Kriteriumschätzungen gegen einen Abstimmungsparameter zeigen, bei dem der "beste" Wert nur ein Ausnahmefall war Gipfel. Als solches schützt Sie die 1 SE-Regel (die willkürlich ist, aber eine akzeptierte Praxis) davor mit dem zusätzlichen Wert, mehr Sparsamkeit bereitzustellen.
Nick Sabbe
13

Darauf gibt es keine einfache Antwort. Wenn Sie einige der nicht signifikanten erklärenden Variablen entfernen, können andere, die mit diesen korrelieren, signifikant werden. Daran ist nichts auszusetzen, aber es wird zumindest teilweise eher eine Kunst als eine Wissenschaft ausgewählt. Aus diesem Grund zielen Experimente darauf ab, erklärende Variablen orthogonal zueinander zu halten, um dieses Problem zu vermeiden.

Herkömmlicherweise haben Analysten schrittweise Variablen nacheinander zum Modell hinzugefügt und daraus subtrahiert (ähnlich wie bei Ihnen) und sie einzeln oder in kleinen Gruppen mit t- oder F-Tests getestet. Das Problem dabei ist, dass Sie möglicherweise eine Kombination von Variablen verpassen, um sie zu subtrahieren (oder hinzuzufügen), deren kombinierter Effekt (oder Nicht-Effekt) durch die Kollinearität verborgen ist.

Mit moderner Rechenleistung ist es möglich, alle 2 ^ 10 = 1024 möglichen Kombinationen von erklärenden Variablen anzupassen und das beste Modell anhand einer Reihe von möglichen Kriterien auszuwählen, z. B. AIC, BIC oder Vorhersagekraft (z. B. Fähigkeit, die Werte vorherzusagen) einer Test-Teilmenge der Daten, die Sie von der Menge, die Sie für Ihr Modell verwenden, getrennt haben). Wenn Sie jedoch (implizit oder explizit) 1024-Modelle testen möchten, müssen Sie Ihre p-Werte vom klassischen Ansatz abweichen - gehen Sie vorsichtig vor ...

Peter Ellis
quelle
Vielen Dank für das gute Durchgehen der Vor- und Nachteile beider Seiten. Es bestätigte eine Menge dessen, was ich vermutete.
cryptic_star
11

Wenn Sie nur an der prädiktiven Leistung interessiert sind, ist es wahrscheinlich besser, alle Funktionen zu verwenden und die Gratregression zu verwenden, um eine Überanpassung der Trainingsstichprobe zu vermeiden. Dies ist im Wesentlichen der Ratschlag im Anhang von Millars Monographie zur "Auswahl von Teilmengen in der Regression" , weshalb es einen vernünftigen Stammbaum gibt!

Der Grund dafür ist, dass wenn Sie eine Teilmenge auswählen, die auf einer Leistungsschätzung basiert, die auf einer festen Stichprobe von Daten (z. B. AIC, BIC, Kreuzvalidierung usw.) basiert, das Auswahlkriterium eine endliche Varianz aufweist und dies daher möglich ist Überanpassung des Auswahlkriteriums. Mit anderen Worten, wenn Sie zunächst das Auswahlkriterium minimieren, verbessert sich die Generalisierungsleistung. Je mehr Sie jedoch das Auswahlkriterium reduzieren, desto schlechter wird die Generalisierung. Wenn Sie Pech haben, können Sie leicht ein Regressionsmodell finden, das schlechter abschneidet als das, mit dem Sie begonnen haben (dh ein Modell mit allen Attributen).

Dies ist besonders wahrscheinlich, wenn der Datensatz klein ist (das Auswahlkriterium also eine hohe Varianz aufweist) und wenn es viele mögliche Modelloptionen gibt (z. B. Auswahl von Merkmalskombinationen). Regularisierung scheint weniger anfällig für Überanpassung zu sein, da es sich um einen Skalarparameter handelt, der optimiert werden muss, und dies bietet eine engere Sicht auf die Komplexität des Modells, dh weniger effektive Freiheitsgrade, mit denen das Auswahlkriterium überanpassbar ist .

Dikran Beuteltier
quelle
0

Verwenden Sie die Sprungbibliothek. Wenn Sie die Variablen zeichnen, zeigt die y-Achse R ^ 2 angepasst. Sie sehen, wo die Kästchen am höchsten R ^ 2 schwarz sind. Dies zeigt die Variablen an, die Sie für Ihre multiple lineare Regression verwenden sollten.

Weinbeispiel unten:

library(leaps)
regsubsets.out <-
  regsubsets(Price ~ Year + WinterRain + AGST + HarvestRain + Age + FrancePop,
         data = wine,
         nbest = 1,       # 1 best model for each number of predictors
         nvmax = NULL,    # NULL for no limit on number of variables
         force.in = NULL, force.out = NULL,
         method = "exhaustive")
regsubsets.out

#----When you plot wherever R^2 is the highest with black boxes,
#so in our case AGST + HarvestRain + WinterRain + Age and the dependent var.is Price----#
summary.out <- summary(regsubsets.out)
as.data.frame(summary.out$outmat)
plot(regsubsets.out, scale = "adjr2", main = "Adjusted R^2")
zschleien
quelle
Dies unterscheidet sich nicht sehr von der Auswahl der „besten Teilmengen“, bei der Probleme bekannt sind.
gung - Reinstate Monica
leaps Berechnet explizit die 'besten Teilmengen', obwohl dies keine Empfehlung für die Auswahl von Teilmengen unterschiedlicher Größe darstellt. (
Dies
Lustig genug, leapsbasiert auf „FORTRAN77 Code von Alan Miller [...] , die ausführlicher in seinem Buch‚Subset Selection in Regression‘beschrieben wird“, ein Buch , das von Dikran in eine andere Antwort auf diese Frage erwähnt wird :-)
18.
-2

Warum nicht erst eine Korrelationsanalyse durchführen und dann nur diejenigen in die Regression einbeziehen, die mit Dv korrelieren?

anna
quelle
2
Dies ist im Allgemeinen eine schlechte Methode, um auszuwählen, welche Variablen ausgewählt werden sollen. Siehe z. B. Ist die Verwendung einer Korrelationsmatrix zur Auswahl von Prädiktoren für die Regression richtig? Eine Korrelationsanalyse unterscheidet sich stark von der multiplen Regression, da wir im letzteren Fall über "Partial Out" nachdenken müssen (Regressionssteigungen zeigen die Beziehung, sobald andere Variablen berücksichtigt werden ), eine Korrelationsmatrix zeigt dies jedoch nicht an.
Silverfish
Dies gibt keine Antwort auf die Frage. Sobald Sie über eine ausreichende Reputation verfügen, können Sie jeden Beitrag kommentieren . Geben Sie stattdessen Antworten an, die nicht vom Fragesteller geklärt werden müssen . - Aus der Bewertung
Sycorax sagt Reinstate Monica
1
@GeneralAbrial Es mir auffällt , dass dies ist eine Antwort auf die Frage, wenn auch einen kurzen ein. Es ist keine gute Lösung für das Problem, aber dafür sind Up / Downvotes gedacht. (Ich denke, das "Warum nicht" ist eher eine rhetorische Frage als eine Bitte des Autors um Klärung.)
Silverfish
-4

Mein Berater bot eine andere Möglichkeit, dies zu tun. Führen Sie alle Variablen einmal aus und entfernen Sie dann diejenigen, die einen bestimmten Schwellenwert nicht erreichen (wir setzen unseren Schwellenwert auf p <.25). Wiederholen Sie diesen Vorgang, bis alle Variablen diesen Wert von 0,25 unterschreiten, und geben Sie dann die Werte an, die von Bedeutung sind.

cryptic_star
quelle
1
Hi allie, das hat @Peter Ellis im zweiten Absatz seiner Antwort erwähnt. Sein zweiter Satz deckt das Problem ab, das diese Technik mit sich bringt. Haben Sie eine Theorie, die Ihnen sagt, welche Prädiktoren Sie in Ihr Modell aufnehmen sollen?
Michelle
Ja, @Michelle unterstreicht zu Recht die Haftung für diesen Ansatz. Dies kann zu sehr willkürlichen Ergebnissen führen.
Rolando2
Ja, dahinter steckt eine Theorie, auf die wir gerne näher eingehen möchten. Insbesondere untersuchen wir, wie bestimmte soziale Signale (wie z. B. Sprache) interagieren. Wir sind uns bewusst, welche bereits Einfluss haben oder nicht. Wir versuchen jedoch, feinere Versionen bereitzustellen. So kann Rede in Frage, Meinung, Einschätzung, etc.
zerlegt werden
2
Okay, Sie machen also eine explorative Analyse. :) Sie können verschiedene Kombinationen ausprobieren, aber Sie müssen das Modell, mit dem Sie enden, auf neuen Daten testen. Per Definition haben Sie mit dem, was Sie tun, das "beste" Modell für Ihre Daten, aber es funktioniert möglicherweise nicht, wenn Sie einen anderen Datensatz erfassen.
Michelle