Seit 2019 im DACH-RaumSeit 2019
50+ Statistik-Experten50+ Experten
Über 1.200 Projekte1.200+ Projekte
Alle StatistikprogrammeAlle Programme
Express möglichExpress
Statistik-Ratgeber

Wie erstellt man eine Regressionsanalyse in R?

R / RStudio · Maximilian Fuchs · 8. Juni 2026 · 10 Min. Lesezeit

Was ist eine lineare Regressionsanalyse?

Eine Regressionsanalyse in R lässt sich mit wenigen Zeilen Code durchführen – der zentrale Befehl lautet lm(). Dahinter steckt deutlich mehr, als es auf den ersten Blick scheint: Das Modell muss sorgfältig spezifiziert, der Output korrekt gelesen und die Annahmen systematisch geprüft werden.

Die lineare Regression modelliert den Zusammenhang zwischen einer abhängigen Variable (Kriterium) und einer oder mehreren unabhängigen Variablen (Prädiktoren). Formal beschreibt das Modell die Zielvariable als lineare Kombination der Prädiktoren plus einen Fehlerterm:

Einfaches lineares Regressionsmodell

Dabei ist der Achsenabschnitt (Intercept), der Regressionskoeffizient und der Residualfehler. Bei der multiplen Regression erweitert sich dieses Modell um weitere Prädiktoren .

R eignet sich hervorragend für Regressionsanalysen – sowohl für einfache Modelle in Bachelorarbeiten als auch für komplexe Designs in Dissertationen. Falls Sie noch am Anfang mit R stehen, lohnt ein Blick auf unseren Beitrag Was ist R und wofür wird es in der Statistik verwendet?

Daten vorbereiten und laden

Bevor Sie ein Modell schätzen, müssen Ihre Daten in R vorliegen und auf Vollständigkeit geprüft sein. Fehlende Werte können das Ergebnis verzerren – R’s lm() entfernt standardmäßig alle Zeilen mit fehlenden Werten (na.action = na.omit), was bei vielen NAs zu einem erheblichen Datenverlust führt.

Ein typischer Einstieg sieht so aus:

R
# Daten laden (z.B. aus einer CSV-Datei)
daten <- read.csv("meine_daten.csv")

# Überblick verschaffen
str(daten)
summary(daten)

# Fehlende Werte prüfen
colSums(is.na(daten))

Wie Sie Daten grundsätzlich in R importieren, erläutert unser Artikel Wie importiert man Daten in R? Der Umgang mit fehlenden Werten ist ein eigenes Thema – mehr dazu finden Sie in unserem Beitrag Wie geht man mit fehlenden Werten in R um?

Gut zu wissen Das Argument data in lm() erwartet einen data.frame, eine Liste oder eine Umgebung, die alle Modellvariablen enthält. Es empfiehlt sich, immer mit einem sauber strukturierten data.frame zu arbeiten, um Fehler bei der Variablenzuordnung zu vermeiden.

Das Modell mit lm() schätzen

Das Herzstück jeder Regressionsanalyse in R ist die Funktion lm() aus dem vorinstallierten stats-Paket. Laut offizieller Dokumentation ist lm() die zentrale R-Funktion zur Schätzung linearer Modelle und deckt neben der Regression auch einfaktorielle Varianzanalyse und Kovarianzanalyse ab.

Die Modellformel verstehen

Das wichtigste Argument ist die Formel. Sie beschreibt symbolisch, welche Variablen wie miteinander verknüpft werden:

  • y ~ x → einfache Regression: y wird durch x vorhergesagt
  • y ~ x1 + x2 → multiple Regression mit zwei Prädiktoren
  • y ~ x1 * x2 → Haupteffekte und Interaktionsterm
  • y ~ x1 + I(x1^2) → quadratischer Term (Polynom)
  • y ~ . → alle übrigen Variablen im Datensatz als Prädiktoren

Einfaches Regressionsmodell berechnen

Ein konkretes Beispiel: Sie möchten untersuchen, ob das Alter einer Person (alter) deren Einkommen (einkommen) vorhersagt:

