gpt4 book ai didi

r - 使用连续预测变量的多个值计算 emmeans

转载 作者:行者123 更新时间:2023-12-03 08:21:01 28 4
gpt4 key购买 nike

此问题涉及Emmeans continuous independant variable

我想使用单行计算至少三个直径值(即最小值、平均值和最大值)的 EMM。指定 cov.reduce = range 给出仅使用最小和最大 diameter 的估计值,删除 cov.reduce = range 给出使用平均值 直径

mod = glm(log(strength) ~ machine + diameter, data = fiber)
emmeans(mod, ~machine*diameter, cov.reduce = range)
machine diameter emmean SE df asymp.LCL asymp.UCL
A 15 3.48 0.0315 Inf 3.42 3.54
B 15 3.50 0.0333 Inf 3.44 3.57
C 15 3.43 0.0232 Inf 3.39 3.48
A 32 3.88 0.0243 Inf 3.83 3.93
B 32 3.90 0.0228 Inf 3.86 3.95
C 32 3.83 0.0329 Inf 3.77 3.90

结合cov.reduce = c(range,mean)仅给出平均直径的估计值。

> emmeans(mod, ~machine*diameter, cov.reduce = c(range, mean))
machine diameter emmean SE df asymp.LCL asymp.UCL
A 24.1 3.69 0.0167 Inf 3.66 3.73
B 24.1 3.72 0.0172 Inf 3.69 3.75
C 24.1 3.65 0.0182 Inf 3.61 3.68

Results are given on the log (not the response) scale.
Confidence level used: 0.95

指定数字(不仅仅是范围内的值,还包括实际的最小值、平均值和最大值)会产生错误。

> emmeans(mod, ~machine*diameter, cov.reduce = c(1, 15, 32))
Error in fix.cr(cov.reduce) : Invalid 'cov.reduce' argument

> emmeans(mod, ~machine*diameter, cov.reduce = c( 15, 24, 32))
Error in fix.cr(cov.reduce) : Invalid 'cov.reduce' argument

我知道我可以运行两行代码,然后合并输出,但我想知道是否有一个单行解决方案。谢谢。

最佳答案

这很容易完成,因为您可以指定任何函数。所以尝试一下

emmeans(..., cov.reduce = function(x) quantile(x, c(0, 0.5, 1)))

这会显示中位数而不是平均值,但您可以编写一个函数来返回您想要的任何内容。它可以是如上所示的内联函数,也可以是单独函数的名称。

顺便说一句,对于特定值,请使用 at 而不是 cov.reduce。例如,

emmeans(..., at = list(diameter = c(15, 24, 32)))

有关详细信息,请参阅 ref_grid() 的文档。

关于r - 使用连续预测变量的多个值计算 emmeans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67828152/

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