单因素方差分析

在此之间我们先导入数据,

案例:我们探究施肥与否是否对植物的生长有影响,试验为: - 对照组:清水 - 实验组: 某肥料四个浓度梯度,分别是A,B,C,D,施肥一段时间之后测量树高(要控制其他变量保持一致,比如施肥之前的树高要基本保持一致,生长势基本保持一致等等)

在方差分析满足,独立性,正态性,方差齐性,虽然没有满足方差齐性也可以进行非参数的检验,下面我们开始对数据进行处理

import numpy as np
import pandas as pd
import matplotlib.pyplot as pltdf  = {'baseline':list(np.random.normal(10, 5, 10)),'treat1':list(np.random.normal(15, 5, 10)),'treat2':list(np.random.normal(20, 5, 10)),'treat3':list(np.random.normal(30, 5, 10)),'treat4':list(np.random.normal(31, 5, 10))}data = pd.DataFrame(df)

我们看一下随机生成的数据长什么样

大概了解一下描述性统计数据

我们为了方便计算,将所有的数据合成一列,并画一下箱线图看一下

import seaborn as snsdata_melt = data.melt()
data_melt.columns = ['Treat', 'value']sns.boxplot(x = 'Treat', y = 'value', data = data_melt)


由于我们在生成随机数的时候为了让结果明显一点,所以从这个图我们也很容易看到差异性还是很明显的

方差分析

# 方差分析
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
from statsmodels.stats.multicomp import pairwise_tukeyhsdmodel = ols('value ~C(Treat)', data = data_melt).fit()
anova_table = anova_lm(model, type = 2)
pd.DataFrame(anova_table)# 进行事后比较分析
print(pairwise_tukeyhsd(data_melt['value'], data_melt['Treat']))

我们进行方差分析之后得到的结果如下:

我们可以看到因子(Treat)的不同水平,对于因变量的影响还是很显著的,p值显然小于0.05.

然后我们进一步进行多重比较,事后分析:

group1以及group2表示的是因子的不同水平,然后分析他们两个组是否有显著性差异,最后面的reject表示是否拒绝原假设,True表示的是拒绝原假设,说明两组均值有显著性差异

多因素方差分析

首先我们将数据导进来,看一下分布

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
from statsmodels.stats.multicomp import pairwise_tukeyhsddata = pd.read_csv('anovaa.csv')
data = pd.DataFrame(data)
data.head()


便于理解,我们可以将people因子认为是不同的操作员,group因子可以理解成使用不同的方法操作,因变量就是value结果怎么样

按照惯例,我们看一下数据的描述性统计数据

我们看一下箱线图情况

sns.boxplot(x = 'group', y = 'value', data = data)

sns.boxplot(x = 'people', y = 'value', data = data)

model = ols('value ~C(group) + C(people) + C(group):C(people)', data = data).fit()
anova_table = anova_lm(model, type = 2)
pd.DataFrame(anova_table)


这里得到每一个因子不同水平的均值差异与否的检验
还有就是两个因子的交互效应

结果得到:group组是小于0.05的,people和两者的交互效应是大于0.05的,所以这样就明白了他们的交互效应

接下来进行进一步多重检验

print(pairwise_tukeyhsd(data['value'], data['people']))
print(pairwise_tukeyhsd(data['value'], data['group']))

这是people因子不同水平的比较结果

这是group不同水平的比较结果

