geom_smooth für eine Teilmenge von Daten

8

Hier sind einige Daten und ein Plot:

%Vor%

Wie Sie sehen können, wird die lineare Regression stark von den Werten beeinflusst, bei denen x = 1 ist. Kann ich lineare Regressionen erhalten, die für x & gt; = 2 berechnet wurden, aber die Werte für x = 1 anzeigen (y ist entweder 0 oder 1). Der resultierende Graph wäre genau derselbe, mit Ausnahme der linearen Regressionen. Sie würden nicht vom Einfluss der Werte auf abscisse = 1

"leiden"     
Remi.b 19.06.2013, 15:31
quelle

2 Antworten

10

Es ist so einfach wie geom_smooth(data=subset(data, x >= 2), ...) . Es ist nicht wichtig, ob diese Handlung nur für dich selbst ist, aber realisiere, dass etwas wie dieses für andere irreführend wäre, wenn du nicht erwähnt, wie die Regression durchgeführt wurde. Ich würde empfehlen, die Transparenz der ausgeschlossenen Punkte zu ändern.

%Vor%

    
Matthew Plourde 19.06.2013, 15:39
quelle
7

Die reguläre Funktion lm hat ein Argument weights , mit dem Sie einer bestimmten Beobachtung eine Gewichtung zuweisen können. Auf diese Weise können Sie den Einfluss der Beobachtung auf das Ergebnis verdeutlichen. Ich denke, dies ist ein allgemeiner Weg, um mit dem Problem umzugehen, anstatt die Daten zu unterteilen. Die Ad-Hoc-Zuweisung von Gewichten ist natürlich nicht gut für die statistische Stabilität der Analyse. Es ist immer am besten, hinter den Gewichten eine Begründung zu haben, z. Beobachtungen mit geringem Gewicht haben eine höhere Unsicherheit.

Ich denke, unter der Haube ggplot2 verwendet die Funktion lm , so dass Sie in der Lage sein sollten, das Argument weights zu übergeben. Sie können die Gewichte über die Ästhetik ( aes ) hinzufügen, vorausgesetzt, dass das Gewicht in einem Vektor gespeichert ist:

%Vor%

Sie könnten auch Gewicht in eine Spalte im Dataset einfügen:

%Vor%

Dabei heißt die Spalte weight .

    
Paul Hiemstra 19.06.2013 15:40
quelle

Tags und Links