You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

鸟类回访次数与停留时间的R统计分析方法咨询

针对鸟类性别对回访次数和停留时间影响的统计分析方案

一、回访次数(visitIdx:计数型数据)

模型选择与代码

如果数据中同一鸟类有多次回访记录(存在重复测量),必须加入鸟类编号作为随机截距控制个体非独立性,此时用广义线性混合模型(GLMM)合理:

  1. Poisson GLMM(lme4包):
library(lme4)
# bird_id为数据集里的鸟类编号列名
mod_pois <- glmer(visitIdx ~ sex + (1|bird_id), data = Gbirds_sex, family = poisson)
summary(mod_pois)
  1. 检查过度离散:
    计算残差离散度,若值显著大于1,说明Poisson模型适配性差,需改用负二项GLMM:
# 皮尔逊残差平方和 / 残差自由度
dispersion <- sum(residuals(mod_pois, type = "pearson")^2) / df.residual(mod_pois)
dispersion
  1. 负二项GLMM(glmmTMB包):
library(glmmTMB)
mod_nb <- glmmTMB(visitIdx ~ sex + (1|bird_id), data = Gbirds_sex, family = nbinom2)
summary(mod_nb)

如果每只鸟仅对应一个总回访次数(无重复测量),无需随机截距,直接用广义线性模型(GLM):

# Poisson GLM
mod_pois_glm <- glm(visitIdx ~ sex, data = Gbirds_sex, family = poisson)
# 负二项GLM(过度离散时用,依赖MASS包)
library(MASS)
mod_nb_glm <- glm.nb(visitIdx ~ sex, data = Gbirds_sex)

二、停留时间(timeInside:连续但过度离散)

高斯模型离散度达2.8,说明数据不符合正态假设,推荐以下两种方案:

方案1:负二项模型(适合计数型停留时间,如整数秒记录)

若停留时间是整数计数(如秒数),用glmmTMB的nbinom2模型,根据是否有重复测量决定是否加随机截距:

# 带随机截距(存在重复测量)
mod_time_nb <- glmmTMB(timeInside ~ sex + (1|bird_id), data = Gbirds_sex, family = nbinom2)
summary(mod_time_nb)

# 无重复测量(依赖MASS包)
library(MASS)
mod_time_nb_glm <- glm.nb(timeInside ~ sex, data = Gbirds_sex)

方案2:Gamma模型(适合连续型正数右偏数据)

若停留时间是连续型正数(如带小数的精确时间),Gamma分布模型更适配:

# 带随机截距
mod_time_gamma <- glmmTMB(timeInside ~ sex + (1|bird_id), data = Gbirds_sex, family = Gamma(link = "log"))
summary(mod_time_gamma)

# 无重复测量
mod_time_gamma_glm <- glm(timeInside ~ sex, data = Gbirds_sex, family = Gamma(link = "log"))

模型拟合诊断

无论用哪种模型,都要通过残差图检查拟合效果:

plot(residuals(mod_time_nb, type = "pearson") ~ fitted(mod_time_nb))
abline(h = 0, lty = 2)

关于随机截距的判断

  • 必须加:同一鸟类有多次观测(回访/停留时间的重复记录),随机截距可控制个体间的非独立变异。
  • 无需加:每只鸟仅对应一个观测值(如总回访次数、平均停留时间),用固定效应模型即可。

内容的提问来源于stack exchange,提问作者Zach Ng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 14:48:26