【数学建模】单、多因素试验的方差分析(Matlab代码实现)

这篇具有很好参考价值的文章主要介绍了【数学建模】单、多因素试验的方差分析(Matlab代码实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

 

1 概述

2 单因素方差分析

2.1 语法

2.2 算例 1

2.2.1 算例

2.2.2 Matlab代码

2.2.3 结果

2.3 算例2

2.3.1 算例

2.3.2 Matlab代码

2.4 算例3

2.4.1 算例

2.4.2 Matlab代码

2.4.3 结果

2.5 算例4(不均衡样本)

2.5.1 算例

 2.5.2 Matlab代码

2.5.3 结果

3 双因子方差分析

3.1 语法

3.2 算例

3.3 Matlab代码

3.4 结果

4 升级理解

4.1 算例

4.2 Matlab代码实现

4.2.1 写在前面

4.2.2 代码

4.2.3 结果


1 概述

一个复杂的事物,其中往往有许多因素互相制约又互相依存。方差分析的目的是通过数据分析找出对该事物有显著影响的因素,各因素之间的交互作用,以及显著影响因素的最佳水平等。

这里介绍一下 方差分析 的一些概念和方法: 试验中要考察的指标称为 试验指标 ,影响试验指标的条件称为 因素 ,因素所处的状态称为 水平 ,若试验中只有一个因素改变则称为 单因素试验 ,若有两个因素改变则称为 双因素试验 ,若有多个因素改变则称为 多因素试验 方差分析 就是对试验数据进行分析,检验方差相等的多个正态总体均值是否相等,进而判断各因素对试验指标的影响是否显著,根据影响试验指标条件的个数可以区分为 因素方差分析 、双因素方差分析 多因素方差分析

2 单因素方差分析

Matlab 统计工具箱中单因素方差分析的命令是 anoval 。 

若各组数据个数相等,称为均衡数据。若各组数据个数不等,称非均衡数据。 

2.1 语法

(1) p=anova1(X)
(2) p=anova1(X,group) %group用于不均衡样本
(3) p=anova1(X,group,displayopt)
(4) [p,table]=anova1(…) %table显示方差表
(5) [p,table,stats]=anova1(…) %stats显示箱图

2.2 算例 1

2.2.1 算例

为考察 5 名工人的劳动生产率是否相同,记录了每人 4 天的产量,并算出其平均值,如表1 。你能从这些数据推断出他们的生产率有无显著差别吗?  

256 254 250 248 236
242 330 277 280 252
280 290 230 305 220
298 295 302 289 252

2.2.2 Matlab代码

x=[256     254     250     248     236 
    242     330     277     280     252 
    280     290     230     305     220 
    298     295     302     289     252]; 
p=anova1(x) 

2.2.3 结果

(还输出一个方差表和一个Box图。 )运行后得到一表一图,表是方差分析表(重要);图是各列数据的盒子图,离盒子图中心线较远的对应于较大的F值,较小的概率p.

1)方差表: 

 【数学建模】单、多因素试验的方差分析(Matlab代码实现)

anova1函数生成两个图形:

1)第一个图为标准方差分析表,分为六列:

第一列:显示误差来源;

第二列:显示每一误差来源的平方和(ss);

第三列:显示与每一误差来源相关的自由度(df);

第四列:显示均值平方和;

第五列:显示F统计量;

第六列:显示p值.

求得p=0.1109>a=0.05,故接受H0,即5名工人的生产率没有显著差异。若p值接近0,则认为列均值存在差异。若P值小于0.05或0.01,此时拒绝原假设,即5名工人的生产率没有显著差异。

有人要问为什么用结果与0.05来做比较,不然写论文都不会写了,这里普及一下 基本知识:
  1. 显著性,又称统计显著性(Statistical significance), 是指零假设为真的情况下拒绝零假设所要承担的风险水平,又叫概率水平,或者显著水平。

  2. 显著性的含义是指两个群体的态度之间的任何差异是由于系统因素而不是偶然因素的影响。我们假定控制了可能影响两个群体之间差异的所有其他因素,因此,余下的解释就是我们所推断的因素,而这个因素不能够100%保证,所以有一定的概率值,叫显著性水平(Significant level)。

  3. 我们一般认为大于0.05是不显著。显著性大于0.05,证明在百分之五水平上是不显著的。

