Angenommen, ich untersuche, wie Narzissen auf verschiedene Bodenbedingungen reagieren. Ich habe Daten über den pH-Wert des Bodens im Vergleich zur reifen Höhe der Narzisse gesammelt. Da ich eine lineare Beziehung erwarte, gehe ich einer linearen Regression nach.
Als ich mit meiner Studie begann, wusste ich jedoch nicht, dass die Population tatsächlich zwei Narzissensorten enthält, von denen jede sehr unterschiedlich auf den pH-Wert des Bodens reagiert. Das Diagramm enthält also zwei verschiedene lineare Beziehungen:
Ich kann es natürlich beobachten und manuell trennen. Aber ich frage mich, ob es einen strengeren Ansatz gibt.
Fragen:
Gibt es einen statistischen Test, um festzustellen, ob ein Datensatz besser auf eine einzelne Zeile oder auf N Zeilen passt?
Wie würde ich eine lineare Regression ausführen, um sie an die N-Linien anzupassen? Mit anderen Worten, wie entwirre ich die vermischten Daten?
Ich kann mir einige kombinatorische Ansätze vorstellen, aber sie scheinen rechenintensiv zu sein.
Klarstellungen:
Die Existenz von zwei Sorten war zum Zeitpunkt der Datenerhebung nicht bekannt. Die Sorte jeder Narzisse wurde nicht beobachtet, nicht notiert und nicht aufgezeichnet.
Es ist unmöglich, diese Informationen wiederherzustellen. Die Narzissen sind seit dem Zeitpunkt der Datenerfassung gestorben.
Ich habe den Eindruck, dass dieses Problem dem Anwenden von Clustering-Algorithmen ähnelt, da Sie fast die Anzahl der Cluster kennen müssen, bevor Sie beginnen. Ich glaube, dass mit jedem Datensatz die Erhöhung der Anzahl der Zeilen den gesamten Effektivfehler verringern wird. Im Extremfall können Sie Ihren Datensatz in beliebige Paare aufteilen und einfach eine Linie durch jedes Paar ziehen. (Wenn Sie beispielsweise 1000 Datenpunkte hätten, könnten Sie diese in 500 willkürliche Paare aufteilen und eine Linie durch jedes Paar ziehen.) Die Anpassung wäre genau und der Effektivfehler wäre genau Null. Aber das wollen wir nicht. Wir wollen die "richtige" Anzahl von Zeilen.
quelle
Antworten:
Ich denke, Demetris Antwort ist großartig, wenn wir davon ausgehen, dass Sie die Etiketten für die verschiedenen Sorten haben. Als ich deine Frage las, schien mir das nicht der Fall zu sein. Wir können einen Ansatz verwenden, der auf dem EM-Algorithmus basiert, um das von Demetri vorgeschlagene Modell im Wesentlichen anzupassen, ohne jedoch die Bezeichnungen für die Sorte zu kennen. Zum Glück stellt uns das mixtools-Paket in R diese Funktionalität zur Verfügung. Da Ihre Daten ziemlich getrennt sind und Sie anscheinend einiges haben, sollte es ziemlich erfolgreich sein.
Wir können die Ergebnisse untersuchen
Es passte also zu zwei Regressionen und es wurde geschätzt, dass 49,7% der Beobachtungen in die Regression für Komponente 1 und 50,2% in die Regression für Komponente 2 fielen. So wie ich die Daten simuliert habe, war es eine 50: 50-Aufteilung, das ist also gut.
Die 'wahren' Werte, die ich für die Simulation verwendet habe, sollten die folgenden Zeilen enthalten:
y = 41,55 + 5,185 * ph und y = 65,14 + 1,48148 * ph
(die ich 'von Hand' anhand Ihres Diagramms geschätzt habe, damit die von mir erstellten Daten ähnlich wie Ihre aussehen) und die Linien, die der EM-Algorithmus in diesem Fall lieferte, waren:
y = 41,514 + 5,19 * ph und y = 64,655 + 1,55 * ph
Ziemlich nah an den tatsächlichen Werten.
Wir können die angepassten Linien zusammen mit den Daten zeichnen
quelle
EDIT: Ich dachte ursprünglich, OP wüsste, welche Beobachtungen von welcher Art stammen. Die Bearbeitung von OP macht deutlich, dass mein ursprünglicher Ansatz nicht durchführbar ist. Ich werde es der Nachwelt überlassen, aber die andere Antwort ist viel besser. Zum Trost habe ich in Stan ein Mischmodell programmiert. Ich sage nicht, dass ein Bayes-Ansatz in diesem Fall besonders gut ist, aber es ist einfach etwas Ordentliches, das ich beitragen kann.
Stan Code
Führen Sie das Stan-Modell von R aus
Ergebnisse
Gestrichelte Linien sind die Grundwahrheit, durchgezogene Linien werden geschätzt.
Ursprüngliche Antwort
Wenn Sie wissen, welche Probe von welcher Narzissensorte stammt, können Sie eine Wechselwirkung zwischen Sorte und Boden-PH abschätzen.
Ihr Modell wird so aussehen
Hier ist ein Beispiel in R. Ich habe einige Daten generiert, die so aussehen:
Klar zwei verschiedene Linien, und die Linien entsprechen zwei Arten. Hier erfahren Sie, wie Sie die Linien mithilfe der linearen Regression schätzen.
Und das Ergebnis ist
Bei Arten mit der Bezeichnung 0 beträgt die Linie ungefähr
Bei Arten mit der Bezeichnung 1 beträgt die Linie ungefähr
quelle
Der statistische Ansatz ist zwei der obigen Antworten sehr ähnlich, befasst sich jedoch ein wenig mehr mit der Auswahl der Anzahl latenter Klassen, wenn Sie keine Vorkenntnisse haben. Sie können Informationskriterien oder Sparsamkeit als Richtlinie für die Auswahl der Anzahl latenter Klassen verwenden.
Hier ist ein Stata-Beispiel, das eine Sequenz von Finite-Mix-Modellen (FMMs) mit 2-4 latenten Klassen / Komponenten verwendet. Die erste Tabelle enthält die Koeffizienten für die latente Klassenzugehörigkeit. Diese sind etwas schwierig zu interpretieren, können aber später mit in Wahrscheinlichkeiten umgewandelt werden
estat lcprob
. Für jede Klasse erhalten Sie außerdem einen Intercept- und einen Ph-Steigungsparameter, gefolgt von latenten Klassengrenzwahrscheinlichkeiten und zwei In-Sample-ICs. Diese Koeffizientenschätzungen werden genauso interpretiert wie die Koeffizienten aus einem linearen Regressionsmodell. Hier sagt Ihnen der kleinste BIC in der Stichprobe, dass Sie das Zweikomponentenmodell als das beste auswählen sollen. AIC wählt seltsamerweise das 3-Komponenten-Modell. Sie können auch Out-of-Sample- ICs verwenden, um die Kreuzvalidierung auszuwählen oder zu verwenden.Der FMM-Ansatz funktioniert in der Praxis nicht immer so gut, wenn die Klassen weniger streng sind. Es kann vorkommen, dass Sie bei zu vielen latenten Klassen auf Rechenschwierigkeiten stoßen, insbesondere wenn Sie nicht genügend Daten haben oder die Wahrscheinlichkeitsfunktion mehrere lokale Maxima aufweist.
quelle
Ich werde mich auf die Frage der statistischen Signifikanz konzentrieren, da Dason bereits den Modellierungsteil behandelt hat.
Ich bin mit irgendwelchen formalen Tests dafür nicht vertraut (von denen ich mir sicher bin, dass sie existieren), also werfe ich nur ein paar Ideen raus (und werde wahrscheinlich später R-Code und technische Details hinzufügen).
Erstens ist es bequem, die Klassen abzuleiten. Angenommen, Sie haben zwei Linien, die an die Daten angepasst sind, können Sie die beiden Klassen ungefähr rekonstruieren, indem Sie jeden Punkt der Klasse der Linie zuordnen, die ihm am nächsten liegt. Bei Punkten in der Nähe der Kreuzung treten Probleme auf, ignorieren Sie diese jedoch vorerst (es gibt möglicherweise eine Möglichkeit, dies zu umgehen, aber hoffen Sie vorerst, dass sich daran nicht viel ändert).
Dann sehe ich zwei natürliche Wege, dies zu tun.
Die weniger unterhaltsame Möglichkeit besteht darin, Ihren ursprünglichen Datensatz in Kombination mit den abgeleiteten Klassenbeschriftungen durch eine lineare Regression wie in Demetris Antwort auszuführen.
Interessanter wäre eine modifizierte Version von ANOVA. Es geht darum, ein künstliches Dataset zu erstellen, das die beiden Linien (mit einer ähnlichen Verteilung zwischen ihnen) darstellt, und dann ANOVA anzuwenden. Technisch gesehen müssen Sie dies einmal für die linke und einmal für die rechte Seite tun (dh Sie haben zwei künstliche Datensätze).
quelle
Ist es möglich, dass es ein Fehler ist, beide in dasselbe Diagramm aufzunehmen? Gibt es in Anbetracht des völlig unterschiedlichen Verhaltens der Sorten einen Wert für die Überlappung der Daten? Es scheint mir, dass Sie nach Auswirkungen auf eine Narzissenart suchen, nicht nach den Auswirkungen ähnlicher Umgebungen auf verschiedene Narzissen. Wenn Sie die Daten verloren haben, mit deren Hilfe Art "A" von Art "B" bestimmt werden kann, können Sie einfach Verhalten "A" und Verhalten "B" gruppieren und die Entdeckung von zwei Arten in Ihre Erzählung einbeziehen. Oder, wenn Sie wirklich ein Diagramm möchten, verwenden Sie einfach zwei Datensätze auf derselben Achse. Ich habe nicht annähernd das Fachwissen, das ich in den anderen gegebenen Antworten sehe, deshalb muss ich weniger "geschickte" Methoden finden. Ich würde eine Datenanalyse in einer Arbeitsblattumgebung ausführen, in der die Gleichungen einfacher zu entwickeln sind. Dann, Sobald die Gruppierungen offensichtlich werden, erstellen Sie die beiden separaten Datentabellen, und konvertieren Sie sie in Diagramme / Grafiken. Ich arbeite mit sehr vielen Daten und stelle oft fest, dass meine Annahmen zu unterschiedlichen Korrelationen falsch sind. Das ist es, was uns Daten beim Entdecken helfen sollen. Sobald ich erfahre, dass meine Annahmen falsch sind, zeige ich die Daten basierend auf den ermittelten Verhaltensweisen an und diskutiere diese Verhaltensweisen und die daraus resultierenden statistischen Analysen als Teil der Erzählung.
quelle