glm() 将第一个变量拆分为每个值的不同变量?

glm() splitting first variable in different ones for each value?

我正在尝试在两个变量之间进行逻辑回归,我想在其中提取它们之间相关性的 p 值。但是,函数 glm() 似乎将可依赖变量拆分为其包含的唯一值,我只收到每个值的 p 值,而不是整个变量的 p 值。有没有办法为整个因变量获取 p 值?如果我在 SPSS 中进行测试,这就是我得到的结果,所以一般来说,逻辑回归似乎是可能的。但它在 R 中有这个功能吗?

这是一个最小的可重现示例:

attach(PlantGrowth)
weight.factor<- cut(weight, 2, labels=c('Light', 'Heavy')) # binarize weights
plot(table(group, weight.factor))
group
glm.1<- glm(weight.factor~group, family=binomial)
summary(glm.1)

此致

也许您正在寻找这个?

1-pchisq(glm.1$null.deviance-glm.1$deviance, df = glm.1$df.null - glm.1$df.residual)

输出:

0.003918751

我建议对 glm 使用 data 参数而不是 attachhelp("attach") 本身说你应该*通常不使用 attach() ...

pg <- transform(PlantGrowth,
   weight.factor = cut(weight, 2, labels=c('Light', 'Heavy')))
glm.1 <- glm(weight.factor~group, family=binomial, data = pg)

anova() 将测试模型中的每个项:

anova(glm.1, test="Chisq")
...
Terms added sequentially (first to last)
      Df Deviance Resid. Df Resid. Dev Pr(>Chi)   
NULL                     29     41.054            
group  2   11.084        27     29.970 0.003919 **

car::Anova()

car::Anova(glm.1)
Analysis of Deviance Table (Type II tests)

Response: weight.factor
      LR Chisq Df Pr(>Chisq)   
group   11.084  2   0.003919 **

当您的模型更复杂时(包含多个项,尤其是当它们包含交互项时),您必须 careful/think 了解测试顺序。 car::Anova() 的默认值更接近大多数人想要的,但如果您在模型中有交互,您仍应阅读 help("Anova", package="car")

的“详细信息”部分