2)Box图:

【数学建模】单、多因素试验的方差分析(Matlab代码实现)

2.3 算例2

2.3.1 算例

本算例来源于2022华数杯比赛数据,插层后结构变量、产品性能的变化规律试验指标就是我们题目中的插层率,因素就是题目中的六个指标(特征)。这里仅以插层率为试验指标,因素就是孔隙率。

【数学建模】单、多因素试验的方差分析(Matlab代码实现)

2.3.2 Matlab代码

clear all
clc
load data.mat;
p=anova1(data)

【数学建模】单、多因素试验的方差分析(Matlab代码实现)

p = 6.2588e-11<0.05,影响非常显著!

【数学建模】单、多因素试验的方差分析(Matlab代码实现)

2.4 算例3

2.4.1 算例

例1(均衡样本). 某水产研究所为了比较四种不同配合饲料对鱼的饲喂效果,选取了条件基本相同的鱼20尾,随机分成四组,投喂不同饲料,经一个月试验以后,各组鱼的增重结果列于下表。

四种不同饲料对鱼的增重效果是否显著 ?

饲料 鱼的增重(xj)
A1 31.9 27.9 31.8 28.4 35.9
A2 24.8 25.7 26.8 27.9 26.2
A3 22.1 23.6 27.3 24.9 25.8
A4 27 30.8 29.o 24.5 28.5

2.4.2 Matlab代码

A=[31.9	27.9	31.8	28.4	35.9
     24.8	25.7	26.8	27.9	26.2
     22.1	23.6	27.3	24.9	25.8
     ]; %原始数据输入
B=A';% 将矩阵转置,Matlab中要求各列为不同水平
p=anova1(B)

2.4.3 结果

【数学建模】单、多因素试验的方差分析(Matlab代码实现)

 因为p=0.0029<0.01,故不同饲料对鱼的增重效果极为显著 .
四种不同饲料对鱼的增重效果极为显著 ,那么哪一种最好呢?请看下图:【数学建模】单、多因素试验的方差分析(Matlab代码实现)

此时,第一个图对应第一种饲料且离盒子图中心线较远,效果最突出。如果从原始数据中去掉第一种饲料的试验数据,得到的结果为各种饲料之间对鱼的增重效果不显著 .

2.5 算例4(不均衡样本)

2.5.1 算例

为比较同一类型的三种不同食谱的营养效果,将19支幼鼠随机分为三组,各采用三种食谱喂养. 12周后测得体重,三种食谱营养效果是否有显著差异?

食谱 体重增加量
164 190 203 205 206 214 228 257
185 197 201 231
187 212 215 220 248 256 281

 2.5.2 Matlab代码

A=[164  190  203  205  206  214  228  257 185  197  201  231 187  212  215  220  248  265  281];
group=[ones(1,8),2*ones(1,4),3*ones(1,7)];
p=anova1(A, group)

2.5.3 结果

【数学建模】单、多因素试验的方差分析(Matlab代码实现)

 因为p=0.18630.01,故不同饲料对鱼的增重效果不显著 .

3 双因子方差分析

3.1 语法

双因素方差分析:anova2
调用格式:
(1) p=anova2(X)
(2) p=anova2(X,reps)
(3) p=anova2(X,reps,displayopt)
(4) [p,table]=anova1(…)
(5) [p,table,stats]=anova1(…)

其中输入X是一个矩阵;resp表示试验的重复次数输出的p值有三个,分别为各行、各列以及交互作用的概率.
若p<0.05,有显著差异
若p<0.01,有高度显著差异

3.2 算例

为了解3名修理工工作效率,每人修理三种磁盘系统各5个,时间如下:

