You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言获取不含block项的Type III ANCOVA表及各效应F值与p值

解决方案

前置设置(必做,保证Type III检验正确性)

R默认的分类变量处理对比(treatment contrast)会导致Type III平方和计算错误,需先将所有分类变量切换为效应编码:

# 对分类变量设置效应编码
contrasts(rye$strain) <- contr.sum
contrasts(rye$manure) <- contr.sum
contrasts(rye$block) <- contr.sum

# 重新拟合线性模型
rye_lm <- lm(yield ~ block + strain*manure*moisture, data = rye)

方法1:直接调用joint_tests过滤block项

利用joint_tests的which和invert参数,直接排除block项的输出,剩余结果即为调整block效应后所有目标变量的检验结果:

library(emmeans)
joint_tests(rye_lm, which = "block", invert = TRUE)

方法2:通过emmeans对象生成检验结果

生成emmeans对象时添加cov.keep参数保留连续变量moisture,即可输出包含分类、连续变量所有效应的检验结果,block会被自动取平均不会出现在输出中:

library(emmeans)
# 生成emmGrid时保留连续变量moisture作为检验项
rye_emm <- emmeans(rye_lm, ~ strain * manure * moisture, cov.keep = "moisture")
joint_tests(rye_emm)

结果说明

两种方法输出的结果完全一致,均包含strain、manure、moisture三个变量的主效应、二阶交互、三阶交互的F值与p值,所有效应均已对block的效应进行调整。

内容的提问来源于stack exchange,提问作者hnguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:48:01