当我使用as.factor()时,为什么我的glm仍在分析多个变量?

时间:2019-05-16 02:29:38

标签: r glm

我正在尝试了解蚂蚁的食物类型,栖息地和饥饿时间对食物偏好的影响,尽管我提供了蚂蚁,但我只是想将食物类型视为一个因素5种食物。我在food变量上使用了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

1 个答案:

答案 0 :(得分:0)

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