楼主: jpld
4571 0

[学习分享] 【MATLAB 从零到进阶】day13 方差分析(下) [推广有奖]

  • 2关注
  • 50粉丝

已卖:4份资源

讲师

2%

还不是VIP/贵宾

-

威望
0
论坛币
1264 个
通用积分
9.5333
学术水平
120 点
热心指数
120 点
信用等级
99 点
经验
1249 点
帖子
192
精华
0
在线时间
271 小时
注册时间
2009-5-29
最后登录
2024-6-25

楼主
jpld 发表于 2015-7-8 22:52:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

多因素一元方差分析

一、多因素一元方差分析的原理

把样本数据的总离差平方和分解为:各因素主效应离差平方和、交互效应离差平方和、随机因素的离差平方和。根据平方和及自由度分解方式构造检验统计量,对各因素主效应、交互效应作出检验。

多因素一元方差分析的MATLAB实现

anovan函数

功能:多因素一元方差分析

调用方式:

p = anovan(y,group)

p = anovan(y,group,param1,val1,param2,val2,…)

[p,table] = anovan(…)

[p,table,stats] = anovan(…)

[p,table,stats,terms] = anovan(…)


单因素多元方差分析的MATLAB实现

manova1函数

功能:单因素多元方差分析

调用方式:

d = manova1(X,group)

d = manova1(X,group,alpha)

[d,p] = manova1(…)

[d,p,stats] = manova1(…)

【案例分析】

为研究销售方式对商品的销售额的影响,选择四种商品(甲、乙、丙和丁)按三种不同的销售方式(Ⅰ、Ⅱ和Ⅲ)进行销售。这四种商品的销售额分别记为 x1,x2,x3,x4,其数据见表。试分析不同销售方式对销售额是否有显著影响?取α = 0.01。

QQ截图20150708155015.jpg

>> xdata = xlsread('examp011_05.xls');

% 提取xdata的第2至5列和第8至11列,即四种商品的销售额数据

>> x = [xdata(:,2:5); xdata(:,8:11)];

% 提取xdata的第6列和第12列,即销售方式数据

>> group = [xdata(:,6); xdata(:,12)];

% 调用manova1函数作多元方差分析

>> [d,p,stats] = manova1(x,group)

d =


     1



p =


    0.0040

    0.0917



stats =


           W: [4x4 double]

           B: [4x4 double]

           T: [4x4 double]

         dfW: 57

         dfB: 2

         dfT: 59

      lambda: [2x1 double]

       chisq: [2x1 double]

     chisqdf: [2x1 double]

    eigenval: [4x1 double]

    eigenvec: [4x4 double]

       canon: [60x4 double]

       mdist: [60x1 double]

      gmdist: [3x3 double]

      gnames: {3x1 cell}

结论

从manova1函数返回的结果来看,检验的p 值分别为0.004和0.0917,说明在显著性水平0.05下拒绝假设:3种销售方式所对应的销售量的均值向量都相同,接受假设:3种销售方式所对应的销售量的均值向量位于一个1维空间(即共线),因此维数的估计值为d = 1. 总的来说,在显著性水平0.05下,可认为不同销售方式对销售额有显著影响,但是究竟对四种商品中的哪种商品的销售额有显著影响,还需要对四种商品的销售额分别作一元方差分析才能知晓。

>> [p1,table1] = anova1(x(:,1),group)

QQ截图20150708221514.jpg


>> [p2,table2] = anova1(x(:,2),group)

QQ截图20150708221535.jpg


>> [p1,table3] = anova1(x(:,3),group)

QQ截图20150708221553.jpg


>> [p1,table4] = anova1(x(:,4),group)

QQ截图20150708221613.jpg


非参数方差分析

前面介绍的方差分析均要求样本来自于正态总体,并且这些正态总体应具有相同的方差,在这样的基本假定(正态性假定和方差齐性假定)下检验各总体均值是否相等,这属于参数检验。当数据不满足正态性和方差齐性假定时,参数检验可能会给出错误的结果,此时应采用基于秩的非参数检验。