R
# Einfaches lineares Regressionsmodell
modell <- lm(einkommen ~ alter, data = daten)

# Ergebniszusammenfassung
summary(modell)

Das erzeugte lm-Objekt speichert alle Modellinformationen. Über spezialisierte Funktionen können Sie gezielt darauf zugreifen:

Wichtige Funktionen für lm-Objekte
Funktion Was sie liefert
summary(modell) Vollständige Ergebnisübersicht (Koeffizienten, R², p-Werte)
coef(modell) Nur die Regressionskoeffizienten
fitted(modell) Vorhergesagte Werte (Fitted Values)
residuals(modell) Residuen (Abweichungen der Beobachtungen vom Modell)
vcov(modell) Varianz-Kovarianz-Matrix der Koeffizienten
predict(modell) Vorhersagen für neue Datenpunkte
anova(modell) Varianzanalysetabelle

Output mit summary() lesen

Der Output von summary(modell) enthält alle wesentlichen Kennzahlen. Ein typisches Ergebnis sieht so aus:

R Output
Call:
lm(formula = einkommen ~ alter, data = daten)

Residuals:
    Min      1Q  Median      3Q     Max
-2105.3  -512.4    45.2   489.7  2341.1

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept) 18542.10     432.15   42.91   <2e-16 ***
alter          312.47      11.83   26.41   <2e-16 ***

Residual standard error: 748.3 on 197 degrees of freedom
Multiple R-squared:  0.7798,   Adjusted R-squared:  0.7787
F-statistic: 697.5 on 1 and 197 DF,  p-value: < 2.2e-16

Die wichtigsten Kennzahlen im Überblick

  • Estimate (Intercept): Der vorhergesagte Wert von y, wenn x = 0. Hier: 18.542 € Grundeinkommen.
  • Estimate (alter): Pro zusätzlichem Lebensjahr steigt das Einkommen um 312 €.
  • Std. Error: Standardfehler des Koeffizienten – je kleiner, desto präziser die Schätzung.
  • t value & Pr(>|t|): Teststatistik und p-Wert für den Test, ob der Koeffizient signifikant von null abweicht.
  • Multiple R-squared: Erklärte Varianz. Hier erklärt das Alter 77,98 % der Einkommensvarianz.
  • Adjusted R-squared: Korrigiertes R² – relevanter bei multiplen Modellen, da es die Anzahl der Prädiktoren berücksichtigt.
  • F-statistic & p-value: Globaler Modelltest – ist das Modell insgesamt signifikant besser als das Nullmodell?

Eine ausführliche Anleitung zur Interpretation aller Kennzahlen finden Sie in unserem Beitrag Wie interpretiert man den R-Output einer Regression?

Modellannahmen prüfen

Lineare Regressionsmodelle setzen mehrere Annahmen voraus. Werden diese verletzt, sind die Schätzer und Inferenzaussagen möglicherweise nicht valide. Die wichtigsten Annahmen sind:

  • Linearität: Der Zusammenhang zwischen Prädiktoren und Kriterium ist linear.
  • Normalverteilung der Residuen: Die Fehler sind näherungsweise normalverteilt.
  • Homoskedastizität: Die Varianz der Residuen ist über alle Prädiktorwerte konstant.
  • Unabhängigkeit der Residuen: Keine systematische Autokorrelation.
  • Keine perfekte Multikollinearität: Die Prädiktoren sind nicht vollständig linear abhängig.

Diagnostikplots mit plot()

R’s Basisfunktion plot() liefert vier Standardgrafiken zur Modelldiagnostik:

R
# Vier Diagnostikplots auf einmal anzeigen
par(mfrow = c(2, 2))
plot(modell)

Die vier Plots im Überblick:

  • Residuals vs. Fitted: Prüfung auf Linearität und Homoskedastizität – die Punkte sollten zufällig um die Nulllinie streuen.
  • Normal Q-Q: Prüfung der Normalverteilung – Punkte sollten nah an der Diagonalen liegen.
  • Scale-Location: Erneute Prüfung der Homoskedastizität mit Wurzel der standardisierten Residuen.
  • Residuals vs. Leverage: Identifikation einflussreicher Datenpunkte (Cook’s Distance).
