正交试验设计(orthogonal design简称正交设计(orthoplan),是利用正交表(orthogonal table)科学地安排与分析多因素试验的方法,是最常用的试验设计之一。正交表是一种特殊的表格,内容是特定的,不过表头可以根据需要自己选择。正交表又分为等水平正交表和混合水平正交表。

一、正交表

上表即正交表L9(34),它表示需作9次实验,最多可观察4个因素,每个因素均为3水平。一个正交表中也可以各列的水平数不相等,我们称它为混合型正交表,如L8(41×24),此表的5列中,有1列为4水平,4列为2水平。根据正交表的数据结构看出,正交表是一个n行c列的表,其中第j列由数码1,2,… Sj 组成,这些数码均各出现n/Sj 次。

1.1 正交表的性质

每一列中,不同的数字出现的次数相等。例如在两水平正交表中,任何一列都有数码“1”与“2”,且任何一列中它们出现的次数是相等的;如在三水平正交表中,任何一列都有“1”、“2”、“3”,且在任一列的出现数均相等。

任意两列中数字的排列方式齐全而且均衡。例如在两水平正交表中,任何两列(同一横行内)有序对子共有4种:(1,1)、(1,2)、(2,1)、(2,2)。每种对数出现次数相等。在三水平情况下,任何两列(同一横行内)有序对共有9种,1.1、1.2、1.3、2.1、2.2、2.3、3.1、3.2、3.3,且每对出现数也均相等。

以上两点充分体现了正交表的两大优越性,即“均匀分散性,整齐可比”。通俗的说,每个因素的每个水平与另一个因素各水平各碰一次,这就是正交性。

1.2 正交表的结构

行数(Runs):正交表中的行的个数,即试验的次数,也是我们通过正交实验法设计的测试用例的个数。

因素数(Factors) :正交表中列的个数,即我们要测试的功能点。

水平数(Levels):任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或从1到“水平数” 。即要测试功能点的输入条件。

正交表一般用Ln(mk)表示,L代表是正交表,n代表实验次数或正交表的行数,k代表最多可安排影响指标因素的个数或正交表的列数,m代表每个因素的水平数,且有\(n=k*(m-1)+1\)。

如:L8(27)



正交试验法是用最少的测试用例覆盖两两组合,根据经验来看,如何两两组合没有问题,三三组合、四四组合等出问题的可能性也不大。

1.3 常用正交表

二、正交表的生成(R语言)

install.packages("DoE.base")
library(DoE.base)
design1 <- oa.design(L9.3.4)
 A B C D
1 1 2 3 2
2 1 1 1 1
3 1 3 2 3
4 3 2 1 3
5 2 2 2 1
6 3 1 2 2
7 3 3 3 1
8 2 3 1 2
9 2 1 3 3

三、正交实验设计步骤

正交实验设计法,就是使用已经造好了的表格——正交表来安排实验并进行数据分析的一种方法。正交实验采用两两组合方式,减少用例个数,使用于兼容性测试、测试范围小。

3.1 打印机正交实验设计

PowerPoint软件打印功能描述如下:打印范围分:全部、当前幻灯片、给定范围;打印内容分:幻灯片、讲义、备注页、大纲视图;打印颜色/灰度分:演的、灰度、黑白共三种设置;打印方式:是否加框。

正交实验设计步骤如下:

Step1、如果需求是文字描述,将文字转化为图形

Step2、需求中包含1个独立功能——打印功能

Step3、针对打印功能开展需求分析

    界面可见输入参数:打印范围、打印内容、打印颜色、打印方式

    界面不可见输入参数:网络、打印机本身(耗材、阴间)、驱动打印服务

Step4、分析界面可见输入参数之间的关系及特点

    

Step5、使用正交实验法设计测试用例

①将需求转化为因子状态表(因子:输入参数,状态输入参数取值)

②将因子状态表中的文字用字母代替

③将因子状态表带入正交表(规则:多则合并,少则补充)

④如果正交表中有合并项,将合并项拆分成多行

⑤将正交表中的字母用文字代替

⑥一行对应一条测试用例

3.2 web系统正交实验设计

web包含大量的服务器、操作系统、浏览器插件如下:

Web浏览器 插件 服务器 操作系统
Netscape6.2 IIS Windows2000
IE6.0 RealPlayer Apache Windows NT
Opera4.0 MediaPlayer Netscape Linux
Enterprise

选择四因子三状态的正交表,代入可得

总结

正交试验设计总的来说包括两部分:一是试验设计;二是数据处理、基本步骤可简单归纳如下:

(1) 明确试验目的,确定评价指标

(2) 挑选因素,确定水平。应对实际问题进行具体分析,并根据试验目的,选出主要因素。如果对问题了解不够,可以适当多取一些因素。确定因素的水平数时,一般尽可能使因素的水平数相等,以方便试验数据处理。最后列出因素水平表

(3) 选正交表,进行表头设计。根据因素数和水平数来选择合适的正交表。一般要求,因素数≦正交表列数,因素水平数与正交表对应的水平数一致,在满足上述条件的前提下,选择较小的表。如果要求精度高,可以选择较大的表

(4) 表头设计就是将试验因素安排到所选正交表相应的列中。一般一个因素占有一列,不同因素占有不同的列(可以随机排列)。不放置因素或交互作用的列称为空白列(简称空列),空白列在正交设计的方差分析中也称为误差列,一般最好留至少一个空白列

(5) 明确试验方案,进行试验,得到结果。对试验结果进行统计分析。通常采用两种方法:一种是直观分析法(或称极差分析法);另一种是方差分析法。通过试验结果分析可以得到因素主次顺序、优方案等信息

(6) 进行验证试验,作进一步分析

参考资料

正交试验法及其示例

正交实验

方差分析3——正交表与正交实验设计(R语言)的更多相关文章

  1. R语言实战(五)方差分析与功效分析

    本文对应<R语言实战>第9章:方差分析:第10章:功效分析 ================================================================ ...

  2. 实验的方差分析(R语言)

    实验设计与数据处理(大数据分析B中也用到F分布,故总结一下,加深印象)第3课小结--实验的方差分析(one-way analysis of variance) 概述 实验结果\(S\)受多个因素\(A ...

  3. R语言函数总结(转)

    R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字符不允许是数字. 基本命令要么是表达 ...

  4. 【R笔记】R语言函数总结

    R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字 ...

  5. R语言笔记完整版

    [R笔记]R语言函数总结   R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头, ...

  6. 【转】R语言函数总结

    原博: R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头, ...

  7. R 语言实战-Part 3 笔记

    R 语言实战(第二版) part 3 中级方法 -------------第8章 回归------------------ #概念:用一个或多个自变量(预测变量)来预测因变量(响应变量)的方法 #最常 ...

  8. 用R语言的quantreg包进行分位数回归

    什么是分位数回归 分位数回归(Quantile Regression)是计量经济学的研究前沿方向之一,它利用解释变量的多个分位数(例如四分位.十分位.百分位等)来得到被解释变量的条件分布的相应的分位数 ...

  9. 如何在R语言中使用Logistic回归模型

    在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...

  10. R语言实战(三)基本图形与基本统计分析

    本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 =============================================================== ...

随机推荐

  1. MBR和gpt说明

    1.MBR MBR的全称是Master Boot Record(主引导记录),MBR早在1983年IBM PC DOS 2.0中就已经提出.之所以叫"主引导记录",是因为它是存在于 ...

  2. cuda安装的问题

    小学期老师给的文档,里面要加入这几个环境变量 他这排版有问题,我就去网上找了几个cuda环境变量的配置 保姆级的CUDA的下载安装使用,详细的环境变量配置,不仅仅让你能够安装,还会教你弄懂为什么要这样 ...

  3. 如何修改被编译后DLL文件 (转发)

    我们平时在工作中经常会遇到一些已经被编译后的DLL,而且更加麻烦是没有源代码可以进行修改,只能针对这个DLL的文件进行修改才能得到我们想要的结果:本文将通过一个实例来演示如果完成一个简单的修改;我们将 ...

  4. conda相关的设置备忘

    因为默认channel已经没有3.4.4(最后一个支持xp的python3)了,为了添加这个的版本,尝试先用conda-forge channel: conda create -n myenv pyt ...

  5. CentOS7安装 Redis5 单实例

    1.下载redis下载地址在:redis.io比如把Redis安装到/usr/local/soft/ cd /usr/local/soft/ wget http://download.redis.io ...

  6. [Leetcode 235/236]LCA二叉树最近公共祖先Lowest Common Ancestor of a Binary Tree

    题目 给定二叉树和两个点,求两点的LCA最近公共祖先 Given a binary tree, find the lowest common ancestor (LCA) of two given n ...

  7. Pytorch 感知机

    单层感知机 \[\begin{aligned} & y = XW + b \\ & y = \sum x_i*w_i+b\\ \end{aligned} \] Derivative \ ...

  8. jieba初

    url: https://github.com/fxsjy/jieba/blob/master/ jieba "结巴"中文分词:做最好的 Python 中文分词组件 "J ...

  9. 西电oj135题 拼数字并排序

    类别综合 时间限制 1S 内存限制 1000Kb 问题描述 对于输入的字符串(只包含字母和数字),将其中的连续数字拼接成整数,然后将这些整数按从大到小顺序输出.例如字符串"abc123d5e ...

  10. 转载C#加密方法

    方法一:    //须添加对System.Web的引用     using System.Web.Security;          ...          /// <summary> ...