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 geht man mit fehlenden Werten in R um?

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

Was sind fehlende Werte in R?

In R werden fehlende Werte als NA (Not Available) dargestellt. Sobald Sie einen Datensatz einlesen – sei es aus Excel, SPSS oder einer CSV-Datei – tauchen fehlende Einträge automatisch als NA auf. Fast jeder reale Datensatz enthält solche Lücken, sei es durch Abbrüche bei der Befragung, technische Fehler oder schlicht vergessene Antworten.

Das Problem: Viele R-Funktionen liefern bei NA-Werten ebenfalls NA als Ergebnis zurück. Ein einfaches mean(x) ergibt NA, sobald auch nur ein Wert fehlt. Das ist kein Bug, sondern eine bewusste Design-Entscheidung – R zwingt Sie dazu, sich aktiv mit fehlenden Werten auseinanderzusetzen, statt sie stillschweigend zu ignorieren.

Gut zu wissen Neben NA kennt R auch verwandte Sonderwerte: NaN (Not a Number, z. B. bei 0/0), NULL (leeres Objekt) und Inf (unendlich). Für fehlende Beobachtungen ist ausschließlich NA der korrekte Wert.

Mit is.na(x) prüfen Sie, welche Einträge eines Vektors oder Dataframes fehlen. sum(is.na(df)) gibt Ihnen die Gesamtanzahl fehlender Werte im gesamten Datensatz – ein sinnvoller erster Schritt bei jeder Datenanalyse.

MCAR, MAR und MNAR: Die drei Typen fehlender Werte

Bevor Sie sich für eine Strategie entscheiden, müssen Sie verstehen, warum Werte fehlen. Die Statistik unterscheidet drei Mechanismen, die grundlegend bestimmen, welche Methoden zulässig sind:

  • MCAR – Missing Completely At Random: Die Wahrscheinlichkeit, dass ein Wert fehlt, hängt weder von beobachteten noch von unbeobachteten Variablen ab. Fehlende Werte entstehen rein zufällig, z. B. durch einen Datenbankfehler. In diesem Fall sind einfache Methoden wie listenweiser Ausschluss unverzerrt – allerdings tritt MCAR in der Praxis selten auf.
  • MAR – Missing At Random: Die Fehlwahrscheinlichkeit hängt von beobachteten Variablen ab, aber nicht vom fehlenden Wert selbst. Ältere Befragte brechen häufiger bei bestimmten Fragen ab – wenn das Alter im Datensatz vorliegt, ist das Muster erklärbar. MAR ist die Standardannahme für Multiple Imputation.
  • MNAR – Missing Not At Random: Die Fehlwahrscheinlichkeit hängt vom fehlenden Wert selbst ab. Personen mit sehr hohem Einkommen geben dieses seltener an. MNAR ist methodisch am schwierigsten zu behandeln und erfordert spezialisierte Modelle.

Für Abschlussarbeiten ist die MAR-Annahme in den meisten Fällen vertretbar – vorausgesetzt, Sie begründen sie und prüfen die Missingness-Muster explorativ.

Fehlende Werte diagnostizieren und visualisieren

Bevor Sie imputed oder ausschließen, sollten Sie verstehen, wo und wie Werte fehlen. Dieser Diagnoseschritt wird in der Praxis häufig übersprungen – was problematisch ist, denn das Muster der Missingness bestimmt die geeignete Methode.

Basisdiagnose in R

Ein erster Überblick gelingt mit wenigen Zeilen:

R
# Anzahl fehlender Werte pro Variable
colSums(is.na(df))

# Anteil fehlender Werte pro Variable (in Prozent)
colMeans(is.na(df)) * 100

# Überblick über den gesamten Datensatz
summary(df)

Diese Ausgaben zeigen Ihnen sofort, welche Variablen besonders viele Lücken aufweisen und ob das Muster auf einzelne Spalten konzentriert ist oder sich über den gesamten Datensatz verteilt.

Visualisierung mit dem VIM-Paket

Für eine tiefergehende Analyse empfiehlt sich das R-Paket VIM. Es macht nicht nur Ersatzwerte, sondern macht die Struktur fehlender Werte grafisch sichtbar – was für die Wahl der geeigneten Imputationsmethode entscheidend ist. VIM bietet vier Imputationsmethoden (Hot-Deck, k-Nearest-Neighbor, Regressionsimputation und iterative robuste Imputation) sowie explorative Grafiken, die Missingness-Muster in Variablenkombinationen aufdecken.

R
install.packages("VIM")
library(VIM)

