如何模拟未复制的因子设计?

机器算法验证 r 回归 实验设计 模拟 随机生成
2022-04-06 08:15:59

我正在处理一个未复制的因子设计。我有一些说明性示例,但我需要模拟一些未复制的因子设计。我不知道如何使用以及使用什么。可以处理这个吗?R

例如,我想分析一个只有一次运行和 15 个对比我有一个响应列。我想比较一下文献中的一些方法,看看哪种方法能更好地检测到主动效果。因此,我将主动效果设置为具有相同的大小,并且我想相同的误差响应向量。我的真实模型有四个主动效果,我想响应向量但我不知道如何使用 R 生成这样的数据。241.5σ100N(0,1)100y=3+1.5A+1.5B+1.5C+1.5BC

来自 Montgomery 的 $2^4$ 非复制因子设计示例


谢谢你的回复。在我在这里看到你的答案之前,我只是写了一个简单的代码。我想,我需要积累更多的 R 知识。无论如何,这里是:

个因子且因子效应(主效应和交互作用)的非重复因子设计的分析,一般采用以下模型kp=2k1

y=i=0pxiβi+εi

所以,首先我介绍了我的符号表,用于所谓的主动效应24β

符号表由行(运行)和列(与一般平均值对比)组成。 在此处输入图像描述

然后,我创建了我的回归方程,其中包含活跃效应的大小和剩余非活跃效应的零点。例如,我的模拟模型是y=3+1.5A+1.5B+1.5C+1.5BC在此处输入图像描述

然后,我运行下面的代码

x=read.csv("sign2.txt", header=TRUE)
sign= as.matrix(x)
is.matrix(sign)

y=read.csv("beta2.txt", header=TRUE)
beta= as.matrix(y)
is.matrix(beta)

signt=t(sign)

bs=t(beta %*% signt)

epsilon=matrix( rnorm(16*1,mean=0,sd=1), 16, 1) 

response=bs+epsilon

然而,不幸的是,它只用于一个模拟。我将放置一个循环命令来运行模拟 n 次。

1个回答

在 R 中生成像你这样的随机数据的关键是使用?rnorm您可能还希望通过?set.seed将随机种子设置为固定值,以便将来可以精确复制您的模拟。为方便起见,您可能更喜欢使用?expand.grid来创建您的因子组合,尽管您也可以手动完成(并且可以想象,为了清晰起见,您可能更喜欢这样做)。设置好模拟后,您将需要多次运行它以了解其长期运行行为;我相信这可以使用?replicate来完成,但我通常只是将它嵌套在一个for循环中,因为我专门编写可笑的低效代码。

这是一个例子:

> set.seed(1)
> A <- c(0,1)
> B <- c(0,1)
> C <- c(0,1)
> D <- c(0,1)
> Xmat <- expand.grid(A=A, B=B, C=C, D=D)
> Xmat
   A B C D
1  0 0 0 0
2  1 0 0 0
3  0 1 0 0
4  1 1 0 0
5  0 0 1 0
6  1 0 1 0
7  0 1 1 0
8  1 1 1 0
9  0 0 0 1
10 1 0 0 1
11 0 1 0 1
12 1 1 0 1
13 0 0 1 1
14 1 0 1 1
15 0 1 1 1
16 1 1 1 1
> y <- 3 + 1.5*Xmat$A + 1.5*Xmat$B + 1.5*Xmat$C + 1.5*Xmat$B*Xmat$C + 
+      rnorm(n=16, mean=0, sd=1)
> y
 [1] 2.373546 4.683643 3.664371 7.595281 4.829508 5.179532 7.987429 9.738325
 [9] 3.575781 4.194612 6.011781 6.389843 3.878759 3.785300 8.624931 8.955066