在做多因素方差分析时,有三种方法计算平方和(以模型Y ~ A + B + A:B为例,即先输入A,再输入B,最后输入交互项A:B):Type Ⅰ Sums of Squares(Type1, sequential)

序贯型,后输入的因素根据之前输入的因素做调整,与输入顺序有关(A不做调整,B根据A做调整,A:B根据A和B做调整,因此使用Type1要注意模型中各因素的输入顺序)。

Type Ⅱ Sums of Squares(Type2, hierarchical)

分层型,根据同阶水平和低阶水平的因素做调整,与输入顺序无关(A和B同是一阶的,A根据B做调整,B根据A做调整;A:B是二阶的,因而A:B根据A和B做调整)。

Type Ⅲ Sums of Squares(Type3, marginal)

边界型,根据其他所有因素做调整,与输入顺序无关(A根据B和A:B做调整,B根据A和A:B做调整,A:B根据A和B做调整)。

这些分类在参考文献中有详细的介绍。当数据均衡(data is balanced,即各水平的样本量相等),且因素是正交的(factories are orthogonal,即各因素独立,讨论见:R gives Type I, Python gives Type II, SAS gives Type III.[1]Default Types of Sums of Squares for different programming languages[1]Decision Tree for Different Types of Sums of Squares in ANOVA[1]

SAS

这些分类似乎最初是在SAS中就有的,随后被广泛引入统计领域。不过SAS帮助文档[2]中多了一个Type Ⅳ。SAS使用PROC GLM过程步,改变CLASS和MODEL的取值来选择使用哪种方法。默认为Type3.

R

R中的aov()和anova()使用Type1,car包的Anova()可以指定参数type为2或3来选择Type2或Type3。

三种方法的原理及R语言实现:

[3] 给出了三种方法的原假设的公式表达

[4] 通俗的平方和分解的公式语言

R语言实现:

[5], [6]

Python

Python默认是Type2.

[7] 举例讲解了TypeⅠ和TypeⅢ,并用python实现

参考文献

[8]Robert I. Kabacoff.R In Action[M].Manning:New York,2015:212-218.

python 多因素方差分析_多因素方差分析估计平方和的三种方法相关推荐

  1. python numpy array转置_详解Numpy数组转置的三种方法T、transpose、swapaxes

    Numpy是高性能科学计算和数据分析的基础包,里面包含了许多对数组进行快速运算的标准数学函数,掌握这些方法,能摆脱数据处理时的循环. 1.首先数组转置(T) 创建二维数组data如下: 进行矩阵运算时 ...

  2. python 分类变量编码_深度学习编码分类变量的3种方法——AIU人工智能学院

    :数据科学.人工智能从业者的在线大学. 数据科学(Python/R/Julia) 作者 | CDA数据分析师 像Keras中的机器学习和深度学习模型一样,要求所有输入和输出变量均为数字. 这意味着,如 ...

  3. python recv_python网络编程调用recv函数完整接收数据的三种方法

    最近在使用python进行网络编程开发一个通用的tcpclient测试小工具.在使用socket进行网络编程中,如何判定对端发送一条报文是否接收完成,是进行socket网络开发必须要考虑的一个问题.这 ...

  4. python开发直播网站_开发直播网站源码的三种计算机语言

    直播网站源码开发所用的语言,根据未来运营平台不同,其选择也不同.一般来说,如果是PC后台,那么会采用PHP语言编写,如果是在安卓上开发,则选择Java语言,如果是在iOS上开发,则采用object-c ...

  5. python的try和except_Python用try except处理程序异常的三种方法总结

    Python用try except处理程序异常方法分析 本文实例讲述了Python使用try except处理程序异常的三种常用方法.分享给大家供大家参考,具体如下: 如果你在写python程序时遇到 ...

  6. python socket接收图像 数据_python中socket接受数据的三种方法 | 学步园

    原位置:http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/408859 Description: An issue with socket ...

  7. mysql如何防止插入重复数据_防止MySQL重复插入数据的三种方法

    新建表格 CREATE TABLE `person` ( `id` int NOT NULL COMMENT '主键', `name` varchar(64) CHARACTER SET utf8 C ...

  8. removelogo使用方法_怎么给视频去水印?这三种方法简单又高效

    不管是做新媒体工作,还是从事视频剪辑,都会跟视频打交道,需要下载和用到一些视频,很多时候也会遇到视频上有水印的情况,需要去除水印才能使用,下面就给大家带来三种去除视频水印的方法,下面一起来看吧. 1. ...

  9. Python进阶-----property用法(实现了get,set,delete三种方法)

    一.可以利用property对静态属性的进行修改操作,包括设置和删除属性 1.调用静态属性===>在静态属性函数前先用@property: 2.设置静态属性===>在静态属性函数前加上@静 ...

最新文章

  1. mgr未同步 mysql_MySQL Group Replication(多主同步复制MGR)
  2. linux 内核空间与用户空间 简介
  3. lscpu命令查看CPU统计信息
  4. Python_基础_6
  5. 如何使用Axure高效完成高保真原型
  6. 阿里P8架构师谈:阿里双11秒杀系统如何设计?
  7. ElasticSearch(一)基础知识
  8. 7.4.7 2DPCA
  9. java考试安徽工业大学_2011~2012《Java语言程序设计》试卷A及答案(安徽工业大学)...
  10. mybatis学习(39):动态sql片段
  11. redis循环键_Redis 性能优化的 13 条军规!史上最全
  12. linux正则表达式脚本实例,Shell下的正则表达式及实例
  13. SQL Server 更新数据表记录
  14. [No0000151]菜鸟理解.NET Framework中的CLI,CLS,CTS,CLR,FCL,BCL
  15. Error: spawn xxxx ENOENT原因与解决
  16. RMXP脚本解析(四):Window_Base
  17. 安卓电子书格式_kindle如何导入电子书
  18. 一款多核架构GPU IP有多达33种配置!Imagination要守住移动市场攻向云端
  19. 使用Python将MNIST数据集手写数字转化为图片
  20. FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM

热门文章

  1. Docker下centos7镜像安装中文支持
  2. Ubuntu锐捷认证方法(vmware)
  3. php如何把文字加粗,HTML中如何将字体加粗
  4. 这篇文章终于把中美德三国的工业互联网讲清楚了
  5. 单片机产生可调方波(c语言),为什么我用单片机做的频率可调的方波输出会有尖刺,而且会断...
  6. 零起步的Hadoop实践日记(搭建hadoop和hive)
  7. 粒子滤波跟踪算法及实现
  8. 互联网二次造富:从技术公司到运营平台的蜕变
  9. 英语基础知识:非谓语使用规则上篇
  10. MySQL中函数field()的用法