【数学建模】单、多因素试验的方差分析(Matlab代码实现)

3.3 Matlab代码

x=[62 48 63 57 69 57 45 39 54 44 59 53 67 66 47
   51 57 45 50 30 61 58 70 66 51 55 58 50 69 49
   59 65 55 52 70 58 63 70 53 60 47 56 51 44 50];
   p=anova2(x',5);

3.4 结果

【数学建模】单、多因素试验的方差分析(Matlab代码实现)

单、多因素试验的方差分析

4 升级理解

4.1 算例

银行在国家经济社会发展过程中扮演者重要的决策,银行的破产会对企业和个人造成众多不利的影响。相比国内的银行,国际银行的倒闭频次更高,因此国际银行倒闭原因的分析与预测受到众多管理者与学术研究者的广泛关注。附件1中提供了波兰2017年至2021年的现存或倒闭银行的64项指标数据,各项数据指标具有对应的解释。

请利用该64项指标对银行倒闭的原因进行挖掘,并提供最为重要的5项指标数据及其对应的权重;

4.2 Matlab代码实现

4.2.1 写在前面

X = finv(P,V1,V2)

计算 F cdf 的逆,分子自由度为 V1,分母自由度为 V2,对应于 P 中的概率。P、V1 和 V2 可以是向量、矩阵或多维具有相同大小的数组。标量输入扩展为与其他输入具有相同维度的常量数组。 V1 和 V2 参数必须包含实数正值,并且 P 中的值必须位于区间 [0 1] 内。
F 反函数根据 F cdf 定义为:

【数学建模】单、多因素试验的方差分析(Matlab代码实现)

 从分子为 5 个自由度、分母为 10 个自由度的 F 分布中找出一个应超过 95% 样本的值。文章来源地址https://www.toymoban.com/news/detail-455673.html

x = finv(0.95,5,10)
x =
  3.3258
仅在 5% 的时间内偶然观察到大于 3.3258 的值。

4.2.2 代码

clear
clc

load data1.mat;
X=data1(:,3:end);
%% 归一化
X=mapminmax(X',0,1);
group=data1(:,2)';
P=[];
F=[];
Fa=[];
Z=[];
for i=1:size(X,1)
    [p,anovatab,stats]=anova1(X(i,:),group);%单因素方差分析
    P=[P,p];
    fa=finv(0.95,anovatab{2,3},anovatab{3,3});%计算fa
    Fa=[Fa,fa];
    f=anovatab{2,5};%F值
    F=[F,f];
    if p<=0.01 & f>fa
        Z=[Z,"非常显著"];
    elseif p<=0.05 & f>fa
        Z=[Z,"显著"];
    else
        Z=[Z,"不显著"];
    end
end
z=find(Z=='非常显著');
P=P(z);
[P,b]=sort(P);
%% top5影响显著的指标
disp('主要指标序号')
a=z(b(1:5));
disp(a)%指标序号
%% 权重就用余弦相似度确定,然后进行归一化
C=[];
for i=1:length(a)
    C(i)=(group*X(a(i),:)')/(sqrt(sum(group.^2))*sqrt(sum(X(a(i),:).^2)));
end
W=C./sum(C);
disp('权重')
disp(W)
%% 评价值
P=[data1(:,1:2),X(a,:)'*W'];

%% 检验通过后,接下来就是求分界线,其实就是依次分类统计下均值在取个中间值就好了
%求每个主要指标的
% M=[];
% for i=1:length(a);
%     M(i,:)=[mean(X(a(i)),find(data1(:,2)==0)),mean(X(a(i),find(data1(:,2)==1)))];
% end
% disp('主要指标分界点')
% M=mean(M,2)

4.2.3 结果

主要指标序号
    51    35    16    26     3

权重
    0.2367    0.1979    0.1844    0.1857    0.1953

到了这里,关于【数学建模】单、多因素试验的方差分析(Matlab代码实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab数学建模-典型相关分析

    典型相关分析是研究两个多变量(向量)之间之间的线性相关关系,能够揭示出两组变量之间的内在联系。 CCA(典型相关分析) 在一元统计分析中,用相关系数来衡量两个随机变量的线性相关关系,用复相关系数研究一个随机变量与多个随机变量的线性相关关系。然而,这些方

    2024年02月10日
    浏览(56)
  • 数学建模-相关性分析(Matlab)

     注意:代码文件仅供参考,一定不要直接用于自己的数模论文中 国赛对于论文的查重要求非常严格,代码雷同也算作抄袭 如何修改代码避免查重的方法:https://www.bilibili.com/video/av59423231   //清风数学建模 连续数据、正态分布、线性关系三者同时满足优先用。 一般处理这种

    2024年02月07日
    浏览(42)
  • 数学建模之层次分析法(含MATLAB代码)

    层次分析法的基本原理与步骤 人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是 一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。层次 分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。 基本

    2024年02月01日
    浏览(56)
  • 数学建模之回归分析算法(含matlab源代码)

    目录 一、一元线性回归 1、步骤  2、matlab命令(多元线性回归) 3、举例  二、一元非线性回归  三、多项式回归 1、一元多项式回归  应用  2、多元二项式 应用  四、非线性回归  应用 五、 逐步回归  应用    r²和F越大越好 p越小越好      从残差图可以看出,除第二个

    2024年02月09日
    浏览(64)
  • 【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码

    【2023五一杯数学建模】B题 快递需求分析 31页论文 请依据以下提供的附件数据和背景内容,建立数学模型,完成接下来的问题:问题背景是,网络购物作为一种重要的消费方式,带动着快递服务需求飞速增长,为我国经济发展做出了重要贡献。准确地预测快递运输需求数量对

    2024年02月01日
    浏览(70)
  • 【数学建模学习】matlab实现评价模型——层次分析法(AHP)

    目录 1概述  2算法实现流程 3实例  4matlab实现层次分析法 5计算结果 层次分析法,简称AHP,是评价模型中的一种算法,指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。层次分析法的缺陷在于判断矩阵是主观决定的,

    2024年02月04日
    浏览(54)
  • 数学建模———层次分析法及其matlab语法,函数和代码实现

    层次分析法思想登场 建模比赛中最基础的模型之一,其主要用于解决评价类问题(例如:选择那种方案最好,哪位运动员或者员工表现的更优秀。) 评价类问题字眼: 评价的目标是什么? 达到这个目标有那几种方案? 评价准则或指标是什么? 确定权重的方方法——分而治

    2024年02月15日
    浏览(43)
  • 数学建模学习(58):简单点六分钟学会matlab应用层次分析(AHP)

    这两篇呢都比较偏原理,想要模仿出来还是挺费劲,这里我们讲一下简单的套路。至少你应该从这两篇文章学会到判断矩阵怎么写出来的。 二、原理过程与套路实现 一致性指标为(一致性指标用CI计算,CI越小,说明一致性越大): 判断矩阵元素 的标度方法如下,这个我已

    2024年04月27日
    浏览(38)
  • 6.方差分析——单因素检验、事后检验的数学公式与代码实现

    方差分析(Analysis of Variance,ANOVA)是假设检验的一种延续与扩展,主要用来对多个总体均值(三组或三组以上均值)是否相等作出假设检验,研究分类型自变量对数值型因变量的影响。 它的零假设和备择假设分别为: 方差分析的核心 因变量的总变化由两部分引起: 自变量引起

    2024年01月22日
    浏览(41)
  • 数学建模预测模型MATLAB代码大合集及皮尔逊相关性分析(无需调试、开源)

           选取2000-2017年x省碳排放量为训练集,2018-2022x省碳排放量作为测试集,以此来预测2023-2026年x省碳排放量。设置训练次数为 1000次,学习速率为0.2;对该训练集BP神经网络模型拟合后模型的训练样本、验 证样本和测试样本的均方误差分别是0.000012、0.0023、0.0042,整体的误

    2024年02月08日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包