Kruskal-Wallis检验(单因素非参数方差分析)

kruskalwallis函数

调用方式:

p = kruskalwallis(X)

p = kruskalwallis(X,group)

p = kruskalwallis(X,group,displayopt)

[p,table] = kruskalwallis(…)

[p,table,stats] = kruskalwallis(…)

【案例分析】

某灯泡厂用四种不同配料方案制成的灯丝生产四批灯泡,在每一批中取若干个作寿命试验,得如下数据

(单位:小时):问灯丝的不同配料方案对灯泡寿命有无显著影响?

QQ截图20150708222946.jpg

方差分析

>> A1 = [1600, 1610, 1650, 1680, 1700, 1720, 1800]';

>> g1 = repmat({'A1'},size(A1));  % 定义配料方案的第1种水平

>> A2 = [1580, 1640, 1600, 1650, 1660]';

>> g2 = repmat({'A2'},size(A2));  % 定义配料方案的第2种水平

>> A3 = [1460, 1550, 1600, 1620, 1640, 1610, 1540, 1620]';

>> g3 = repmat({'A3'},size(A3));  % 定义配料方案的第3种水平

>> A4 = [1510, 1520, 1530, 1570, 1600, 1680]';

>> g4 = repmat({'A4'},size(A4));  % 定义配料方案的第4种水平

>> life = [A1;A2;A3;A4];

>> group = [g1;g2;g3;g4];

% 调用kruskalwallis函数作Kruskal-Wallis检验

>> [p,table,stats] = kruskalwallis(life,group)

QQ截图20150708223038.jpg


多重比较

% 调用multcompare对不同配料方案下灯泡的寿命进行多重比较

>> [c,m,h,gnames] = multcompare(stats);

>> c  % 查看多重比较的结果矩阵c

c =

    1.0000    2.0000   -6.6331    4.8429   16.3188

    1.0000    3.0000   -0.5630    9.5804   19.7237

    1.0000    4.0000    1.0724   11.9762   22.8800

    2.0000    3.0000   -6.4356    4.7375   15.9106

    2.0000    4.0000   -4.7344    7.1333   19.0010

    3.0000    4.0000   -8.1888    2.3958   12.9804

QQ截图20150708223216.jpg

Friedman检验

friedman函数

调用方式:

p = friedman(X,reps)

p = friedman(X,reps,displayopt)

[p,table] = friedman(…)

[p,table,stats] = friedman(…)

案例分析

设有来自A,B,C,D 四个地区的四名厨师制作名菜:京城水煮鱼,想比较它们的品质是否相同。四位美食评委对四名厨师的菜品分别作出了评分,如下表所列。试根据表中的数据检验四个地区制作的京城水煮鱼这道菜的品质有无区别。

QQ截图20150708223311.jpg

方差分析

>> x = [85  82  82  79

    87  75  86  82

    90  81  80  76

    80  75  81  75];

% 调用friedman函数作Friedman检验,返回检验的p值、方差分析表table和结

构体变量stats

>> [p,table,stats] = friedman(x)

QQ截图20150708223400.jpg

多重比较

% 调用multcompare函数对四个地区制作的京城水煮鱼这道菜的品质进行多重

比较

>> [c,m] = multcompare(stats);

>> c  % 查看多重比较的结果矩阵c

c =


    1.0000    2.0000   -0.5358    1.7500    4.0358    0.2006

    1.0000    3.0000   -1.4108    0.8750    3.1608    0.7589

    1.0000    4.0000    0.0892    2.3750    4.6608    0.0381

    2.0000    3.0000   -3.1608   -0.8750    1.4108    0.7589

    2.0000    4.0000   -1.6608    0.6250    2.9108    0.8962

    3.0000    4.0000   -0.7858    1.5000    3.7858    0.3311

QQ截图20150708223447.jpg



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB matla atlab 方差分析 Mat 自由度 统计 样本

QQ截图20150708223135.jpg (49.33 KB)

QQ截图20150708223135.jpg

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-1 03:15