Ik probeer een boxcox-transformatie uit te voeren met de volgende code:
urban1 <- subset(ski,urban <= 4,na.rm=TRUE)
ski$gender <- as.numeric((as.character(ski$gender)),na.rm=TRUE)
urban1 <- as.numeric((as.character(urban1)))
x <- (ski$gender*urban1)
y <- ski$EPSI.
bc <- boxcox(y ~ x)
(trans <- bc$x[which.max(bc$y)])
model3 <- lm(y ~ x)
model3new <- lm(y^trans ~ x)
ski$EPSI. <- ski$EPSI. + 1
Maar ik krijg deze foutmelding:
FOUT IN LM.FIT (X, Y, OFFSET = Offset, Singular.OK = Singular.OK, …): 0 (niet-na) Gevallen bellen: … Eval – & GT; EVAL – & GT; BOXCAR – & GT; BoxCar.Formula – & GT; LM – & GT; LM.FIT-uitvoering stopte
Alvast bedankt!
Antwoord 1, Autoriteit 100%
Het foutbericht
lm.fit (x, y, offset = offset, singular.ok = singular.ok, …): 0
(niet-na) gevallen
wordt gegenereerd door de lm(y ~ x)
opdracht wanneer variabelen x
of y
(of beide) alleen NAS hebben.
Hier is een voorbeeld:
n <- 10
x <- rnorm(n,1)
y <- rep(NA,n)
lm(y ~ x)
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
0 (non-NA) cases
In uw code, stel ik aan om te testen (net voor uw lm
-opdrachten) als een van uw variabelen alle NAS heeft met behulp van:
all(is.na(x))
all(is.na(y))
all(is.na(y^trans))
In mijn voorbeeld:
all(is.na(y))
[1] TRUE
Antwoord 2, Autoriteit 18%
De fout kan worden veroorzaakt door NA’s in uw gegevensof een slechte transformatie
#From the mtcars dataset
mpg.reg3 <- lm(mpg ~ cylinders + displacement + horsepower + weight + acceleration + year + origin, data=Auto, na.action=na.exclude)
Let op het argument na.action=
. Als u dit instelt op na.exclude
, kan de functie lm
NA’s in uw gegevens negeren. Een andere optie is na.omit
die op een iets andere manier werkt.
Het andere probleem kan een slechte transformatie van uw gegevens zijn. Controleer nogmaals uw interactietermen en manipulaties.