比较逻辑模型时的ANOVA函数对于Deviance没有p值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较逻辑模型时的ANOVA函数对于Deviance没有p值相关的知识,希望对你有一定的参考价值。

我正在使用来自R的MASS库的活检数据集。我正处于创建逻辑回归模型的初始阶段,以查看哪些变量对患有恶性肿瘤的概率有影响。我删除了所有缺少数据的行(大约16个观察值)。所有变量本身都很重要,所以我从包含所有变量的最完整模型开始,第三个变量(V3 - 单元大小的均匀性)在这个最完整的模型中是最不重要的。

我删除了V3创建了另一个模型。然后我想使用anova()函数来查看两个模型的拟合是否存在显着差异。但是,我从anova测试中得不到p值。这是否意味着p值几乎为1?我在模型设置中的某处出错了吗?

所有输入都表示赞赏!

#post removal of rows with missing data from biopsy in library(MASS)     
relevel(biopsy$class, ref = "malignant")
#assigns value of interst to malignant instead of benign. 
fullest.model = glm(biopsy$class~biopsy[,2]+biopsy[,3]+biopsy[,4]+biopsy[,5]+
                  biopsy[,6]+biopsy[,7]+biopsy[,8]+biopsy[,9]+biopsy[,10]
                ,family = binomial(link = "logit"))
model1 = glm(biopsy$class~biopsy[,2]+biopsy[,4]+biopsy[,5]+
           biopsy[,6]+biopsy[,7]+biopsy[,8]+biopsy[,9]+biopsy[,10]
         ,family = binomial(link = "logit"))
anova(model1, fullest.model)

输出我得到:

      Resid. Df Resid. Dev Df   Deviance
1       674     102.89              
2       673     102.89  1 0.00090001

^看不到p值!!

答案
  1. 假设GLM y = 0.5 * x1 + 4 * x2,我们生成一些样本数据。 # Generate some sample data x1 <- 1:100; x2 <- gl(2, 50, 100); set.seed(2017); y <- 0.5 * x1 + 4 * as.numeric(x2) + rnorm(100);
  2. 我们现在适合两种型号: fit1估计模型y = beta0 + beta1 * x1的系数, fit2估计模型y = beta0 + beta1 * x1 + beta2 * x2的系数。 # Fit two models fit1 <- glm(y ~ x1 + x2); fit2 <- glm(y ~ x1);
  3. 执行ANOVA分析。 # Default ANOVA (note this does not perform any hypothesis test) anova(fit1, fit2); #Analysis of Deviance Table # #Model 1: y ~ x1 + x2 #Model 2: y ~ x1 # Resid. Df Resid. Dev Df Deviance #1 97 112.11 #2 98 213.39 -1 -101.28 # ANOVA with likelihood ratio test anova(fit1, fit2, test = "Chisq"); #Analysis of Deviance Table # #Model 1: y ~ x1 + x2 #Model 2: y ~ x1 # Resid. Df Resid. Dev Df Deviance Pr(>Chi) #1 97 112.11 #2 98 213.39 -1 -101.28 < 2.2e-16 *** #--- #Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 请注意,第一次ANOVA比较不执行任何假设检验。它只是计算两个模型之间偏差的变化。第二个ANOVA分析anova(..., test = "Chisq")通过计算观察卡方分布检验统计量(即偏差变化)为极端或更极端的概率,进行似然比检验(与anova(..., test = "LRT")相同)。后一个数量对应于您的假设检验的p值。
  4. 最后,看看this link。它提供了有关如何执行和解释ANOVA分析输出的更多详细信息。

以上是关于比较逻辑模型时的ANOVA函数对于Deviance没有p值的主要内容,如果未能解决你的问题,请参考以下文章

R语言glm函数拟合回归模型时其它常用的函数(summarycoefficientsconfintfittedresidualsanovaplotpredictdeviance等)

R语言构建决策树模型(decision tree)并可视化决策树:自定义函数计算对数似然自定义函数计算模型的分类效能(accurayF1偏差Deviance)使用pander包美化界面输出内容

R语言使用lmPerm包应用于线性模型的置换方法(置换检验permutation tests)在同一数据集上使用单向方差分析(one-way ANOVA)使用aovp函数的置换检验单向方差分析

R语言构建logistic回归模型:模型系数(model coefficient)模型总结信息(summary)模型评估(偏差deviance计算伪R方计算( pseudo R-squared)

R语言使用cph函数和rcs函数构建限制性立方样条cox回归模型使用anova函数进行方差分析通过p值确认指定连续变量和风险值HR之间是否存在非线性关系

R语言构建logistic回归模型并使用偏差(Deviance)和伪R方(pseudo R-squared )评估概率模型:使用sigr包快速计算偏差和伪R方AIC赤信息指标和偏差的关系