0

我使用lme4 包中的 lmer来运行线性混合效果模型。我有未处理 (5) 和处理过的地块 (10) 的 3 年温度数据。该模型:

modela<-lmer(ave~yr*tr+(1|pl), REML=FALSE, data=mydata)

模型检查残差的正态性;qqnorm plot 我的数据:

'data.frame':   6966 obs. of  7 variables:

$ yr : Factor w/ 3 levels "yr1","yr2","yr3": 1 1 1 1 1 1 1 1 1 1 ...

$ pl : Factor w/ 15 levels "C02","C03","C05",..: 1 1 1 1 1 1 1 1 1 1 ...

$ tr : Factor w/ 2 levels "Cont","OTC": 1 1 1 1 1 1 1 1 1 1 ...

$ ave: num  14.8 16.1 11.6 10.3 11.6 ...

交互很重要,所以我使用了 lsmeans:

lsmeans(modela, pairwise~yr*tr, adjust="tukey")

在对比中,我得到(仅摘录)

contrast                estimate        SE      df t.ratio p.value

yr1,Cont - yr2,Cont -0.727102895 0.2731808 6947.24  -2.662  0.0832

yr1,OTC - yr2,OTC   -0.990574030 0.2015650 6449.10  -4.914  <.0001

yr1,Cont - yr1,OTC  -0.005312771 0.3889335   31.89  -0.014  1.0000

yr2,Cont - yr2,OTC  -0.268783907 0.3929332   32.97  -0.684  0.9825

我的问题是关于某些对比的高 dfs,以及相关但无意义的低 p 值。

这可能是由于:

-在我的数据集中存在 NA(删除时有一些改进)

- 不相等的样本量(例如,一种治疗中的 5 个,另一种治疗中的 10 个 - 然而,那些(yr1,Cont - yr1,OTC)似乎不是问题。

其他问题?

我搜索了 stakoverflow 问题,并进行了交叉验证。

感谢您的任何答案,想法,评论。

4

1 回答 1

1

在这个例子中,处理是通过实验分配给地块的。分配给处理的少量地块严重限制了可用于统计比较处理的信息。(如果每个处理只有一个地块,甚至无法比较处理,因为您无法从地块的效果中区分出处理的效果。)您有 10 个地块分配给一个治疗和5到另一个。就治疗的主效应而言,治疗的主效应有 (10-1)+(5-1) = 13 df,如果你这样做

lsmeans(modela, pairwise ~ tr)

对于这些统计数据,您将看到大约 13 df(可能由于不平衡和缺失而减少)。当您比较年份和治疗的组合时,您会得到大约 3 倍的 df,因为有 3 年。然而,在其中一些比较中,被比较的每个组合的年份都是相同的,并且在这些比较中,地块的变化大部分被抵消(这是一个地块内的比较);在那些情况下,df 基本上来自模型的残差,它有数千个 df 由于数据的不平衡,这些比较有点受到图间变化的污染,使得 df 比剩余自由度

看来您对诸如treat1、year1 与treat2、year3 之类的交叉比较并不特别感兴趣。我建议使用“按”变量来减少测试的比较次数,因为当你全部测试时,多重性校正是不必要的保守。它会是这样的:

modela.lsm = lsmeans(modela, ~ tr * yr)
pairs(modela.lsm, by = "yr")   # compare tr for each yr
pairs(modela.lsm, by = "tr")   # compare yr for each tr

这些调用将分别对每个“按”组应用 Tukey 校正。如果您想对每个家庭进行多重校正,请执行以下操作:

rbind(pairs(modela.lsm, by = "yr"))
rbind(pairs(modela.lsm, by = "tr"))

默认情况下,使用多元 t 校正(Tukey 在这里不是正确的方法)。你甚至可以做

rbind(pairs(modela.lsm, by = "yr"), pairs(modela.lsm, by = "tr"))

将所有比较归为一个族并应用多元 t 调整。

于 2017-04-22T15:42:07.007 回答