gpt4 book ai didi

R:VGAM 中的不兼容尺寸错误 vglm 函数

转载 作者:行者123 更新时间:2023-12-04 01:08:18 26 4
gpt4 key购买 nike

TL;博士

我正在使用 R 中的 VGAM 包运行 Tobit 回归——这是一个玩具数据集,它一直给我一个我无法诊断的错误:

library(data.table)
library(VGAM)

> sessionInfo()$otherPkgs
$VGAM
Package: VGAM
Version: 0.9-7
Date: 2015-03-06
... <ommitted> ...

reg_data <- structure(list(S = c(1.83271488441825, 0.75411550370994, 0.904938604451928,
0.75411550370994, 0.75411550370994), H = c(0.6429, 0.7788,
0.6292, 0.8892, 0.2035), W= c(1.52497, 1.1391, 1.59722,
1.8406, 1.01865)), .Names = c("S", "H", "W"), class = c("data.table",
"data.frame"), row.names = c(NA, -5L))

minS <- 0.75411550370994
maxS <- 1.83271488441825

m <- vglm(S ~ H, tobit(Upper = maxS, Lower = minS), weights = W, data = reg_data)
Error in lm.wfit(x = cbind(x[!use.i11, ]), y = y[!use.i11, ii], w = w[!use.i11, :
incompatible dimensions

尝试诊断

带回溯:
> traceback()
6: stop("incompatible dimensions")
5: lm.wfit(x = cbind(x[!use.i11, ]), y = y[!use.i11, ii], w = w[!use.i11,
ii])
4: eval(expr, envir, enclos)
3: eval(slot(family, "initialize"))
2: vglm.fitter(x = x, y = y, w = w, offset = offset, Xm2 = Xm2,
Ym2 = Ym2, etastart = etastart, mustart = mustart, coefstart = coefstart,
family = family, control = control, constraints = constraints,
criterion = control$criterion, extra = extra, qr.arg = qr.arg,
Terms = mt, function.name = function.name, ...)
1: vglm(y ~ x, tobit(Upper = maxy, Lower = miny), weights = w, data = X)

我已经查看了 lm.wfit 的源代码并找到错误的来源:
function (x, y, w, offset = NULL, method = "qr", tol = 1e-07, 
singular.ok = TRUE, ...)
{
<ommitted...>
if (NROW(y) != n | length(w) != n)
stop("incompatible dimensions")
<ommitted...>
}

我在 vglm 的源代码中发现了以下内容:
    vglm.fitter <- get(method)
fit <- vglm.fitter(x = x, y = y, w = w, offset = offset,
Xm2 = Xm2, Ym2 = Ym2, etastart = etastart, mustart = mustart,
coefstart = coefstart, family = family, control = control,
constraints = constraints, criterion = control$criterion,
extra = extra, qr.arg = qr.arg, Terms = mt, function.name = function.name,
...)

其中方法默认为 vglm.fit .

我还是没能找到排除标准在哪里 use.i11被创建,它在做什么以及为什么它会导致权重、回归量和回归量之间的维度冲突。

我观察到舍入 minSmaxS到十个或更少的位置会导致成功运行,但这是因为 maxS增加,因此第一次观察不再右删失和 minS增加,因此第 2、第 4 和第 5 次观察不再被删失。两者都改变​​了最大似然函数中的观察处理,所以我怀疑我会用错误的结果污染回归。

有人可以帮助诊断为什么会发生这种类型的错误吗?

最佳答案

我从软件包的开发人员那里收到消息,这确实是一个错误,并且已在预发布的软件包 here 中得到修复。 ,大概会在下一次迭代中升级到 CRAN——或者当他的书出版时。

关于R:VGAM 中的不兼容尺寸错误 vglm 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27570327/

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