微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

prettyNum.Internalformatx,trim,digits,nsmall,width,3L,:Linvalid'nsmall'argument

如何解决prettyNum.Internalformatx,trim,digits,nsmall,width,3L,:Linvalid'nsmall'argument

我正在以下链接中对某些计数数据进行负二项式分析:https://www.dropbox.com/s/q7fwqicw3ebvwlg/stackquestion.csv?dl=0

当我尝试将所有自变量拟合到模型中时,我遇到了一些问题(错误消息),这使我想逐一查看每个自变量以找出引起问题的变量。这是我发现的:

对于所有其他变量,当我将变量拟合到Y时,A列看起来很正常:

m2 <- glm.nb(A~K,data=d)
summary(m2)

Call:
glm.nb(formula = A ~ K,data = d,init.theta = 0.5569971932,link = log)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.5070  -1.2538  -0.4360   0.1796   1.9588  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept) -0.66185    0.84980  -0.779    0.436    
K            0.25628    0.03016   8.498   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(dispersion parameter for Negative Binomial(0.557) family taken to be 1)

    Null deviance: 113.202  on 56  degrees of freedom
Residual deviance:  70.092  on 55  degrees of freedom
AIC: 834.86

Number of Fisher Scoring iterations: 1


              Theta:  0.5570 
          Std. Err.:  0.0923 

 2 x log-likelihood:  -828.8570 

但是,我找到了变量L,当我将L拟合到Y时,我得到了:

m1 <- glm.nb(A~L,data=d)
There were 50 or more warnings (use warnings() to see the first 50)
summary(m1)

Call:
glm.nb(formula = A ~ L,init.theta = 5136324.722,link = log)

Deviance Residuals: 
   Min      1Q  Median      3Q     Max  
-67.19  -18.93  -12.07   13.25   64.00  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  3.45341    0.01796   192.3   <2e-16 ***
L            0.24254    0.00103   235.5   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(dispersion parameter for Negative Binomial(5136325) family taken to be 1)

    Null deviance: 97084  on 56  degrees of freedom
Residual deviance: 28529  on 55  degrees of freedom
AIC: 28941

Number of Fisher Scoring iterations: 1

Error in prettyNum(.Internal(format(x,trim,digits,nsmall,width,3L,: 
  invalid 'nsmall' argument

您会看到init.theta和AIC太大,并且有50条警告和一条错误消息。

警告消息是这个

 In theta.ml(Y,mu,sum(w),w,limit = control$maxit,trace = control$trace >  ... :
  iteration limit reached

实际上,变量M和L是对一件事的两种观察。我没有发现变量L有任何异常。对于所有数据,只有列L存在此问题。

所以我想知道此错误消息的确切含义:prettyNum(.Internal(format(x,trim,digits,nsmall,width,3L,: Invalid'nsmall'argu ..由于我只是观察到这些数据,我该如何解决错误?谢谢!

解决方法

重要的信息在warnings()中:当L是自变量时,GLM收敛过程中的默认迭代次数不足以收敛于模型拟合。

如果您手动将maxit参数设置为较高的值,则可以正确安装A ~ L,而不会出现错误:

glm.nb(A ~ L,data = d,control = glm.control(maxit = 500))

有关更多信息,请参见glm.control documentation。请注意,您还可以为init.theta设置一个合理的值-这样可以防止theta和AIC都适合不合理的值:

m1 <- glm.nb(A ~ L,data = df,control = glm.control(maxit = 500),init.theta = 1.0)

输出:

    Call:
glm.nb(formula = A ~ L,init.theta = 0.8016681349,link = log)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-3.3020  -0.9347  -0.3578   0.1435   2.5420  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  1.25962    0.40094   3.142  0.00168 ** 
L            0.38823    0.02994  12.967  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for Negative Binomial(0.8017) family taken to be 1)

    Null deviance: 160.693  on 56  degrees of freedom
Residual deviance:  67.976  on 55  degrees of freedom
AIC: 809.41

Number of Fisher Scoring iterations: 1


              Theta:  0.802 
          Std. Err.:  0.140 

 2 x log-likelihood:  -803.405 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。