如何解决具有 R
我正在尝试使用 R 在一个健壮的模型上执行事后测试 (Tukey)。 该模型是使用 lmrob 凭经验找到的,因为数据违反了一些正态性假设,看起来像这样:
my_model <- lmrob(Y ~ A + B + C + A:B + B:C)
Y 是连续变量,而 A、B 和 C 是分类数据。 A 有 3 个级别,B 和 C 各有 2 个级别。
在我之前的一个项目中,我根据以下程序进行了事后检验(估计均值的成对比较)(参见第 8 页):https://cran.r-project.org/web/packages/multcomp/vignettes/multcomp-examples.pdf
我有以下模型,数据相似(Y 是连续的;A 和 B 是分类的):
old_model <- lmrob(Y ~ A * B)
我按照 multcomp 包示例中的程序执行成对比较:
# First,we compute the means of the response for all combinations of the levels of A and B:
tmp <- expand.grid(A = levels(data$A),B = levels(data$B))
# and construct a model matrix
X <- model.matrix(~ A * B,data = tmp)
estimated_means = cbind(tmp,"estimated marginal mean" = predict(old_model,newdata = tmp))
# We now construct a contrast matrix based on Tukey-contrasts for A
# in a block-diagonal way,i.e.,for each level of B:
Tukey <- contrMat(table(data$A),"Tukey")
K1 <- cbind(Tukey,matrix(0,nrow = nrow(Tukey),ncol = 3*ncol(Tukey)))
rownames(K1) <- paste(levels(data$B)[1],rownames(K1),sep = ":")
K2 <- cbind(matrix(0,ncol = ncol(Tukey)),Tukey,ncol = 2*ncol(Tukey)))
rownames(K2) <- paste(levels(data$B)[2],rownames(K2),sep = ":")
K3 <- cbind(matrix(0,ncol = 2*ncol(Tukey)),ncol = 1*ncol(Tukey)))
rownames(K3) <- paste(levels(data$B)[3],rownames(K3),sep = ":")
K4 <- cbind(matrix(0,ncol = 3*ncol(Tukey)),Tukey)
rownames(K4) <- paste(levels(data$B)[4],rownames(K4),sep = ":")
K <- rbind(K1,K2,K3,K4)
colnames(K) <- c(rep(colnames(Tukey),4))
# and perform the tests via
summary(glht(old_model,linfct = K %*% X),test = adjusted(type = "holm"))
然后对 A 的每个级别使用相同的程序,反之亦然,在 B 中使用 Tukey 对比矩阵。
我的问题是,我该如何进行与之前项目类似的分析?我不确定如何处理当前模型中的交互项以及如何构建由于交互项导致的模型矩阵。
任何建议将不胜感激,谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。