Ich versuche, zwei Wertegruppen von einem einzigen Datensatz zu trennen. Ich kann davon ausgehen, dass eine der Populationen normal verteilt ist und mindestens halb so groß wie die Stichprobe ist. Die Werte der zweiten sind beide niedriger oder höher als die Werte der ersten (Verteilung ist unbekannt). Was ich versuche, ist, die oberen und unteren Grenzen zu finden, die die normalverteilte Bevölkerung von der anderen einschließen würden.
Meine Vermutung gibt mir den Ausgangspunkt:
- Alle Punkte im Interquartilbereich der Stichprobe stammen aus der normalverteilten Grundgesamtheit.
Ich versuche, auf Ausreißer zu testen, indem ich sie aus dem Rest der Stichprobe nehme, bis sie nicht mehr in die 3. Stufe der normalverteilten Population passen. Was nicht ideal ist, aber vernünftig genug zu sein scheint.
Ist meine Annahme statistisch gesichert? Was wäre ein besserer Weg, dies zu tun?
ps bitte die tags jemand reparieren.
quelle
Antworten:
Wenn ich das richtig verstehe, können Sie den Daten einfach eine Mischung aus zwei Normalen zuordnen. Es gibt viele R-Pakete, die dazu zur Verfügung stehen. In diesem Beispiel wird das mixtools- Paket verwendet:
Das gibt:
Mischung aus zwei Normalen http://img294.imageshack.us/img294/4213/kernal.jpg
Das Paket enthält auch komplexere Methoden - überprüfen Sie die Dokumentation.
quelle
quelle
Dies setzt voraus, dass Sie nicht einmal wissen, ob die zweite Verteilung normal ist oder nicht. Grundsätzlich gehe ich mit dieser Unsicherheit um, indem ich mich nur auf die Normalverteilung konzentriere. Dies kann der beste Ansatz sein oder auch nicht.
Wenn Sie davon ausgehen können, dass die beiden Populationen vollständig getrennt sind (dh, alle Werte aus der Verteilung A sind kleiner als alle Werte aus der Verteilung B), besteht ein Ansatz darin, die Optimize () - Funktion in R zu verwenden, um nach dem entsprechenden Haltepunkt zu suchen liefert Schätzungen des Mittelwerts und des SD der Normalverteilung, die die Daten am wahrscheinlichsten machen:
Wenn Sie nicht von einer vollständigen Trennung ausgehen können, müssen Sie meiner Meinung nach für die zweite Verteilung eine gewisse Verteilung annehmen und dann die Mischungsmodellierung verwenden. Beachten Sie, dass die Gemischmodellierung die einzelnen Datenpunkte nicht wirklich kennzeichnet, sondern Ihnen den Mischungsanteil und die Schätzungen der Parameter jeder Verteilung (z. B. Mittelwert, SD usw.) liefert.
quelle
optimize
Ich verstehe, dass zwei Distributionen nebeneinander sein müssen. In meinem Fall ist einer in dem anderen, dh die Werte aus der zweiten Grundgesamtheit liegen auf beiden Seiten der Grenzen.Ich bin überrascht, dass niemand die offensichtliche Lösung vorgeschlagen hat:
Nun zur Erklärung: Die
ltsReg
Funktion im Paketrobustbase
, wenn sie mit der Option aufgerufen wirdergibt die univariaten (exakten) MCD-Gewichte. (Dies sind 0-1 Gewichte eines n-Vektors, die in der
$raw.weights
Objekt . Der Algorithmus zur Identifizierung ist der MCD-Schätzer (1)).Kurz gesagt, diese Gewichte sind 1 für die Mitglieder der Teilmenge vonh = ⌈ ( n + 2 ) / 2 ⌉ konzentriertesten Beobachtungen.
In der ersten Dimension werden zunächst alle Beobachtungen sortiert und dann das Maß aller zusammenhängenden Teilmengen von berechneth Beobachtungen: bezeichnen
x( i ) das icht h Eingabe des Vektors sortierter Beobachtungen, errechnet es das Maß von ( x( 1 ), . . . , x( h + 1 )) dann ( x( 2 ), . . . , x( h + 2 ))
und so weiter ...) behält dann den mit kleinerem Maß.
(z
Bei diesem Algorithmus wird davon ausgegangen, dass Ihre Interessengruppe den größten Teil der ursprünglichen Stichprobe ausmacht und eine symmetrische Verteilung aufweist (es gibt jedoch keine Hypothese zur Verteilung der verbleibendenn - h Überwachung).
quelle