R 使用multcomp设置三方交互的对比度

R 使用multcomp设置三方交互的对比度,r,R,我在三个地点进行了BACI实验,分别在2007年之前和2011年之后进行测量。在设置对比度时遇到困难,因此我看到三个部位的治疗(对照组)每年的效果是否不同 我试图在中扩展该示例,但没有成功。我们也尝试过lsmeans软件包 下面的示例df和代码,以及我想测试的明确对比 library(nlme) library(multcomp) require(lsmeans) # I have these versions: # R version 3.2.4 Revised (2016-03-16 r7

我在三个地点进行了BACI实验,分别在2007年之前和2011年之后进行测量。在设置对比度时遇到困难,因此我看到三个部位的治疗(对照组)每年的效果是否不同

我试图在中扩展该示例,但没有成功。我们也尝试过lsmeans软件包

下面的示例df和代码,以及我想测试的明确对比

library(nlme)
library(multcomp)
require(lsmeans)

# I have these versions:
# R version 3.2.4 Revised (2016-03-16 r70336)
# Platform: x86_64-w64-mingw32/x64 (64-bit)
# Running under: Windows 7 x64 (build 7601) Service Pack 1
# nlme_3.1-126
# multcomp_1.4-4 



exdf <- expand.grid(Site = c("Z",  "Y", "X"), 
                   Plot = 1:30,
                   Year = c("2007", "2011"), 
                   Treatment = c("Control", "A", "B", "A+B"))
exdf$Site <- factor(exdf$Site)
exdf$Plot <- factor(exdf$Plot)
exdf$Year <- factor(exdf$Year)
exdf$Treatment <- factor(exdf$Treatment)
exdf$Treatment <- relevel(exdf$Treatment, ref = "Control")

exdf$Response <- rnorm(mean = 1150, sd = 130, n = nrow(exdf))

mod1 <- lme(data = exdf,
            fixed =  Response ~ Year * Treatment * Site,
            random = ~1|Plot)


## would like to test (obviously that's not actual code)

## How do the treatments A, B, A+B differ in their interaction with 
## year, compared to the control treatment (ie do the slopes differ)

SiteX:Year:TreatmentControl - SiteX:Year:TreatmentA == 0
SiteX:Year:TreatmentControl - SiteX:Year:TreatmentB == 0
SiteX:Year:TreatmentControl - SiteX:Year:TreatmentA+B == 0

SiteY:Year:TreatmentControl - SiteY:Year:TreatmentA == 0
SiteY:Year:TreatmentControl - SiteY:Year:TreatmentB == 0
SiteY:Year:TreatmentControl - SiteY:Year:TreatmentA+B == 0

SiteZ:Year:TreatmentControl - SiteZ:Year:TreatmentA == 0
SiteZ:Year:TreatmentControl - SiteZ:Year:TreatmentB == 0
SiteZ:Year:TreatmentControl - SiteZ:Year:TreatmentA+B == 0

## Also potentially - does the interaction between site and year
## differ across sites? 
SiteX:Year:TreatmentA - SiteY:Year:TreatmentA == 0
SiteZ:Year:TreatmentA - SiteY:Year:TreatmentA == 0
SiteZ:Year:TreatmentA - SiteX:Year:TreatmentA == 0

SiteX:Year:TreatmentB - SiteY:Year:TreatmentB == 0
SiteZ:Year:TreatmentB - SiteY:Year:TreatmentB == 0
SiteZ:Year:TreatmentB - SiteX:Year:TreatmentB == 0

SiteX:Year:TreatmentA+B - SiteY:Year:TreatmentA+B == 0
SiteZ:Year:TreatmentA+B - SiteY:Year:TreatmentA+B == 0
SiteZ:Year:TreatmentA+B - SiteX:Year:TreatmentA+B == 0


## Started doing the example from 
#https://cran.r-project.org/web/packages/multcomp/vignettes/multcomp-examples.pdf
# Got a bit stuck

tmp <- expand.grid(Year = levels(exdf$Year),
                   Treatment = levels(exdf$Treatment),
                   Site = levels(exdf$Site))
X <- model.matrix(~ Year * Treatment * Site, data = tmp)
glht(mod1, linfct = X)


## Gives all the interactions not in the form I want..
tt <- lsmeans(mod1, specs = ~Year:Treatment|Site)
comps <- pairs(tt, interaction = TRUE)
summary(comps,  adjust = "holm")
库(nlme)
图书馆(multcomp)
要求(lsmeans)
#我有以下版本:
#R版本3.2.4修订版(2016-03-16 r70336)
#平台:x86_64-w64-mingw32/x64(64位)
#在以下环境下运行:Windows 7 x64(build 7601)Service Pack 1
#nlme_3.1-126
#multcomp_1.4-4

exdf让我们分步构建它。首先,你们想得到其他因素组合的两年差异。这在lsmeans中使用

tt = lsmeans(mod1, specs = ~ Year | Treatment:Site)
dd = pairs(tt, reverse = TRUE)   # (2011) - (2008) for each T*S comb
summary(dd, by = NULL)
现在,您可以随意比较这些差异:

pairs(dd, by = "Site")
pairs(dd, by = "Treatment")
。。。或者稍微比较一下:

pairs(lsmeans(dd, "Treatment"))
pairs(lsmeans(dd, "Site"))

关于“不是形式我不是”的意思-你想要什么形式?看起来你可能想要~Year | Treatment*站点之类的东西,也许你想要成对的结果?谢谢。“形式”是指测试代码中列出的比较。我尝试了你的建议(类似于代码末尾的建议),但没有测试上面的比较。稍微不同的公式,
ls