首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Poisson回归AIC表

Poisson回归AIC表
EN

Stack Overflow用户
提问于 2015-03-05 20:21:47
回答 2查看 1.6K关注 0票数 0

我在R中进行了一系列泊松回归,然后根据AIC对我的排名模型进行排序。然而,我得到了这样的结果:

代码语言:javascript
复制
 > aictab(cand.set = Cand.models, sort = TRUE)

  Model selection based on AICc :

     K AICc Delta_AICc AICcWt Cum.Wt   LL
Mod7 4  Inf        NaN    NaN     NA -Inf
Mod6 3  Inf        NaN    NaN     NA -Inf
Mod5 3  Inf        NaN    NaN     NA -Inf
Mod4 3  Inf        NaN    NaN     NA -Inf
Mod3 2  Inf        NaN    NaN     NA -Inf
Mod2 2  Inf        NaN    NaN     NA -Inf
Mod1 2  Inf        NaN    NaN     NA -Inf

每个模型都分别给出了拦截的结果,但没有给出AIC的结果。

代码语言:javascript
复制
> Cand.models[[1]]

Call:  glm(formula = D ~ A, family = poisson(), data = d)

Coefficients:
(Intercept)        Slope  
   -0.17356      0.07058  

Degrees of Freedom: 251 Total (i.e. Null);  250 Residual
Null Deviance:      55.35 
Residual Deviance: 54.99    AIC: Inf

当我对family=gaussian(标识)做同样的事情时,我会得到结果。当我做泊松回归时,AIC怎么会不起作用?

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-07 03:11:47

很难理解为什么没有看到您的数据或代码(下一次提示)就能得到您所得到的结果。但是,AIC(c)模型选择肯定可以与Poisson回归一起工作--下面就是一个例子:

代码语言:javascript
复制
library(AICcmodavg)

# make some dummy data (taken from: http://stats.stackexchange.com/questions/11096/how-to-interpret-coefficients-in-a-poisson-regression)
treatment     <- factor(rep(c(1, 2), c(43, 41)), 
                    levels = c(1, 2),
                    labels = c("placebo", "treated"))
improved      <- factor(rep(c(1, 2, 3, 1, 2, 3), c(29, 7, 7, 13, 7, 21)),
                    levels = c(1, 2, 3),
                    labels = c("none", "some", "marked"))    
numberofdrugs <- rpois(84, 10) + 1    
healthvalue   <- rpois(84, 5)   
y             <- data.frame(healthvalue, numberofdrugs, treatment, improved)


# Model selection using AICc
# setup a list of candidate models
Cand.models <- list( )

Cand.models[[1]] <- glm(healthvalue~numberofdrugs+treatment+improved, data=y, family=poisson)
Cand.models[[2]] <- glm(healthvalue~treatment, data=y, family=poisson)

# create a vector of names to trace back models in set
Modnames <- paste("mod", 1:length(Cand.models), sep = " ")

# generate AICc table
aictab(cand.set = Cand.models, modnames = Modnames, sort = TRUE)
票数 1
EN

Stack Overflow用户

发布于 2017-08-10 21:41:18

确保公式中的D是由整数非0值构成的,如果不是Poisson glm则会爆炸。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28886986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档