设置排列设计(使用排列包)

问题描述 投票:0回答:1

我的主要问题是如何为以下抽样设计创建排列设计: 数据是在灌木丛下和附近、灌木丛影响之外收集的。我们称其为“对”(df$pair); 选择了三种不同的灌木种类,我们预计每种灌木的反应会有所不同。例如,灌木 1 将增加响应变量,而灌木 2 不会改变,灌木 3 将减少。 (我们不感兴趣每个灌木之间的特定条件下的响应是否发生变化,例如灌木 1 下与灌木 2 外的比较)。我不确定是否应该将灌木种类(灌木或condition_shrub)作为烫发设计中的“块”包含在内。

该假设正在使用 mvabund 包通过多元 glm 进行测试。

排列数据与此类似:

df <- data.frame(
  pair = rep(1:30, each = 2),
  condition = rep(c("under", "outside"), times = 10),
  shrub = rep(c("shrub1", "shurb2", "shrub3"), each = 20),
  condition_shrub = c(
    rep(c(rep("shrub1", 1), "outside"), times = 10),
    rep(c(rep("shrub2", 1), "outside"), times = 10),
    rep(c(rep("shrub3", 1), "outside"), times = 10)
  )
)

到目前为止,我想出了这个解决方案,但我不确定这是否正确来检验我们的假设。

我开始构建这样的模型:

model <- manyglm(response ~ shrub*pair,
  family = negative.binomial, data = df)

但是,我意识到,通过这种方式,我可以测试灌木内的条件是否相互变化(例如灌木1下的条件和灌木3外的vc条件)。

所以我想出了另一个似乎更有意义的模型:

model <- manyglm(response ~ condition_shrub,
  family = negative.binomial, data = df).

通过这种方式,我将

outside
条件视为因子水平(以及所有三种灌木物种)。

perm.ctrl <- how(
  within=Within(type="free"),
  plots  = Plots(strata = df$pair, type = "free"),
  blocks = df$shrub,
  nperm = 9999)

我知道,通过这种设计,排列总是发生在每种灌木类型内(和外部),并且配对结构被保留。有人可以指导我完成这个吗?

但是,在我看来,我可以忽略配对抽样设计,并允许在“condition_shrub”这种情况下进行自由排列,以测试假设每个物种之间和外部的响应是否有所不同;也就是说,灌木丛外的响应将始终相同,但如果在其中一棵灌木下,则会发生变化。

提前致谢。

r permutation hypothesis-test permute
1个回答
0
投票

您要测试的是

shrub
,因此您需要随机排列
pair
变量。这将生成
shrub
没有影响的零假设,因为在这个假设下,如果我们将
shrub1
的观测值对与
shrub2
shrub3
的观测值对以及
shrub
的值混合,应该没有关系。仅在
pair
级别发生变化 - 它不会在 pair 内发生变化。因此,为了使其成为有效的测试,我们需要保持每个
pair
的固定(未排列)样本(下方样本与外部样本)。
所以我认为你需要:

model <- manyglm(response ~ shrub, family = negative.binomial, data = df) h <- with( df, how( within = Within(type = "none"), plots = Plots(strata = pair, type = "free"), nperm = 999 )

因为我们将每个 
pair

内的观测值保持固定,所以我们不将由于 H0 下的检验统计量的排列分布中的内部与外部引起的变化包括在内。

相反,如果您对 

under

verse outside 的比较感兴趣,您只想在 withinpair 之间排列样本,而不是在对之间排列样本。您可以使用以下方法实现此目的:

model <- manyglm(response ~ condition * shrub,
  family = negative.binomial, data = df)

h <- with(
  df,
  how(
    within = Within(type = "free"),
    blocks = shrub, # not needed but won't hurt
    plots  = Plots(strata = pair, type = "none"),
    nperm  = 999
  )

在这里,我们可能想要考虑灌木之间的差异以及每个 
condition

潜在不同的

shrub
效果,因此我使用了模型规范。另请注意,我已阻止
shrub
;在这种情况下,我认为这是没有必要的,因为您已经对
pair
进行了独特的编码。如果您将
pair
编码为
pair1
pair2
、...
pair10
,这样我们每个灌木都有
pair1
,我们需要阻止
shrub
来停止样本在
shrub
之间交换,这是不合适的。
    

© www.soinside.com 2019 - 2024. All rights reserved.