我正在使用lmPerm库对线性模型进行置换测试。我想知道如何将此lmP模型与emmeans包中的emtrends函数一起使用。
作为示例,我使用了lmPerm随附的CO2数据执行以下回归分析。 conc
是连续变量,Type
是具有两个级别的类别变量。
> fit <- lmp(uptake ~ conc*Type, CO2)
但是,当我尝试使用emtrends包根据conc
的值查找数值变量Type
的trend有何不同时,出现以下错误:
> emmeans(fit, pairwise ~ Type, var="conc")
Error in model.matrix(trms, m, contrasts.arg = object$contrasts)[, nm, :
subscript out of bounds
我检查了emmeans的开发人员选项指南,以支持lmp
等新模型(对于常规lm
模型,我没有任何错误),但是,我对如何编写emm_basis
感到困惑方法,让lmp
改为使用这些新方法。
[我知道数据集很小,因此我可以直接从系数中推断出交互作用,但这是一个虚拟数据集,而我的真实数据集又庞大又私有。
emmeans
程序包包含qdrg()
函数,该函数通常可以从不受支持的模型构建参考网格,并且在这种情况下可以工作。
library(lmPerm)
library(emmeans)
fit <- lmp(uptake ~ conc*Type, CO2)
rg <- qdrg(object = fit, data = CO2)
emmeans(rg, pairwise ~ Type, var="conc")
NOTE: Results may be misleading due to involvement in interactions
$emmeans
Type emmean SE df lower.CL upper.CL
Quebec 34.9 1.35 80 32.2 37.6
Mississippi 43.6 1.91 80 39.8 47.4
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Quebec - Mississippi -8.66 1.35 80 -6.408 <.0001