Bedingt Farbdatenpunkte außerhalb der Konfidenzbänder in R

7

Ich muss Datenpunkte, die außerhalb der Konfidenzbänder liegen, anders als in den Bändern farblich darstellen. Sollte ich meinem Datensatz eine eigene Spalte hinzufügen, um aufzuzeichnen, ob die Datenpunkte innerhalb der Vertrauensbereiche liegen? Können Sie bitte ein Beispiel geben?

Beispieldatensatz:

%Vor%     
D W 21.04.2010, 23:21
quelle

3 Antworten

6

Der einfachste Weg ist wahrscheinlich, einen Vektor von TRUE/FALSE -Werten zu berechnen, die anzeigen, ob ein Datenpunkt innerhalb des Konfidenzintervalls liegt oder nicht. Ich werde Ihr Beispiel ein wenig neu mischen, so dass alle Berechnungen abgeschlossen sind, bevor die Plotbefehle ausgeführt werden. Dies bietet eine saubere Trennung in der Programmlogik, die ausgenutzt werden könnte, wenn Sie einige davon in eine Funktion verpacken würden .

Der erste Teil ist ziemlich gleich, außer dass ich den zusätzlichen Aufruf von lm() in predict() durch die Variable severity.lm ersetzt habe. Es ist nicht notwendig, zusätzliche Rechenressourcen zu verwenden, um das lineare Modell bereits zu berechnen habe es gespeichert:

%Vor%

Nun werden wir die Konfidenzintervalle für die ursprünglichen Datenpunkte berechnen und einen Test durchführen, um zu sehen, ob die Punkte innerhalb des Intervalls liegen:

%Vor%

Dann machen wir das Plot - zuerst eine High-Level-Plotfunktion plot() , wie Sie es in Ihrem Beispiel verwendet haben, aber wir werden nur die Punkte innerhalb des Intervalls plotten. Wir werden dann mit der Low-Level-Funktion points() fortfahren, die alle Punkte außerhalb des Intervalls in einer anderen Farbe plotten wird. Schließlich wird matplot() verwendet, um die Konfidenzintervalle bei Ihrer Verwendung auszufüllen. Anstatt jedoch par(new=TRUE) aufzurufen, übergebe ich lieber das Argument add=TRUE an High-Level-Funktionen, damit sie sich wie Low-Level-Funktionen verhalten.

Die Verwendung von par(new=TRUE) ist wie ein schmutziger Trick, eine Plotfunktion, die unvorhergesehene Konsequenzen haben kann. Das Argument add wird von vielen Funktionen zur Verfügung gestellt, damit sie Informationen zu einem Plot hinzufügen und nicht neu zeichnen. Ich würde empfehlen, dieses Argument nach Möglichkeit zu nutzen und als letzten Ausweg auf par() -Manipulationen zurückzugreifen.

%Vor%     
Sharpie 22.04.2010, 00:55
quelle
10

Nun, ich dachte, das wäre mit ggplot2 ziemlich einfach, aber jetzt merke ich, dass ich keine Ahnung habe, wie die Vertrauensgrenzen für stat_smooth / geom_smooth berechnet werden.

Betrachten Sie Folgendes:

%Vor%

Dies erzeugt: alt text http://ifellows.ucsd.edu/pmwiki/uploads/Main/strangeplot.jpg

Ich verstehe nicht, warum die von stat_smooth berechnete Konfidenzband nicht mit der direkt aus der Vorhersage berechneten Bandbreite (d. h. den roten Linien) übereinstimmt. Kann jemand etwas Licht darauf werfen?

Bearbeiten:

hat es herausgefunden. ggplot2 verwendet 1,96 * Standardfehler, um die Intervalle für alle Glättungsmethoden zu zeichnen.

%Vor%     
Ian Fellows 22.04.2010 00:50
quelle
4

Ich mochte die Idee und versuchte, eine Funktion dafür zu machen. Natürlich ist es bei weitem nicht perfekt. Ihre Kommentare sind willkommen

%Vor%

Benutze es so:

%Vor%     
George Dontas 22.04.2010 12:08
quelle