Post-线性混合模型的特殊检验 - 具有两个水平的因子
Post-hoc test for linear mixed model - factor with two levels
这是我的数据框(请复制粘贴复制):
Control <- replicate(2, c("112", "113", "116", "118", "127", "131", "134", "135", "136", "138", "143", "148", "149", "152", "153", "155", "162", "163"))
EPD <- replicate(2, c("101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "114", "115", "117", "119", "120", "122", "124", "125", "126", "128", "130", "133", "137", "139", "140", "141", "142", "144", "145", "147"))
Subject <- c(Control, EPD)
Group <- c(replicate(36, "Control"), replicate(60, "Patient"))
Side <- c(replicate(18, "L"), replicate(18, "R"), replicate(30, "L"), replicate(30, "R"))
Control_Volume_L <- c(99, 119, 119, 146, 127, 96, 100, 132, 103, 103, 107, 142, 140, 134, 117, 117, 133, 143)
Control_Volume_R <- c(93, 123, 114, 152, 122, 105, 98, 138, 111, 110, 115, 137, 142, 140, 124, 102, 153, 143)
EPD_Volume_L <- c(132, 115, 140, 102, 130, 131, 110, 124, 102, 111, 93, 92, 94, 104, 92, 115, 144, 118, 104, 132, 90, 102, 94, 112, 106, 105, 79, 114, 104, 108)
EPD_Volume_R <- c(136, 116, 143, 105, 136, 137, 103, 121, 105, 115, 97, 97, 93, 108, 91, 117, 147, 111, 97, 129, 85, 107, 91, 116, 113, 101, 75, 108, 95, 98)
Volume <- c(Control_Volume_L, Control_Volume_R, EPD_Volume_L, EPD_Volume_R)
Control_FA_L <- c(0.43, 0.39, 0.38, 0.58, 0.37, 0.5, 0.35, 0.36, 0.72, 0.38, 0.45, 0.30, 0.47, 0.30, 0.67, 0.34, 0.42, 0.29)
Control_FA_R <- c(0.36, 0.49, 0.55, 0.59, 0.33, 0.41, 0.32, 0.50, 0.59, 0.52, 0.32, 0.40, 0.49, 0.33, 0.46, 0.39, 0.37, 0.33)
EPD_FA_L <- c(0.25, 0.39, 0.36, 0.42, 0.21, 0.40, 0.43, 0.16, 0.31, 0.41, 0.39, 0.40, 0.35, 0.29, 0.31, 0.24, 0.39, 0.36, 0.54, 0.38, 0.34, 0.28, 0.42, 0.33, 0.40, 0.36, 0.42, 0.28, 0.40, 0.41)
EPD_FA_R <- c(0.26, 0.36, 0.36, 0.61, 0.22, 0.33, 0.36, 0.34, 0.35, 0.37, 0.39, 0.45, 0.30, 0.31, 0.50, 0.31, 0.29, 0.43, 0.41, 0.21, 0.38, 0.28, 0.66, 0.33, 0.50, 0.27, 0.46, 0.37, 0.26, 0.39)
FA <- c(Control_FA_L, Control_FA_R, EPD_FA_L, EPD_FA_R)
data <- data.frame(Subject, Group, Side, Volume, FA)
然后我 运行 使用 nlme 包的 FA 值的线性混合模型:
library(nlme)
lmm <- lme(FA ~ Group + Side + Volume, ~ 1|Subject, data = data)
summary(lmm)
因为 "Side" 不是重要因素,所以从模型中删除了它:
lmm <- lme(FA ~ Group + Volume, ~ 1|Subject, data = data)
summary(lmm)
我想 运行 对 "Group" 因素进行 post-hoc 分析(两个水平:"Control" 和 "Patient")。通常我会 运行 以下代码使用 multcomp 包对具有两个以上水平的因子执行 post-hoc 分析:
library(multcomp)
summary(glht(lmm, linfct=mcp(Group ="Tukey")))
我认为 Tukey 的多重比较 post-hoc 检验在这种情况下不适用,因为我们的因子只有两个水平。在这种情况下,什么是合适的 post-hoc 测试?我想查看模型估计的 "Group" 因子("Control" 和 "Patient")两个水平之间的差异。任何反馈将不胜感激!
几件事。首先,仅仅因为 Side
不重要并不一定是将其从模型中删除的理由。如果有理论上的理由放弃(例如,如果没有理由为什么它应该与结果相关)或者如果 measurement/data 本身存在问题,那么放弃它可能更有效。
其次,由于 Group
是一个二进制变量,您不需要进行任何 post-hoc 比较。 Group
输出中的系数将代表控制组和患者组之间的平均差异,同时控制模型中的所有其他变量。因此,在包含 Side
的模型的输出中,看起来患者的 FA 得分平均比对照组低 0.08 个单位。如果这个指标本身有意义,那么你可以这样报告。如果没有,您可能需要对其进行标准化。
希望对您有所帮助。
这是我的数据框(请复制粘贴复制):
Control <- replicate(2, c("112", "113", "116", "118", "127", "131", "134", "135", "136", "138", "143", "148", "149", "152", "153", "155", "162", "163"))
EPD <- replicate(2, c("101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "114", "115", "117", "119", "120", "122", "124", "125", "126", "128", "130", "133", "137", "139", "140", "141", "142", "144", "145", "147"))
Subject <- c(Control, EPD)
Group <- c(replicate(36, "Control"), replicate(60, "Patient"))
Side <- c(replicate(18, "L"), replicate(18, "R"), replicate(30, "L"), replicate(30, "R"))
Control_Volume_L <- c(99, 119, 119, 146, 127, 96, 100, 132, 103, 103, 107, 142, 140, 134, 117, 117, 133, 143)
Control_Volume_R <- c(93, 123, 114, 152, 122, 105, 98, 138, 111, 110, 115, 137, 142, 140, 124, 102, 153, 143)
EPD_Volume_L <- c(132, 115, 140, 102, 130, 131, 110, 124, 102, 111, 93, 92, 94, 104, 92, 115, 144, 118, 104, 132, 90, 102, 94, 112, 106, 105, 79, 114, 104, 108)
EPD_Volume_R <- c(136, 116, 143, 105, 136, 137, 103, 121, 105, 115, 97, 97, 93, 108, 91, 117, 147, 111, 97, 129, 85, 107, 91, 116, 113, 101, 75, 108, 95, 98)
Volume <- c(Control_Volume_L, Control_Volume_R, EPD_Volume_L, EPD_Volume_R)
Control_FA_L <- c(0.43, 0.39, 0.38, 0.58, 0.37, 0.5, 0.35, 0.36, 0.72, 0.38, 0.45, 0.30, 0.47, 0.30, 0.67, 0.34, 0.42, 0.29)
Control_FA_R <- c(0.36, 0.49, 0.55, 0.59, 0.33, 0.41, 0.32, 0.50, 0.59, 0.52, 0.32, 0.40, 0.49, 0.33, 0.46, 0.39, 0.37, 0.33)
EPD_FA_L <- c(0.25, 0.39, 0.36, 0.42, 0.21, 0.40, 0.43, 0.16, 0.31, 0.41, 0.39, 0.40, 0.35, 0.29, 0.31, 0.24, 0.39, 0.36, 0.54, 0.38, 0.34, 0.28, 0.42, 0.33, 0.40, 0.36, 0.42, 0.28, 0.40, 0.41)
EPD_FA_R <- c(0.26, 0.36, 0.36, 0.61, 0.22, 0.33, 0.36, 0.34, 0.35, 0.37, 0.39, 0.45, 0.30, 0.31, 0.50, 0.31, 0.29, 0.43, 0.41, 0.21, 0.38, 0.28, 0.66, 0.33, 0.50, 0.27, 0.46, 0.37, 0.26, 0.39)
FA <- c(Control_FA_L, Control_FA_R, EPD_FA_L, EPD_FA_R)
data <- data.frame(Subject, Group, Side, Volume, FA)
然后我 运行 使用 nlme 包的 FA 值的线性混合模型:
library(nlme)
lmm <- lme(FA ~ Group + Side + Volume, ~ 1|Subject, data = data)
summary(lmm)
因为 "Side" 不是重要因素,所以从模型中删除了它:
lmm <- lme(FA ~ Group + Volume, ~ 1|Subject, data = data)
summary(lmm)
我想 运行 对 "Group" 因素进行 post-hoc 分析(两个水平:"Control" 和 "Patient")。通常我会 运行 以下代码使用 multcomp 包对具有两个以上水平的因子执行 post-hoc 分析:
library(multcomp)
summary(glht(lmm, linfct=mcp(Group ="Tukey")))
我认为 Tukey 的多重比较 post-hoc 检验在这种情况下不适用,因为我们的因子只有两个水平。在这种情况下,什么是合适的 post-hoc 测试?我想查看模型估计的 "Group" 因子("Control" 和 "Patient")两个水平之间的差异。任何反馈将不胜感激!
几件事。首先,仅仅因为 Side
不重要并不一定是将其从模型中删除的理由。如果有理论上的理由放弃(例如,如果没有理由为什么它应该与结果相关)或者如果 measurement/data 本身存在问题,那么放弃它可能更有效。
其次,由于 Group
是一个二进制变量,您不需要进行任何 post-hoc 比较。 Group
输出中的系数将代表控制组和患者组之间的平均差异,同时控制模型中的所有其他变量。因此,在包含 Side
的模型的输出中,看起来患者的 FA 得分平均比对照组低 0.08 个单位。如果这个指标本身有意义,那么你可以这样报告。如果没有,您可能需要对其进行标准化。
希望对您有所帮助。