首页 > 解决方案 > 我应该使用什么 GLM 来尝试和控制努力?

问题描述

可能是一个非常简单的问题,但我正用这个把头撞到墙上。首先,我对 r 或基础知识之外的统计数据不是很熟悉。我为一个濒危物种的非政府组织工作,所以我们的资源很少。我试图确定人口的趋势,同时考虑非常不完整的数据。

我有大约 20 年的数据。每年,志愿者都会去栖息地清点早上离开栖息地的鸟类。关于计算哪些站点以及计算多少站点,每年都有很多变化。我还收集了我认为可能对任何时候计数的数字产生影响的其他指标,例如月相(距最近满月的天数/距最近满月的天数)、过去 1、3、6、12 和 24 个月的累积降水量. 连同年份和努力,这些构成了我的自变量。

我的理解是,我应该使用 GLM 来查看每个变量对因变量(总数)的影响程度,我的想法是我可以看到人口是否真的在增加,而不是总数的普遍增加简单地下降到多年来加大努力。

我玩过 r 并花了很多时间在谷歌上搜索,似乎 GLM 是正确的方法,但我很难找到最能描述这种关系的模型。然后我被介绍给负二项式(而不是准泊松)GLM,它产生了一个 AIK,可以告诉我最合适的情况。

然后我被介绍了 MumIn 疏浚函数,它基本上向我展示了 delta 小于 2 的最佳结果是最好的描述符。

我现在的问题是我陷入了一个我根本不了解的兔子洞,我什至不知道我是否正在查看正确的信息。所以从基础开始,负二项式在我的情况下使用正确的 GLM 吗?

> dput(head(totals))
    structure(list(Year = c(2002L, 2003L, 2005L, 2006L, 2007L, 2008L
), Total = c(433L, 627L, 141L, 714L, 609L, 429L), Effort = c(10L, 
13L, 14L, 25L, 27L, 21L), Rain.24 = c(957.45, 867.23, 1408.05, 
1634.91, 1127.47, 859.42), Rain.12 = c(426.52, 440.71, 878.8, 
756.11, 371.36, 488.06), Rain.6 = c(321.72, 272.84, 639.16, 542, 
250.71, 395.59), Rain.3 = c(157.94, 65.25, 437.35, 351.1, 86.94, 
129.66), Rain.1 = c(27.94, 8.74, 99.3, 70.79, 25.8, 21.05), Nearest.full.moon = c(2L, 
7L, 4L, 14L, 6L, 4L)), row.names = c(NA, 6L), class = "data.frame")

我的因变量是“tot”,分布如下:

> tot
 [1]  290  433  870  277  714  669  429  479  860  547  654  865  845 1085  883  583 1023 1097 1182
[20]  945
> skewness(tot)
[1] -0.1372469
> var(tot)
[1] 73319.84
> mean(tot)
[1] 736.5

这是我为分析的主要部分运行的代码:

    options(na.action=na.omit)
    model3 <- glm.nb( Total ~ . , data = totals)
    summary(model3)
    options(na.action=na.fail)
    dredge(model3)
    res <- dredge(model3, trace=2)
    subset(res, delta <= 2, recalc.weights=FALSE)
    options(na.action=na.omit)
    summary(model.avg(res, revised.var=FALSE))
    importance(res)

抱歉,如果这没有意义,我将尝试根据一些反馈相应地编辑问题。

标签: rglm

解决方案


推荐阅读