1

我正在使用 GAMM 并希望使用方差-协方差矩阵提取模型的区间,但这样做时遇到问题

编码:

fishdata <- read.csv("http://dl.dropbox.com/s/4w0utkqdhqribl4/fishdata.csv", 
header=T)
attach(fishdata)
require(mgcv)

gammdl <- gamm(inlandfao ~ s(marinefao), correlation = corAR1(form = ~1 | year), 
family=poisson())

summary(gammdl$gam)
intervals(gammdl$lme)

但最后一行代码返回,

Error in intervals.lme(gammdl$lme) : cannot get confidence intervals on var-cov components: Non-positive definite approximate variance-covariance

我不明白为什么会出现此错误消息。

我正在尝试复制 Simon Wood 在Generalized Additive Models: An Introduction with R using my data 第 316 页所做的事情。

4

1 回答 1

3

这实际上是统计计算的问题,而不是 R 的使用。本质上,错误意味着虽然计算可能已经收敛到拟合模型,但该模型存在问题。这归结为在模型的拟合值处计算的 Hessian 矩阵是非正定的,因此协方差矩阵的最大似然估计不可用。这通常发生在对数似然函数变得平坦的情况下,优化不会发生进一步的进展,并且由于模型对于给定数据很可能过于复杂。

您可以尝试使用和不使用 AR(1) 来拟合模型,并使用广义似然比检验 (via anova()) 比较它们。我猜想嵌套在其中的 AR(1)year是多余的 - 即参数 $\phi$ 实际上是 0 - 这就是导致错误的原因。

实际上,现在我也想到您正在尝试将变量建模inlandfao为自身的平滑函数s(inlandfao)。这里有一些问题 - 你会期望一个完美的配合而不需要一个平滑的功能。你需要解决这个问题;您不能将响应建模为自身的函数。

于 2013-12-02T15:20:17.183 回答