非整数计数的泊松GLM-R

非整数计数的泊松GLM-R,r,glm,poisson,R,Glm,Poisson,我希望能从Poisson家族得到一些关于GLM的建议 我有一个数据集,其中包含每个人在一段时间内接受的比特数。由于观察到的个体在不同时期进食,当我计算每个个体的叮咬率为每分钟叮咬次数时,我得出的结果是非整数。现在,根据我到目前为止读到的内容,我应该仍然能够对泊松族进行GLM。然而,我遇到了错误,我认为这可能是因为R不喜欢我使用非整数。有人有什么建议吗 Example <- structure(list(Species = c("Fish1", "Fish2", "Fish3", "Fish

我希望能从Poisson家族得到一些关于GLM的建议

我有一个数据集,其中包含每个人在一段时间内接受的比特数。由于观察到的个体在不同时期进食,当我计算每个个体的叮咬率为每分钟叮咬次数时,我得出的结果是非整数。现在,根据我到目前为止读到的内容,我应该仍然能够对泊松族进行GLM。然而,我遇到了错误,我认为这可能是因为R不喜欢我使用非整数。有人有什么建议吗

Example <- structure(list(Species = c("Fish1", "Fish2", "Fish3", "Fish4", 
"Fish5", "Fish6", "Fish7", "Fish1", "Fish2", "Fish3", "Fish4", 
"Fish5", "Fish6", "Fish7", "Fish1", "Fish2", "Fish3", "Fish4", 
"Fish5", "Fish6", "Fish7"), Site = c(1, 1, 1, 1, 1, 1, 1, 2, 
2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3), Bite_Rate = c(3.5, 7.5, 
0, 0, 2.45, 5.5, 6.5, 6.5, 7.5, 8.03, 32.1, 15.6, 18.2, 19.1, 
20.5, 20.5, 3.5, 5.7, 6.7, 23.2, 0)), class = c("spec_tbl_df", 
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -21L), spec = structure(list(
   cols = list(Species = structure(list(), class = c("collector_character", 
   "collector")), Site = structure(list(), class = c("collector_double", 
   "collector")), Bite_Rate = structure(list(), class = c("collector_double", 
   "collector"))), default = structure(list(), class = c("collector_guess", 
   "collector")), skip = 1), class = "col_spec"))

str(Example) # check structure 
Example$Species<-as.factor(Example$Species) # set species as a factor 
str(Example) # check structure 
glm<-glm(Species~Bite_Rate, data=Example, family = poisson) # create the GLM


Example您需要获得归一化的秒数(分母)和实际比特数(计数)

接下来包括分钟作为偏移量,注意,您的响应变量位于~:

fit = glm(Bites ~ Species,offset=log(Observed_Seconds),
family=poisson,data=Example)
您可以查看摘要:

summary(fit)

   Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
SpeciesFish1  -2.8679     0.4472  -6.413 1.42e-10 ***
SpeciesFish2  -1.1436     0.1857  -6.158 7.35e-10 ***
SpeciesFish3  -0.5738     0.1581  -3.629 0.000284 ***
SpeciesFish4  -0.7732     0.1543  -5.011 5.42e-07 ***
SpeciesFish5  -1.3269     0.1961  -6.766 1.33e-11 ***
SpeciesFish6  -1.7198     0.2887  -5.958 2.56e-09 ***
SpeciesFish7  -1.5244     0.1925  -7.921 2.35e-15 ***
似乎非常重要,但要检查的一件好事是数据是否过度分散,还包括其他因素(例如站点):


如果遵循泊松分布,分散度将在1左右,但在这种情况下,分散度过大。

你好,卡罗琳娜。您需要使用offet,可以将用于计算速率的数字添加到data.frame中,即分钟和位(整数)。并且您的glm指定错误。好的,我在下面写一个例子,如果可以的话,更新你的数据集,这有助于你快速解决你的问题。我在看回归。这是你的真实数据吗?下面的偏移量是进行回归的方法。方差远远超过泊松分布。根据您想从模型中了解的内容,您可能需要考虑这种额外的差异。谢谢!我刚刚根据你的第一条评论编辑了我的数据。谢谢,我现在就来试试!谢谢它起作用了,但是。。。结果我的模型真的太分散了…。剩余偏差:在119个自由度上为663.22。这种方法是否仍然适用于准泊松模型?是的。我正要这么说。你需要一个准保尔森。对于上面的代码,只需使用family=quasipoisson,并将站点作为一个因素包含在内。啊,谢谢!如果我把站点作为一个因素来添加,这会是一个交互术语吗?或者只是咬~Species~站点?是的,你可以使用glht,这是一个很好的包。这仍然是一个glm,因此适用。你的网站是一个固定效果,没有随机效果(你需要使用另一个包,如lme4或glmmTMB),所以这是100%固定效果
fit = glm(Bites ~ Species,offset=log(Observed_Seconds),
family=poisson,data=Example)
summary(fit)

   Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
SpeciesFish1  -2.8679     0.4472  -6.413 1.42e-10 ***
SpeciesFish2  -1.1436     0.1857  -6.158 7.35e-10 ***
SpeciesFish3  -0.5738     0.1581  -3.629 0.000284 ***
SpeciesFish4  -0.7732     0.1543  -5.011 5.42e-07 ***
SpeciesFish5  -1.3269     0.1961  -6.766 1.33e-11 ***
SpeciesFish6  -1.7198     0.2887  -5.958 2.56e-09 ***
SpeciesFish7  -1.5244     0.1925  -7.921 2.35e-15 ***
fit_quasi = glm(Bites ~ Species + factor(Site),offset=log(Observed_Seconds),
          family=quasipoisson,data=Example)
summary(fit_quasi)

Coefficients:
              Estimate Std. Error t value Pr(>|t|)  
(Intercept)    -2.9754     1.0713  -2.777   0.0167 *
SpeciesFish2    1.8487     1.1434   1.617   0.1319  
SpeciesFish3    2.2731     1.1152   2.038   0.0642 .
SpeciesFish4    2.1246     1.1205   1.896   0.0823 .
SpeciesFish5    1.3533     1.1604   1.166   0.2662  
SpeciesFish6    1.2754     1.2658   1.008   0.3336  
SpeciesFish7    0.8922     1.1719   0.761   0.4612  
factor(Site)2  -0.2325     0.5132  -0.453   0.6587  
factor(Site)3   0.6118     0.4677   1.308   0.2154  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for quasipoisson family taken to be 5.521045)