Häufiger Fehler Viele Studierende überspringen die Diagnostikplots und berichten nur Koeffizienten und p-Werte. Das ist methodisch problematisch: Werden Annahmen verletzt, sind alle Inferenzaussagen des Modells zweifelhaft. Prüfen Sie immer zuerst die Annahmen, bevor Sie Ergebnisse interpretieren.

Erweiterte Diagnostik mit car und lmtest

Für wissenschaftliche Arbeiten reicht die Basisdiagnostik oft nicht aus. Zwei Pakete erweisen sich in der Praxis als besonders nützlich.

Das Paket car: Companion to Applied Regression

Das Paket car ergänzt lm() um methodisch fundierte Diagnostikfunktionen. Es ist eng an das Standardlehrbuch zur angewandten Regressionsanalyse angelehnt und deckt typische Fragestellungen wie Einflussdiagnostik, robuste Auswertungen und Modellprüfungen ab.

R
# car installieren und laden
install.packages("car")
library(car)

# Varianzinflationsfaktor (VIF) – Multikollinearität prüfen
# Werte deutlich über 5 oder 10 deuten auf Multikollinearität hin
vif(modell_multiple)

# Levene-Test auf Varianzhomogenität
leveneTest(einkommen ~ gruppe, data = daten)

# Einflussreiche Fälle identifizieren
influencePlot(modell)

Wichtig: Das car-Paket liefert Zusatzdiagnostik, ersetzt aber nicht die inhaltliche Begründung der Modellwahl. Welche Prädiktoren ins Modell aufgenommen werden, muss immer theoretisch und anhand des Studiendesigns begründet werden – nicht allein durch statistische Kriterien.

Das Paket lmtest: Formale Tests für Modellannahmen

Für formale statistische Tests der Modellannahmen bietet das Paket lmtest eine strukturierte Sammlung diagnostischer Verfahren. Es ist als spezialisiertes Werkzeug zur systematischen Prüfung linearer Regressionsmodelle konzipiert und liefert unter anderem Tests auf Autokorrelation und Heteroskedastizität.

R
# lmtest installieren und laden
install.packages("lmtest")
library(lmtest)

# Breusch-Pagan-Test auf Heteroskedastizität
# H0: Homoskedastizität; signifikantes Ergebnis = Heteroskedastizität
bptest(modell)

# Breusch-Godfrey-Test auf Autokorrelation
# Besonders relevant bei Zeitreihendaten
bgtest(modell)

# Koeffizienteninferenz mit robusten Standardfehlern
coeftest(modell)

Methodisch gilt: Formale Tests wie der Breusch-Pagan-Test sollten nie mechanisch interpretiert werden. Bei großen Stichproben reagieren sie sehr sensitiv auf kleine Verletzungen, die inhaltlich bedeutungslos sein können. Betrachten Sie Testergebnisse immer zusammen mit Residuenplots, Studiendesign und Stichprobengröße.

Einfach erklärt Stellen Sie sich die Diagnostik wie einen medizinischen Check-up vor: Der Basischeck (plot(modell)) gibt Ihnen einen ersten Überblick. Spezialuntersuchungen (car, lmtest) klären auffällige Befunde genauer ab. Beide Ebenen gehören zu einer vollständigen Analyse.

Multiple Regression: mehrere Prädiktoren

Die multiple Regression funktioniert in R genauso wie die einfache – Sie erweitern lediglich die Formel um weitere Prädiktoren:

Multiples Regressionsmodell

R
# Multiples Regressionsmodell mit drei Prädiktoren
modell_multiple <- lm(einkommen ~ alter + bildungsjahre + berufserfahrung,
                       data = daten)

summary(modell_multiple)

# Modellvergleich: Trägt berufserfahrung zur Erklärung bei?
modell_basis <- lm(einkommen ~ alter + bildungsjahre, data = daten)
anova(modell_basis, modell_multiple)

Modellvergleich mit anova()