# Aggregationsplot: zeigt Muster fehlender Werte
aggr(df, col = c("navyblue", "red"),
     numbers = TRUE, sortVars = TRUE,
     labels = names(df), cex.axis = 0.7,
     gap = 3, ylab = c("Fehlende Werte", "Muster"))

Der aggr()-Plot zeigt auf einen Blick, welche Variablenkombinationen gleichzeitig fehlen. Das ist besonders hilfreich, um zu beurteilen, ob MCAR, MAR oder MNAR wahrscheinlicher ist.

Strategien im Überblick: Was tun mit fehlenden Werten?

Es gibt mehrere Wege, mit NA-Werten umzugehen. Welcher sinnvoll ist, hängt von der Anzahl fehlender Werte, dem Missingness-Mechanismus und der geplanten Analyse ab.

Strategien für fehlende Werte im Überblick
Strategie Wann geeignet R-Umsetzung Risiko
Listenweiser Ausschluss Wenige Lücken (< 5 %), MCAR na.omit(df) Informationsverlust, ggf. Verzerrung
Paarweiser Ausschluss Korrelationsanalysen, MCAR use = "pairwise.complete.obs" Inkonsistente Stichprobengrößen
Mittelwert-/Medianimputation Selten empfehlenswert Manuell mit ifelse() Unterschätzt Varianz, verzerrt Korrelationen
Einfache Imputation (VIM) Explorative Analysen, kleinere Datensätze kNN(df) aus VIM Unterschätzt Unsicherheit
Multiple Imputation (mice) Konfirmatorische Analysen, MAR-Annahme mice(df) Aufwändiger, aber methodisch korrekt
Häufiger Fehler Die Mittelwertimputation klingt praktisch, ist aber in den meisten Fällen keine gute Wahl. Sie reduziert künstlich die Varianz der Variable und verzerrt Korrelationen zwischen Variablen. Für konfirmatorische Analysen in Abschlussarbeiten sollte sie vermieden werden.

Listenweiser Ausschluss – wann er vertretbar ist

Der listenweise Ausschluss (complete case analysis) entfernt alle Beobachtungen mit mindestens einem fehlenden Wert. In R funktioniert das mit df_clean <- na.omit(df). Er ist nur dann unverzerrend, wenn MCAR gilt – also wenn die fehlenden Werte vollständig zufällig sind. Bei weniger als 5 % fehlenden Werten und keinem erkennbaren systematischen Muster ist der Ausschluss in Abschlussarbeiten häufig vertretbar, sollte aber begründet werden.

na.rm – der schnelle Weg für deskriptive Statistiken

Für einfache Berechnungen wie Mittelwert oder Standardabweichung können Sie fehlende Werte direkt in der Funktion übergehen:

R
# Mittelwert ohne NA-Werte berechnen
mean(df$alter, na.rm = TRUE)

# Standardabweichung ohne NA-Werte
sd(df$einkommen, na.rm = TRUE)

Das Argument na.rm = TRUE wird von den meisten Basisfunktionen in R unterstützt. Beachten Sie aber: Für Regressionsanalysen oder andere multivariate Verfahren löst dieses Argument das Problem nicht grundsätzlich – dort müssen Sie sich vorab für eine Strategie entscheiden.

Multiple Imputation mit dem mice-Paket

Die methodisch robusteste Lösung für fehlende Werte bei MAR-Annahme ist die Multiple Imputation by Chained Equations (MICE). Statt fehlende Werte einmalig zu ersetzen, erzeugt MICE mehrere vollständige Datensätze, analysiert diese getrennt und fasst die Ergebnisse durch Pooling zusammen – so bleibt die Unsicherheit durch die Imputation erhalten und fließt korrekt in die Inferenz ein.

Wie in der Fachliteratur zur R-Implementierung beschrieben, werden mehrere vollständige Datensätze erzeugt, getrennt analysiert und die Ergebnisse anschließend gepoolt – statt fehlende Werte einmalig zu ersetzen. Dieser Unterschied ist für die korrekte Quantifizierung von Unsicherheit entscheidend.

Installation und Grundprinzip

R
install.packages("mice")
library(mice)

Der Kernworkflow in mice besteht aus drei Schritten: Imputation → Analyse → Pooling.

Schritt 1: Imputation mit mice()

Die Funktion mice() erzeugt standardmäßig fünf imputierte Datensätze (m = 5) mit fünf Iterationen (maxit = 5). Laut der offiziellen Dokumentation werden dabei je nach Variablentyp automatisch passende Methoden gewählt: Predictive Mean Matching für kontinuierliche Variablen, logistische Regression für binäre, polytome Regression für nominale und proportionale Odds-Modelle für ordinale Variablen.

