R:X错误中的NA / NaN / Inf

时间:2013-12-27 23:15:47

标签: r

我正在尝试使用R执行负二项回归。当我执行以下命令时:

 DV2.25112013.nb <- glm.nb(DV2.25112013~ Bcorp.Geographic.Proximity + Dirty.Industry +
                Clean.Industry + Bcorp.Industry.Density + State + Dirty.Region +
                Clean.Region + Bcorp.Geographic.Density + Founded.As.Bcorp + Centrality +
                Bcorp.Industry.Density.Squared + Bcorp.Geographic.Density.Squared +
                Regional.Institutionalization + Sales + Any.Best.In.Class +           
                Dirty.Region.Heterogeneity + Clean.Region.Heterogeneity + 
                Ind.Dirty.Heterogeneity+Ind.Clean.Heterogeneity + Industry, 
                data = analysis25112013DF6)

R出现以下错误:

Error in glm.fitter(x = X, y = Y, w = w, etastart = eta, offset = offset,  : 
  NA/NaN/Inf in 'x'
In addition: Warning message:
step size truncated due to divergence 

我不明白这个错误,因为我的数据矩阵不包含任何NA / NaN / Inf值...我该如何解决这个问题?

谢谢,

2 个答案:

答案 0 :(得分:2)

我认为这个错误的最可能原因是数据中的负值或零,因为glm.nb中的默认链接是“log”。通过更改link="identity"进行测试很容易。 我还认为你需要尝试更小的模型....可能会有四分之一的变量开始。这也允许您将相关变量作为包添加,因为它从您可能具有与分类变量共线性的严重可能性的名称中查找。

我们确实需要数据描述。我想知道Dirty.Industry + Clean.Industry。这种二分法可以通过具有这些水平的因子变量来更好地处理。如果Clean = not-Dirty,这会阻止共线性。也许与你的“异质性”变量类似。 (我不相信@BenBolker的评论是正确的。我认为你很可能在地址编码问题之前首先需要统计咨询。)

require(MASS)
data(quine)  # following example in ?glm.nb page

> quine$Days[1] <- -2

> quine.nb1 <- glm.nb(Days ~ Sex/(Age + Eth*Lrn), data = quine, link = "identity")
Error in eval(expr, envir, enclos) : 
  negative values not allowed for the 'Poisson' family

> quine$Days[1] <- 0
> quine.nb1 <- glm.nb(Days ~ Sex/(Age + Eth*Lrn), data = quine, link = "identity")
Error: no valid set of coefficients has been found: please supply starting values
In addition: Warning message:
In log(y/mu) : NaNs produced

答案 1 :(得分:1)

我已经通过将控制参数放入maxiter = 10或更低的模型假设来解决了这个问题。默认值为50次迭代。或许它可以为您提供更多迭代。试试