Der anova()-Befehl vergleicht zwei geschachtelte Modelle per F-Test. Ein signifikantes Ergebnis zeigt an, dass das größere Modell die Zielvariable signifikant besser erklärt als das kleinere. Das ist besonders nützlich, wenn Sie systematisch prüfen möchten, ob ein zusätzlicher Prädiktor einen echten Beitrag leistet.

Standardisierte Koeffizienten berechnen

Die unstandardisierten Koeffizienten aus lm() sind abhängig von der Skala der Variablen und daher nicht direkt vergleichbar. Für Abschlussarbeiten werden häufig standardisierte Beta-Gewichte erwartet:

R
# Standardisierte Koeffizienten über z-Transformation der Daten
daten_std <- as.data.frame(scale(daten[, c("einkommen", "alter",
                                            "bildungsjahre", "berufserfahrung")]))

modell_std <- lm(einkommen ~ alter + bildungsjahre + berufserfahrung,
                  data = daten_std)

summary(modell_std)

Wie Sie Effektstärken für Regressionsmodelle berechnen und berichten, erläutert unser Beitrag Wie berechnet man Effektstärken in R?

Ergebnisse visualisieren

Für die Darstellung von Regressionsgeraden und Prädiktionsintervallen empfiehlt sich das Paket ggplot2. Eine einfache Visualisierung der Regressionsgerade gelingt so:

R
library(ggplot2)

ggplot(daten, aes(x = alter, y = einkommen)) +
  geom_point(alpha = 0.5) +
  geom_smooth(method = "lm", se = TRUE, color = "steelblue") +
  labs(
    title = "Lineare Regression: Einkommen ~ Alter",
    x = "Alter (Jahre)",
    y = "Einkommen (€)"
  ) +
  theme_minimal()

Das Argument se = TRUE fügt das Konfidenzband um die Regressionsgerade hinzu. Eine detaillierte Einführung in Visualisierungen mit ggplot2 bietet unser Artikel Wie erstellt man Diagramme in R mit ggplot2?

Tipps für die Abschlussarbeit

Regressionsanalysen in Abschlussarbeiten scheitern selten an der Berechnung selbst – häufiger an der Dokumentation, der Annahmenprüfung oder der Interpretation. Folgende Punkte sollten Sie beachten:

Checkliste: Regressionsanalyse in der Abschlussarbeit

  • Forschungsfrage und Hypothesen klar formuliert, bevor das Modell spezifiziert wird
  • Datensatz auf fehlende Werte und Ausreißer geprüft
  • Modellformel theoretisch begründet (warum diese Prädiktoren?)
  • Alle vier Diagnostikplots via plot(modell) geprüft und kommentiert
  • Multikollinearität bei multiplen Modellen via VIF geprüft
  • Homoskedastizität formal getestet (z.B. Breusch-Pagan)
  • Unstandardisierte UND standardisierte Koeffizienten berichtet
  • R² und adjustiertes R² angegeben und inhaltlich eingeordnet
  • Effektstärken (z.B. f²) ergänzt
  • Ergebnistabelle APA-konform formatiert und exportiert

Wie Sie R-Ergebnisse sauber für Ihre Abschlussarbeit aufbereiten, zeigt unser Beitrag Wie exportiert man R-Ergebnisse für eine Abschlussarbeit? Falls Sie sich fragen, ob R oder SPSS für Ihre Arbeit besser geeignet ist, lesen Sie unseren Vergleich Ist R besser als SPSS für Abschlussarbeiten?

Wenn Sie unsicher sind, ob Ihr Regressionsmodell korrekt spezifiziert ist oder die Annahmen Ihrer Daten erfüllt sind, unterstützt Sie das Team von QuantExpert bei der methodischen Begleitung Ihrer statistischen Auswertung in R – von der Modellplanung bis zur Ergebnisinterpretation.

Regressionsanalyse R lm() Lineare Regression Multiple Regression Modellannahmen Abschlussarbeit RStudio

Ihr persönlicher Ansprechpartner

Maximilian Fuchs, M. Sc.

Teilen Sie uns mit, wie wir Ihnen helfen können.

  • Persönlicher Ansprechpartner
  • Schnelle Rückmeldung
  • Transparente Preise
  • Schutz Ihrer Daten

Fragen? Einfach anrufen!