R
# Imputationsmodell erstellen
imp <- mice(df,
            m = 5,          # Anzahl der imputierten Datensätze
            maxit = 5,      # Anzahl der Iterationen
            seed = 123,     # Seed für Reproduzierbarkeit
            printFlag = FALSE)

# Überblick über die verwendeten Methoden
imp$method

Einfach erklärt Der seed-Parameter sorgt dafür, dass Ihre Imputation reproduzierbar ist. Ohne festen Seed erhalten Sie bei jedem Durchlauf leicht andere Ergebnisse. Für wissenschaftliche Arbeiten ist ein dokumentierter Seed daher unbedingt empfehlenswert.

Schritt 2: Analyse auf den imputierten Datensätzen

Mit der with()-Funktion führen Sie Ihre Analyse auf allen fünf Datensätzen gleichzeitig durch. Das folgende Beispiel zeigt eine lineare Regression:

R
# Lineare Regression auf allen imputierten Datensätzen
fit <- with(imp, lm(einkommen ~ alter + bildung + geschlecht))

# Überblick über die Modelle
summary(fit)

Schritt 3: Pooling der Ergebnisse

Im letzten Schritt fasst pool() die Ergebnisse aller fünf Analysen nach den Regeln von Rubin zusammen. Das Ergebnis ist ein einziger, korrekter Schätzer mit einem Standardfehler, der die Imputationsunsicherheit berücksichtigt:

R
# Ergebnisse poolen
pooled <- pool(fit)
summary(pooled)

Qualität der Imputation prüfen

Nach der Imputation sollten Sie prüfen, ob der Algorithmus konvergiert ist. Dafür eignet sich ein Trace-Plot:

R
# Konvergenz visuell prüfen
plot(imp)

# Stripplot: Vergleich imputierter vs. beobachteter Werte
stripplot(imp, pch = 20, cex = 1.2)

Im Trace-Plot sollten die Linien der verschiedenen Imputationsketten keine gerichteten Trends zeigen und wild durcheinander verlaufen – das ist ein Zeichen für gute Konvergenz. Systematische Muster oder Trends deuten auf Probleme hin und sollten in der Abschlussarbeit thematisiert werden.

Praktischer Workflow für Ihre Abschlussarbeit

Für eine Abschlussarbeit empfiehlt sich ein strukturierter, transparenter Umgang mit fehlenden Werten. Der folgende Ablauf hat sich in der Praxis bewährt:

Checkliste: Fehlende Werte in R – Schritt für Schritt

  • Missingness quantifizieren: colSums(is.na(df)) und Anteil pro Variable bestimmen
  • Muster visualisieren: VIM-Paket und aggr()-Plot einsetzen
  • Mechanismus beurteilen: MCAR, MAR oder MNAR – begründen und im Methodenteil dokumentieren
  • Methode wählen: Bei < 5 % und MCAR: listenweiser Ausschluss vertretbar; bei MAR und konfirmatorischer Analyse: mice
  • Seed setzen und dokumentieren: set.seed() oder seed-Argument in mice()
  • Imputationsmethoden passend zum Variablentyp wählen (mice wählt automatisch)
  • Konvergenz prüfen: Trace-Plot und Stripplot
  • Ergebnisse poolen: pool() statt auf einem einzelnen imputierten Datensatz auswerten
  • Vorgehen im Methodenteil berichten: Anzahl der Imputationen, Methode, Software-Version

Dieser Workflow gilt unabhängig davon, ob Sie anschließend eine t-Test-Analyse, eine Regressionsanalyse oder eine ANOVA durchführen – der Umgang mit fehlenden Werten sollte immer vor der eigentlichen Auswertung abgeschlossen und dokumentiert sein.

Beachten Sie außerdem: Wie die methodische Literatur betont, müssen beim MICE-Verfahren nicht nur technische Schritte korrekt ausgeführt, sondern auch Imputationsprozess, Modellwahl und diagnostische Prüfungen transparent berichtet werden. Prüfer und Gutachter erwarten, dass Sie zeigen, dass Sie den Mechanismus hinter Ihren Daten verstanden haben – nicht nur, dass Sie eine Funktion ausgeführt haben.

Wer sich bei der Umsetzung unsicher ist oder methodische Entscheidungen absichern möchte, findet bei unserer statistischen Beratung für R-Auswertungen individuelle Unterstützung – von der Diagnose fehlender Werte bis zur korrekten Ergebnisdarstellung in der Abschlussarbeit.

Welche weiteren R-Pakete für Ihre Auswertung relevant sind, erfahren Sie in unserem Beitrag zu den wichtigsten R-Paketen für die statistische Auswertung.

Fehlende Werte NA in R Multiple Imputation mice VIM MCAR MAR MNAR R Tutorial Abschlussarbeit

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!