如何为三阶因子设计绘制响应面图?

时间:2018-11-17 09:15:06

标签: r

我使用Rstudio创建了一个具有两个级别(低和高)的三因子设计。我的因素是:

  1. 催化剂类型(T-300编码为-1,TG-300编码为+1)(类别)
  2. TiO2的装载量(0.1 g / L编码为-1,1.0 g / L编码为+1)(数字)
  3. 过氧化氢剂量(2.5 mL编码为-1,10 mL编码为+1)(数字)

结果变量为“ % Degradation of Gallic acid

我的预测模型是:

water <- lm(y ~ C + S + T + C*T + C*S + S*T + C*T*S)

C <- T <- S <- c(-1, +1)

design <- expand.grid(C=C, T=T, S=S)
C <- design$C
T <- design$T
S <- design$S
y <- c(50, 46, 39, 36, 75, 73, 52, 55)

我的问题是如何为模型绘制响应曲面图?

1 个答案:

答案 0 :(得分:1)

您可以使用misc3d包绘制响应表面的3D等高线图。这需要一个可以根据您的拟合模型进行预测的功能。

它还需要您选择涵盖感兴趣范围的C,T和S值网格。我建议每个大约10个级别。

您需要选择等高线图进行绘制。您的数据介于36到73之间,因此可能会很有趣,例如40、50、60、70。使用heat.colors(4)或其他调色板。

contour3d函数通常不显示轴;您将要添加这些。

将所有内容放入代码中

pred <- function(C, T, S) predict(water, newdata = data.frame(C, T, S))

C1 <- T1 <- S1 <- seq(-1, 1, len = 10)

library(rgl)
library(misc3d)
contour3d(pred, x=C1, y=T1, z=S1, level=c(40, 50, 60, 70), color = heat.colors(4))
decorate3d(xlab = "C", ylab = "T", zlab = "S")

这将产生此情节(我已经旋转了一点以使事物更明显):

enter image description here

红色的表面是40的响应,淡黄色的是70。您可以看到C的水平无关紧要;您在低T和高S下获得最高的响应。