在生产中,为了优化试验条件,得到最佳或较佳的变量的值范围,常常用到响应面分析。这种响应面大多是基于二次多项式模型的。结果通常可以用二维等高线图或三维曲线图来展现。
等高线图
在SAS9.2以前,我们通常需要很多代码来实现这两个图,非常辛苦。需要先经过模型拟合得到参数,然后将参数代入公式,将公式输入程序中绘图。
第一步得到公式:
data ex;
input x1 x2 x3 x4 y ;
label x1=”温度/℃” x2=”时间/h” x3=”底物浓度/%”
x4=”[E]/[S]/%”;
cards;
-1 -1 0 0 199.1
-1 1 0 0 246.5
1 -1 0 0 217.3
1 1 0 0 259.6
0 0 -1 -1 225.3
0 0 -1 1 249.3
0 0 1 -1 243.6
0 0 1 1 276.8
-1 0 0 -1 220.2
-1 0 0 1 279.5
1 0 0 -1 203.6
1 0 0 1 304.3
0 -1 -1 0 230.4
0 -1 1 0 259.6
0 1 -1 0 250.8
0 1 1 0 297.5
-1 0 -1 0 263.3
-1 0 1 0 262.4
1 0 -1 0 237.2
1 0 1 0 261.6
0 -1 0 -1 189.5
0 -1 0 1 227.1
0 1 0 -1 251.8
0 1 0 1 298.5
0 0 0 0 286.4
0 0 0 0 287.1
0 0 0 0 285.9
;
proc rsreg data = ex out = two;
model y = x1-x4 /lackfit;
run;
第二步画图:
data ex2;
do x1=-1 to 1 by 0.08; do x2=-1 to 1 by 0.08; x3=0; x4=0;
y= 286.467+ x1*1.05+23.475*x2+12.100*x3+25.125*x4 -22.025*x1*x1-1.275*x2*x1-25.387*x2*x2+6.325*x3*x1+4.375*x3*x2-9.125*x3*x3+10.35*x4*x1+
2.275*x4*x2+2.30*x4*x3-20.16*x4*x4;
output;
end; /*–每个do对应一个end–*/
end;
proc gcontour;
plot x1*x2=y; /*–等高线图–*/
run;
proc G3GRID data=ex2;
GRID x2*x1=y/spline
Axis1=-1 to 1 by 0.1
Axis2= -1 to 1 by 0.1;
proc g3d; /*–绘制三维图–*/
plot x1*x2=y/ rotate=45;
run;
当然现在在9.2中,只需加个ods和一些选项就能搞定。一次搞定所有图,并且画出的图相当漂亮。
ods graphics on; proc rsreg data=ex /*plots( unpack)=surface(3d );*/ plots= (ridge surface(unpack)); model y=x1-x4/lackfit; run; ods graphics off;
有渲染的等高线图