方差分析python实现相关推荐

  1. 多因素方差分析——python

    在一次实验中,实验的结果会同时受到多个因素的影响. 例如在一次实验中,实验的结果通过收到了物质的浓度和时间的影响,但是在方差分析中,若是把浓度看做是影响OD值的因素A,把时间看做是影响因素B.同时对因 ...

  2. 单因子方差分析Python实现(小鸡增肥)

    #anova_lm ##<概率论与数理统计>378页例8.1.2 from statsmodels.stats.anova import anova_lm from statsmodels ...

  3. 多因素方差分析_方差分析入门

    本文从方差分析的概念切入,简述了对方差分析的理解,随后提出方差分析的一般方法,之后用python实现了方差分析的一个简单应用.全文分成以下几个部分: 方差分析的概念 方差分析的理解和内容 方差分析的前 ...

  4. 【机器学习算法专题(蓄力计划)】八、机器学习中数据的方差分析

    文章目录 方差分析的概述 基本思想: 随机误差: 系统误差: 组内方差: 组间方差: 方差的比较: 方差分析计算方法 方差分析的前提: 单因素方差分析 检验的统计量 方差分析中的多重比较 两组比较 多 ...

  5. 方差分析介绍(结合COVID-19案例)

    作者|GUEST BLOG 编译|VK 来源|Analytics Vidhya 介绍 "事实是每个人都相信的简单陈述.也就是事实是没有错的,除非它被人发现了错误.假设有一个没人愿意相信的建议 ...

  6. 精选合辑 | 30个Python数据分析及实战项目(含源码)

    今天给大家推荐一个优质的Python公众号「法纳斯特」,作者:小F. 小F是211机械专业毕业的,上学的时候还造了两辆车(FSC.无碳小车),毕业以后又在车企搬了一年的砖,最终决定转行IT,从零开始学 ...

  7. aov()函数lm()函数区别,(I型、Ⅲ型平方和)

    R:aov和lm方差分析的区别 在R中经常会用aov()和lm()两个函数进行方差分析,aov 函数的内核使用了lm算法,但二者有一定的区别. aov() 默认(summary) 结果是基于Type ...

  8. python分析数据差异的方法_用Python的两种方法进行方差分析

    在进行数据分析时,我们往往会遇到要对某个变量的影响因素进行分析的情况,而影响一事物的因素往往是很多的.比如在化工生产中,有温度.压力.剂量.反应时间等因素.每一因素的改变都有可能影响产品的数量和质量. ...

  9. python单向认证_使用Python进行单向方差分析的四种方法

    python单向认证 The current post will focus on how to carry out between-subjects ANOVA using Python. As m ...

最新文章

  1. css实现左侧宽度自适应,右侧固定宽度
  2. [IE9] 如何让你的网站在IE9和Win7任务栏上更闪亮
  3. 第三方控件DevExpress的TreeList绑定XML文件
  4. mysql权重怎么配置_mysql如何按权重查询数据啊?
  5. @AspectJ中的切点表达式详解
  6. vue 打开html流_解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题...
  7. telnet远程登录协议
  8. android日历信息获取错误,android – 从日历中获取事件
  9. php 关闭 ob缓存,php ob缓存主要函数
  10. ubuntu 12.04 lts搭建android 编译环境
  11. centos 安装 LAMP
  12. linux shell crontab 定时操作(转)
  13. html 播放flv js代码,js实现的万能flv网页播放器代码
  14. 用C#对Illustrator矢量图形软件进行编程
  15. 不透明度对应的16进制转换
  16. PostgreSQL checksum与Data Corruption
  17. 实验二猜字迷游戏程序开发
  18. 如何使用Python 绘制惊艳众人的瀑布图
  19. [Linux]关于网卡配置文件
  20. pyqt tablewidget 设置一行的背景_PyQt+moviepy音视频剪辑实战2:一个剪裁视频文件精华内容留存工具的实现...

热门文章

  1. windows鼠标消息
  2. 【渝粤题库】广东开放大学Photoshop图像设计 形成性考核
  3. SVM 之 松弛变量
  4. Android蓝牙开发介绍
  5. 个人深度学习工作站配置指南
  6. 计算机毕业设计 移动设备的眼球追踪技术及其应用(源码+论文)
  7. 测试笔试题汇总(测试开发)
  8. 13个风格独特的关于(About)页面设计
  9. 安装ROS时遇到的一些坑,做个笔记方便自己查看
  10. 21条最佳实践,全面保障 GitHub 使用安全