原创内容,欢迎转载,转载请注明出处
主笔:于浩
导读
1、正交试验设计源于统计学的正交表方法,由日本统计学家田口玄一推广应用于质量工程领域,故又称田口设计 。其核心思想是:当研究多个因素对某一指标的影响时,通过选择部分具有代表性的实验组合,而非穷举所有可能组合,从而大幅减少实验次数。例如,研究3个三水平因素时,传统方法需要3×3×3=27次实验,而使用L9(3^3)正交表仅需9次实验即可覆盖所有因素水平的组合情况,减少约67%的实验工作量。正交表具有"分散、整齐、可比"的特点,确保每个因素的各个水平在实验中出现的次数相等,且各因素间组合均匀分布。这种设计使得数据分析时能够准确区分各因素对结果的影响,甚至识别因素间的交互作用。
2、正交试验最常用的就是三因素三水平,正交表的列数是固定的,因此9次的正交实验最多安排4因素3水平。因素和水平太多会造成实验条件差异大,噪声干扰增强,结果分析不准确。因此建议就采用三因素三水平的正交实验就行,最多采用4因素3水平,如果更为复杂的实验,建议使用“Plackett-Burman设计+最陡爬坡试验+响应面优化”来优化实验条件。
3、可以进行正交试验设计和分析的软件有非常多,其中正交设计助手、SPSS是大家最常用的软件,但是网上很多使用的软件或者在线平台是收费软件,非常昂贵,如果没有购买这个软件但是文章中提到了使用该软件,可能会留下隐患。建议在发文章的时候使用R语言的DoE.base包,或者Python的statsmodels库,这些是免费软件。本教程也提供了python来分析正交试验的脚本,可以一句代码生成所有分析结果和图片。
“正交试验设计和分析是采用python的statsmodels库完成的。” 【教程后会附上python的代码脚本】
4、其他
本教程对于结果只采用了极差分析和方差分析,当然如果从统计学角度看,引入D列的空白列(误差列)进行方差分析,对于判断是否显著非常重要。但是就算分析中不使用空白列,结果基本上可以得到一个准确的实验结果。所以说这里对于更为详细复杂的分析过程没有展示,有兴趣的可以自己学习。
做正交试验主要的目的就是减少实验的次数,但是这并不意味着不需要做平行,虽然说可以不做平行,但是我认为本身正交试验已经将实验次数减少了,因此强烈推荐大家做实验平行,哪怕只做2个平行,也可以减少由于随机误差导致的结果分析不准确。
https://www.ibmspss.com.cn/jiaocheng/spss-icmkdkl.html
一、1个3因素3水平的正交试验
(一)、正交实验设计
1、正交实验设计的基本流程
正交试验的基本实验流程如下:
(1)先做单因素实验,确定正交实验需要采用的因素与水平,一般来说根据文献和主观判断来选择不同的因素进行单因素实验,根据单因素实验结果,选择影响显著的因素开展正交实验。通常选用3因素3水平就行,太多的因素和水平结果判断不准确。
(2)生成正交表,可以用软件生成,也可以直接用下面现成的,软件生成的跟下面的完全一样。
(3)根据正交表来开展实验,最好每组条件做2-3组平行,得到实验结果。
(4)使用软件进行极差分析以及方差分析,得到最优的实验条件。
2、一个简单的3因素3水平正交实验设计
正交实验的设计,基本上设计的模式都是默认的,所以大家不需要利用软件给自己生成一个正交试验设计表格,可以直接套用网上的正交实验设计(如下图)。
如果是3因素3水平就用前面三列(A、B、C)如果是4因素3水平就把空白列D作为第4个因素。
| 试验编号 | 因素A | 因素B | 因素C | 空白列D | 结果Y(做教程用) |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 1 | 1 | 9.5 |
| 2 | 1 | 2 | 2 | 2 | 12.1 |
| 5 | 1 | 3 | 3 | 3 | 9.8 |
| 3 | 2 | 1 | 2 | 3 | 15.0 |
| 4 | 2 | 2 | 3 | 1 | 16.5 |
| 5 | 2 | 3 | 1 | 2 | 12.9 |
| 7 | 3 | 1 | 3 | 2 | 10.0 |
| 8 | 3 | 2 | 1 | 3 | 13.2 |
| 9 | 3 | 3 | 2 | 1 | 10.8 |
3、用SPSS软件生成正交试验(这部分没有用)
参考附录
(二)、正交试验结果极差分析:正交设计助手
1、打开正交设计助手(点击下载软件),点击“文件/新建工程”,再弹出的对话框中输入工程名字,如Test。
2、点击刚才生成的工程的名字,再点击“实验/新建实验”,创建实验。
3、在弹出的对话框的第一个子窗口“实验说明”,输入实验的名称,如 正交试验。
4、在第2个子窗口“选择正交表”中选择“L9_3_4”,这个表格适用3因素3水平和4因素4水平的实验。
5、在最后一个子窗口 “因素与水平” 中写上因素的名称,因素一般都是写1、2、3,当然写其他的也行,只要能一一对应起来就行。最后点击“确定”
6、把实验的结果写在实验结果一栏,点击这个实验的名字,再点击“分析 / D. 直观分析”,就可以生成极差分析了。
7、下面就是极差分析结果,主要就看哪个因素的极差大,谁大谁对于结果影响显著。
(三)、正交试验结果方差分析:SPSS
1、方差分析一般用SPSS,我发现正交设计助手的方差分析不计算显著性,所以就使用大家常用的SPSS了,再次说一下,建议使用下面的python脚本,不要使用这个SPSS收费软件,有风险。想要下载使用可以到PDD上面自行购买。
第一步肯定也是打开SPSS软件,然后点击下面的 “变量视图”,在第一列输入我们的三个因素的名字,以及结果列的名字,输入后后面会自动生成一些信息,不用看。
2、点击下面的 “数据视图”,把上面的正交表和实验结果粘贴上去。
3、粘贴完成结果之后,点击上面的 “分析 / 一般线性模型 / 单变量”。
4、Y是结果,所以Y是因变量,点击Y再点击因变量左边的箭头,把Y移动到因变量这一栏。
同样的方法把L、M、N三个因素转移到 固定因子窗口中。
5、转移之后,点击右上角的 “模型”。
6、在模型窗口中,先点击“设定”, 再把左边的三个因素,依次转移到右边“模型”窗口中,不能一起选择转移。
在下面 类型中选择“主效应”,完成后点击“继续”。
7、又回到了之前的窗口,点击下面的“确定”就开始进行方差分析了。
8、很快就自动弹出方差分析的结果。从结果可以看出来,L、M和N三个因素的Sig.的值分别为0.046、0.100和0.621,其中L因素的值小于0.05,是显著的。
二、利用python脚本分析3因素3水平的正交实验结果
脚本和使用方法
我编写了一个正交实验的python脚本,采用了statsmodels等库来进行正交结果的极差分析和方差分析,并绘制了极差分析图片。
脚本的名字为:orthogonal_test.py (右键链接另存为,可以下载脚本)
这个脚本是一个3因素3水平的正交试验的结果分析,大家在使用的时候按照给出来的正交表开展实验(跟上面的正交表一样),然后把其中第40列的值更换成为自己的实验结果就可以了。
只需要打开powershell,或者在linux服务器上面找到脚本所在路径,输入
python orthogonal_test.py # linux上面是 python3 orthogonal_test.py
结果
下面就是生成的结果,首先是极差分析,可以看到根据极差分析:L因素 > M因素 > N因素,说明了L因素对于结果影响最大。
最优的水平组合也给出来了就是:L因素的2水平,M因素的2水平和N因素的2水平
通过方差分析可以看到,L因素的显著性p值为0.045968 < 0.05,因此L因素是显著的,所有的结果跟“正交设计助手“和”SPSS“给出来的结果完全一致,所以可以完全可以采用python脚本来分析结果,不需要下载上面的两个软件。
下面是脚本绘制出来的极差图片,更直观的看到每个因素的极差水平,以及判断每个因素哪个水平是最优的。
附录
利用SPSS来设计正交表格
有时间再补充,没啥用的操作。


















评论区