gpt4 book ai didi

r - glm.nb 与 sqrt 链接

转载 作者:行者123 更新时间:2023-12-04 23:30:17 28 4
gpt4 key购买 nike

我正在尝试使用 sqrt 链接拟合 Negbin 模型。不幸的是,我似乎必须指定起始值。有人熟悉在运行 glm.nb 时设置起始值吗?命令(包 MASS)?

当我不使用起始值时,我收到一条错误消息:

no valid set of coefficients has been found: please supply starting values



看着 ?glm.nb似乎可以设置起始值,不幸的是我绝对不知道如何做到这一点。一些进一步的信息: 1.当使用标准日志链接计算回归时,可以估计回归。 2. 无法将算法的起始值设置为任意值,例如
glm.nb(<model>,link=sqrt, start=1)

不起作用!

最佳答案

对于足够复杂的问题,找到合适的起始值可能很困难。但是,要设置起始值(文档不是很好,但存在),您应该学习阅读错误消息。这是您使用 start=1 失败的尝试的复制品使用内置数据集:

>quine.nb1 <- glm.nb(Days ~ Sex + Age + Eth + Lrn, data = quine, 
link=sqrt, start=1)
Error in glm.fitter(x = X, y = Y, w = w, start = start, etastart = etastart, :
length of 'start' should equal 7 and correspond to initial coefs for
c("(Intercept)", "SexM", "AgeF1", "AgeF2", "AgeF3", "EthN", "LrnSL", )

它准确地告诉您它的期望:要估计的每个系数的值向量。
quine.nb1 <- glm.nb(Days ~ Sex + Age + Eth + Lrn, data = quine, 
link=sqrt, start=rep(1,7))

有效,因为我给出了一个长度为 7 的向量。您可能需要使用其中的实际值来获得一个始终预测正值的模型。很可能是 glm.nb 中生成起始值的默认算法在某处给出负面预测, sqrt链接不能容忍(与 log 不同)。如果您无法手动找到有效的起始值,您可以尝试运行一个更简单的模型,并将其他参数的估计值扩大 0,以获得一个好的起始位置。

编辑:建立模型

假设您找不到复杂模型的有效起始值。然后从一个简单的开始,例如
> nb0 <- glm.nb(Days ~ Sex, data=quine, link=sqrt)
> coef(nb0)
(Intercept) SexM
3.9019226 0.3353578

现在让我们使用先前的起始值添加下一个变量,方法是为新变量的影响添加 0 个估计值(在本例中 Age 有四个级别,因此需要 3 个系数):
> nb1 <- glm.nb(Days ~ Sex+Age, data=quine, link=sqrt, start=c(coef(nb0), 0,0,0))
> coef(nb1)
(Intercept) SexM AgeF1 AgeF2 AgeF3
3.9127405 -0.1155013 -0.5551010 0.7475166 0.5933048

您通常希望继续添加 0 而不是 100,因为系数为 0 意味着新变量没有影响 - 这正是您刚刚拟合的更简单模型所假设的。

关于r - glm.nb 与 sqrt 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6043841/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com