lm.fit(x,y,offset = offset,singular.ok,...)中的错误0具有boxcox公式

时间:2017-04-28 10:20:16

标签: r eval lm

我正在尝试使用以下代码运行boxcox转换:

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

但我一直收到这个错误:

lm.fit中的错误(x,y,offset = offset,singular.ok = singular.ok,...):0(非NA)情况调用:... eval - &gt; eval - &gt; boxcar - &gt; boxcar.formula - &gt; lm - &gt; lm.fit执行暂停

提前致谢!

2 个答案:

答案 0 :(得分:6)

错误消息

  

lm.fit(x,y,offset = offset,singular.ok = singular.ok,...):0   (非NA)案件

当变量$user->datChaned = date('Y-m-d H:i:s'); lm(y ~ x)(或两者)只有NA时,

x命令生成。
这是一个例子:

y

在您的代码中,我建议您测试(在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 命令之前),如果您的某个变量中包含所有NAs:

lm

在我的例子中:

all(is.na(x))
all(is.na(y))
all(is.na(y^trans))

答案 1 :(得分:2)

错误可能由数据中的不适用错误的转换

触发
#From the mtcars dataset
mpg.reg3 <- lm(mpg ~ cylinders + displacement + horsepower + weight + acceleration + year + origin, data=Auto, na.action=na.exclude)

注意na.action=参数。将此设置为na.exclude将使lm函数忽略数据中的NA。另一个选项是na.omit,其作用方式略有不同。

另一个问题可能是您的数据转换不正确-请仔细检查您的交互条件和操作。