r - 使用 gee() : NA/NaN/Inf in foreign function call (arg 3) 拟合模型时出错

标签 r statistics

我正在一个包含 13,500 个观察(这里是学生)的数据集上拟合一个 Gee 模型。学生分为 52 所不同的学校。我知道有证据表明学生嵌套在学校内(低 ICC),因此我应该在方差协方差矩阵中调整这种嵌套效应。我打算做的是首先拟合具有可交换 var-cov 结构的 Gee 模型。然后,最重要的是,我将运行 Huber-White Sandwich 估计器,也称为稳健方差估计器。我为强大的方差估计器编写了自己的代码,它运行良好。我的 gee 语句不起作用并给出以下错误:

NA/NaN/Inf in foreign function call (arg 3)

这是我的代码:
STMath.OneYr.C1 = gee(postCSTMath1Yr ~ TRT1Yr + preCSTMath + preCSTENG + 
post1YrGradeRef + ELLBaseLine + GENDER + ECODIS + ETHNICITY.F + 
as.factor(FailedInd1Yr), data = UCI.clone[UCI.clone$COHORT0809 == "C1",], 
id =  post1YrSchIID, corstr = "exchangeable") 

不幸的是,上面的代码对于你们来说是不可重现的,也许很难弄清楚问题是什么。

如果您能帮我解决问题,我将不胜感激。

最佳答案

好的,这个问题已经很老了,但我最终来到了这里,所以这最终可能会对某人有所帮助。

基本上,这个错误是因为与其他库不同,id 引起的。参数被视为数字向量。

确实,gee功能正在类型转换 id作为一个双重,我真的不明白。以下是隐含的行(函数的 l. 119-120):

if (!(is.double(id))) 
  id <- as.double(id)

如果您的 id column 是一个字符,只需将其转换为一个因子,或者使用一些函数(如 dplyr::min_rank )将其转换为数字变量。

这应该可以解决问题。

关于r - 使用 gee() : NA/NaN/Inf in foreign function call (arg 3) 拟合模型时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11461382/

相关文章:

javascript - 调用堆栈溢出,仅适用于小型数组对,我如何使其需要 10k 数组对?

algorithm - 我们如何找到所有子集的 logsumexp(或近似值)?

r - 将位向量写入R中最小大小的文件中

c++ - C/C++ 中是否有与 GNU-R which() 等效的函数?

r - str_extract_all 返回一个列表,但我想要一个向量

r - 如何将 tapply 结果添加到现有数据框

python - 以稳定的方式找到曲线的肘点?

excel - SPSS:按特定序列出现过滤数据集

python - 寻找时间序列数据中的重复模式

r - 如何拆分训练数据和测试数据以确保训练和测试中都存在相同的因素组合?