我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
我不明白这个错误,因为我的数据矩阵不包含任何NA/NaN/Inf值...我该如何解决这个问题?
谢谢,
我认为导致此错误的最可能原因是数据中的负值或零,因为 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13535 次 |
| 最近记录: |