Ich bin auf der Suche nach Vorschlägen für den Umgang mit NA in linearen Regressionen, wenn alle Vorkommen einer unabhängigen/erklärenden Variable NA sind (d. H. unten).lineares Modell, wenn alle Vorkommen von unabhängigen Variablen sind NA
Ich weiß, die offensichtliche Lösung wäre, die unabhängige/erklärende Variable aus dem Modell auszuschließen, aber ich bin durch mehrere Regionen Looping und würde bevorzugen, keine anderen funktionalen Formen für jede Region haben.
Unten finden Sie einige Beispieldaten:
set.seed(23409)
n <- 100
time <- seq(1,n, 1)
x1 <- cumsum(runif(n))
y <- .8*x1 + rnorm(n, mean=0, sd=2)
x2 <- seq(1,n, 1)
x3 <- rep(NA, n)
df <- data.frame(y=y, time=time, x1=x1, x2=x2, x3=x3)
# Quick plot of data
library(ggplot2)
library(reshape2)
df.melt <-melt(df, id=c("time"))
p <- ggplot(df.melt, aes(x=time, y=value)) +
geom_line() + facet_grid(variable ~ .)
p
ich die Dokumentation für lm
gelesen haben und versucht, verschiedene na.action
Einstellungen ohne Erfolg:
lm(y~x1+x2+x3, data=df, singular.ok=TRUE)
lm(y~x1+x2+x3, data=df, na.action=na.omit)
lm(y~x1+x2+x3, data=df, na.action=na.exclude)
lm(y~x1+x2+x3, data=df, singular.ok=TRUE, na.exclude=na.omit)
lm(y~x1+x2+x3, data=df, singular.ok=TRUE, na.exclude=na.exclude)
Gibt es eine Möglichkeit lm ohne Fehler zu laufen zu bekommen und geben Sie einfach einen Koeffizienten für die erklärende Reflexion der fehlenden Erklärungskraft (dh entweder Null oder NA) von der betreffenden Variable zurück?
Ein interessantes Problem, es ist interessant, die Ergebnisse von 'model.matrix suchen (y ~ x1 + x2 + x3, df)' - Ich denke, das ist, wo das Problem auftritt. Das Problem bei der Verwendung von "na.action" ist, dass dies von Fall zu Fall funktioniert. Wenn also irgendwelche Werte der erklärenden Variablen NA sind, wird der Fall (Zeile) weggelassen. – mnel
Könnten Sie einfach überprüfen, ob die bestimmte Variable fehlt, indem Sie 'all (is.na (var))' verwenden und dann die Formel erstellen, um mit 'paste' und' as.formula' an 'lm' zu übergeben? I.e. - Wenn die Variable ganz aus NA besteht, löschen Sie sie aus dem Modell und speichern Sie möglicherweise eine Liste aller Formelaufrufe, die am Ende verwendet wurden. – thelatemail
Wenn Sie @thelatemails Kommentar hinzufügen, sollten Sie wahrscheinlich in Betracht ziehen, Variablen zu entfernen, wenn ein Teil (z. B. die Hälfte oder ein Drittel) ihrer Werte fehlt. Andernfalls werden viele Ihrer Fälle innerhalb der Gruppe (wie bei der listenweisen Löschung) verworfen und die Koeffizienten könnten für die Schätzung stark verzerrt sein. – ndoogan