Error in lm.fit(x,y,offset = offset, singular.ok,...) 0 non-NA cases with boxcox formula
The error message
lm.fit(x,y,offset = offset, singular.ok = singular.ok, ...) : 0 (non-NA) cases
is generated by the lm(y ~ x)
command when variables x
or y
(or both) have only NAs.
Here is an example:
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 your code I suggest to test (just before your lm
commands) if one of your variables has all NAs using:
all(is.na(x))
all(is.na(y))
all(is.na(y^trans))
In my example:
all(is.na(y))
[1] TRUE
The error can be triggered by NA's in your data or a bad transformation
#From the mtcars dataset
mpg.reg3 <- lm(mpg ~ cylinders + displacement + horsepower + weight + acceleration + year + origin, data=Auto, na.action=na.exclude)
Notice the na.action=
argument. Setting this to na.exclude
will allow the lm
function to ignore NA's in your data. Another option is na.omit
which acts in a slightly different manner.
The other problem may be a bad transformation of your data- double check your interaction terms and manipulations.