HOWTO · R
Das Tilde-Symbol (~) in R verwenden
Erfahren Sie, was das Tilde-Symbol (~) in R-Formeln bedeutet, wie Sie es mit lm() verwenden und wie Sie seine Dokumentation mit help() finden.
Auf dieser Seite
In R erzeugt der Tilde-Operator (~) eine Formel. In einer Modellformel wie y ~ x benennt die linke Seite die zu modellierende Antwortvariable, und die rechte Seite gibt den Prädiktor an. Lesen Sie sie als „y mit x modellieren“. Das bloße Erstellen der Formel passt noch kein Modell an; eine Funktion wie lm() interpretiert sie.
So verwenden Sie den Tilde-Operator in R
Schreiben Sie response ~ predictor1 + predictor2, um eine Antwortvariable und zwei Prädiktoren anzugeben. In einer Modellformel fügt + Modellterme hinzu, statt die Prädiktorwerte miteinander zu addieren. Eine Formel kann auch nur eine rechte Seite haben, wie in ~ x; ob diese Form geeignet ist, hängt von der Funktion ab, die sie erhält.
Ein lineares Modell anpassen
Das folgende eigenständige Beispiel verwendet die Standardfunktion lm() von R. Es erstellt einen Datenrahmen, passt ein Modell an und gibt seine Koeffizienten aus.
measurements <- data.frame(
x = c(1, 2, 3, 4, 5),
y = c(3, 5, 6, 9, 11)
)
model <- lm(y ~ x, data = measurements)
print(coef(model))
(Intercept) x
0.8 2.0
Hier ist y die Antwortvariable und x der Prädiktor. Das Argument data sagt lm(), wo nach diesen Spalten zu suchen ist. Standardmäßig enthält dieses Modell einen Achsenabschnitt: coef(model) gibt den Achsenabschnitt und den Koeffizienten für x zurück. In der angepassten Geraden steht der Achsenabschnitt für die angepasste Antwort bei x = 0, und der Koeffizient für x steht für die Änderung der angepassten Antwort bei einer Zunahme von x um eine Einheit. Verwenden Sie summary(model), um die ausführlichere statistische Zusammenfassung zu erhalten.
Um die Formel anzupassen, ersetzen Sie die Spaltennamen und geben Sie Ihren eigenen Datenrahmen an. Für mehrere Prädiktoren verwenden Sie eine Formel wie y ~ x1 + x2. Innerhalb von lm() schließt y ~ x1 * x2 beide Prädiktoren und ihre Interaktion ein, während y ~ x - 1 den Achsenabschnitt entfernt. Dies sind Syntaxbeispiele, keine ausgeführten Beispiele. Prüfen Sie die Schreibweise und stellen Sie sicher, dass die referenzierten Spalten in den angegebenen Daten existieren.
Eine Formel dynamisch konstruieren
Wenn Variablennamen als Zeichenketten gespeichert sind, kann as.formula() Formeltext in ein Objekt umwandeln. Führen Sie dieses eigenständige Beispiel aus, um aus dem Antwortnamen "y" und den Prädiktornamen "x1" und "x2" eine Formel zu konstruieren und auszugeben:
response <- "y"
predictors <- c("x1", "x2")
formula_text <- paste(response, "~", paste(predictors, collapse = " + "))
model_formula <- as.formula(formula_text)
print(model_formula)
y ~ x1 + x2
Das innere paste() verbindet die Prädiktornamen mit +, und der äußere Aufruf setzt die Antwortvariable vor ~. Die resultierende Formel gibt y unter Verwendung beider Prädiktoren an. Die bloße Konstruktion passt kein Modell an und schätzt keine Koeffizienten. Um sie anzupassen, übergeben Sie model_formula zusammen mit einem Datenrahmen, der die benannten Spalten enthält, an lm(); nur für die Konstruktion der Formel werden die Spalten nicht benötigt.
Den Operator nachschlagen
Verwenden Sie die Funktion help() mit dem Operator in Anführungszeichen: help("~"). Dies ruft die Tilde-Dokumentation von R auf. Ihre Darstellung hängt von Ihrer R-Oberfläche und den Hilfeeinstellungen ab; sie setzt keinen bestimmten Dateibrowser-Tab in RStudio voraus. Für die Syntax der Modellterme konsultieren Sie auch help("formula").
Fazit
Verwenden Sie ~, um Formeln zu konstruieren und sie an Funktionen zu übergeben, die Formeln akzeptieren. Platzieren Sie bei einem linearen Modell die Antwortvariable links und die Prädiktoren rechts. Verwenden Sie help("~"), um den Operator nachzuschlagen, und help("formula") für die Konventionen von Modellformeln.