首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R WRS ancova函数: if (nuhat < 2) stop(“自由度必须大于或等于2")出错

R WRS ancova函数: if (nuhat < 2) stop(“自由度必须大于或等于2")出错
EN

Stack Overflow用户
提问于 2021-08-09 09:20:15
回答 1查看 75关注 0票数 0

我想从WRS2包(https://rdrr.io/cran/WRS2/man/ancova.html)中运行一个健壮的ANCOVA。“比率”是我的DV,“诱饵”是预测因子,“会话”是协变量。

我使用以下函数:

代码语言:javascript
复制
ancova_model = ancova(ratio ~ bait + session, data = training_data)

这是我的数据集:

但是,我得到以下错误消息:

if (nuhat < 2) stop(“自由度必须大于或等于2")中出错:缺少需要TRUE/FALSE的值此外:警告消息: 1:以最小为单位(subvecn >= 12):最小没有非缺少的参数;返回Inf 2:在最大值(subvecn >= 12):没有非缺少的参数到最大;返回-Inf

你知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-10 20:35:31

问题是,稳健的ANCOVA确定协变量的5个点,然后在每个点上对独立组执行袁氏t检验。因此,我怀疑在这样一个小样本中,两个组的协变量具有完全相同的值,可能会发生这样的情况,即每个组在每个点上都有一个观察值(因此df < 2)。对于每组只有一个观察值,不能计算t检验,因此也就产生了误差。

处理这种情况的一种方法是,您可以尝试更改协变量的点的数量和类型,以便像这样测量组比较:ancova(ratio ~ bait + session, data = training_data, pts = c(5,10))。这可能会给你一个结果,但也可能会抛出警告消息,表明测试进行时观察太少,这意味着你不能真正信任结果。

在我看来,协变量无论如何都没有多大意义。如果我没有记错的话,它只是显示了两组(水果和兔子)是在同一个会话中录制的。因此,这些群体实际上可能是相互依赖的。你可以用函数yuend代替依赖的袁亚非的t检验。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68709648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档