为什么我使用 as.factor() 时口香糖仍在分析多个变量?

Why is my glm still analyzing muliple variables when I use as.factor()?

我正在尝试 运行 观察食物类型、栖息地和饥饿期对蚂蚁食物偏好的影响,但我只是想将食物类型视为一个单一因素,即使我给蚂蚁提供了 5 种食物。我已经在食物变量上使用了 as.factor,但它似乎仍然不起作用!我想要一个单一的 p 值来表示食物如何影响个人。我错过了什么吗?

  NumofAnts FoodType Trial SiteType
1         0     Pink     1  natural
2         4     Pink     1  natural
3         5     Pink     1  natural
4         4     Pink     1  natural
5         8     Pink     1  natural
6         5     Pink     1  natural
fit<-glm(NumofAnts~as.factor(FoodType) + Trial + SiteType, 
family=poisson(link=log), data=stacked1)
glm(formula = NumofAnts ~ as.factor(FoodType) + Trial + SiteType, 
    family = poisson(link = log), data = stacked1)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-3.5644  -2.2495  -1.0023   0.8588   8.8051  

Coefficients:
                          Estimate Std. Error z value Pr(>|z|)    
(Intercept)                1.46177    0.08031  18.202  < 2e-16 ***
as.factor(FoodType)Blue   -0.66665    0.06824  -9.769  < 2e-16 ***
as.factor(FoodType)Green  -0.29987    0.06093  -4.922 8.57e-07 ***
as.factor(FoodType)Yellow -0.28086    0.06060  -4.635 3.57e-06 ***
as.factor(FoodType)Red    -0.92502    0.07459 -12.401  < 2e-16 ***
Trial                      0.19355    0.04327   4.473 7.73e-06 ***
SiteTypeurban             -0.19730    0.04328  -4.558 5.16e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

当变量是数字时,glm 将估计一个系数(所以一个 p-value)。但是,当变量是分类变量时(如 food 在您的情况下),它将为变量的每个级别(一个级别除外)计算一个系数。在您的情况下,food 有 5 个级别,因此估计有 4 个系数(因此 4 p-values)。