FOUT IN LM.FIT (X, Y, OFFSET = Offset, Singular.OK, …) 0 Niet-NA-gevallen met BOXCOX-formule

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 xof 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 lmNA’s in uw gegevens negeren. Een andere optie is na.omitdie op een iets andere manier werkt.

Het andere probleem kan een slechte transformatie van uw gegevens zijn. Controleer nogmaals uw interactietermen en manipulaties.

Other episodes