Python 统计分析–单因素方差分析

方差分析的主要工作就是将观测数据的总变异(波动)按照变异的原因的不同分解为因子效应与试验误差,并对其作出数量分析,比较各种原因在总变异中所占的重要程度,以此作为进一步统计推断的依据。

1.基本假设

(1).正态假设。对于因素的每个水平,其观测值都是来自正态总体的随机样本;

(2).方差齐性假设。各个总体的方差相同;

(3).独立假设。观测值之间都是独立的。

2.单因素方差分析

设试验只有一个因子(又称为因素)A有r个水平A1A1A_{1}, A2A2A_{2},A3A3A_{3},…,ArArA_{r}。现在水平Ai下进行ni次独立试验,得到的观测数据为XijXijX_{ij}
则单因素方差模型可表示为:

(1).XijXijX_{ij}=μ+ai+εijμ+ai+εij\mu+a_{i}+\varepsilon_{ij}, i=1,2,…,r,j=1,2,…,ninin_{i}

(2).εijεij\varepsilon_{ij} ~ N(0,σ2σ2\sigma^{2}),且εijεij\varepsilon_{ij}相互独立

(3).∑ri=1niαi∑i=1rniαi\sum_{i=1}^{r}n_{i}\alpha_{i} = 0

其中μμ\mu为总平均,αiαi\alpha_{i}是第i个水平的效应,εijεij\varepsilon_{ij}是随机误差。

我们的目的是要比较因素A的r个水平的效应是否有显著差异,这可归结为检验假设:

H0:α1=α2=...=αrH0:α1=α2=...=αrH_{0}:\alpha_{1}=\alpha_{2}=...=\alpha_{r}

如果H0H0H_{0}被拒绝,则说明因素A的各个水平的效应之间有显著差异。

按照方差分析的思想,将总离差平方和分解为两部分,即:

SST=SSE+SSASST=SSE+SSA

SS_{T}=SS_{E}+SS_{A}
其中

SST=∑ri=1∑nij=1(Xij−X¯)2SST=∑i=1r∑j=1ni(Xij−X¯)2SS_{T}=\sum^{r}_{i=1}\sum^{n_{i}}_{j=1}(X_{ij}-\bar{X})^{2}, X¯=1n∑ri=1∑nij=1XijX¯=1n∑i=1r∑j=1niXij\bar{X}=\frac{1}{n}\sum^{r}_{i=1}\sum^{n_{i}}_{j=1}X_{ij}

SSE=∑ri=1∑nij=1(Xij−Xi.¯)2SSE=∑i=1r∑j=1ni(Xij−Xi.¯)2SS_{E}=\sum^{r}_{i=1}\sum^{n_{i}}_{j=1}(X_{ij}-\bar{X_{i.}})^{2}, Xi.¯=1n∑nij=1XijXi.¯=1n∑j=1niXij\bar{X_{i.}}=\frac{1}{n}\sum^{n_{i}}_{j=1}X_{ij}

SSA=∑ri=1∑nij=1(Xi.¯−X¯)2SSA=∑i=1r∑j=1ni(Xi.¯−X¯)2SS_{A}=\sum^{r}_{i=1}\sum^{n_{i}}_{j=1}(\bar{X_{i.}}-\bar{X_{}})^{2}

这里称SSTSSTSS_{T}为总离差平方和(总变差),它是所有数据XijXijX_{ij}与总平均值X¯X¯\bar{X}之差的平方和,描绘所有观测数据的离散程度;SSESSESS_{E}为误差平方和(组内平方和),是对固定的i,观测值Xi1Xi1X_{i1},Xi2Xi2X_{i2},…,XiniXiniX_{in_{i}}之间的差异大小的度量。SSASSASS_A为因素A的效应平方和(组间平方和),表示因子A各水平下的样本均值和总平均值之差的平方和。

可以证明,当H0H0H_{0}成立时

SSEσ2SSEσ2\frac{SS_{E}}{\sigma^{2}} ~ χ2(n−r)χ2(n−r)\chi^{2}(n-r),

SSAσ2SSAσ2\frac{SS_{A}}{\sigma^{2}} ~ χ2(r−1)χ2(r−1)\chi^{2}(r-1)

且SSASSASS_{A}与SSESSESS_{E}独立,于是:
F=SSA/(r−1)SSE/(n−r)F=SSA/(r−1)SSE/(n−r)F =\frac{SS_{A}/(r-1)}{SS_{E}/(n-r)} ~ F(r−1,n−r)F(r−1,n−r)F(r-1,n-r)

若F>Fα(r−1,n−r)F>Fα(r−1,n−r)F > F_{\alpha}(r-1,n-r),则拒绝原假设,认为因素A的r个水平有显著差异。

3.案例:

以淀粉为原料生产葡萄的过程中, 残留许多糖蜜, 可作为生产
酱色的原料. 在生产酱色的过程之前应尽可能彻彻底底除杂, 以保证酱色质量.
为此对除杂方法进行选择. 在实验中选用5种不同的除杂方法, 每种方法做4次
试验, 即重复4次

4.Python 代码


import pandas as pd
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lmdf = pd.read_csv("one-way.csv")df.head()A B
0 a1 25.6
1 a1 22.2
2 a1 28.0
3 a1 29.8
4 a2 24.4model = ols('B ~ A',df).fit()
anovat = anova_lm(model)
print(anovat)
df   sum_sq   mean_sq         F    PR(>F)A          4.0  131.957  32.98925  4.306128  0.016182Residual  15.0  114.915   7.66100    

说明: 上述结果中, df表示自由度; sum_sq表示平方和; mean_sq表示均方和;

F表示F检验统计量的值,; PR(>F)表示检验的p值; A就是因素A;Residuals为残差。

5.结果说明:

可以看出p=0.016182<0.05,
说明有理由拒绝原假设, 即认为五种除杂方法有显著差异。

Python 统计分析--单因素方差分析相关推荐

  1. python 实现单因素方差分析(1)

    案例: 分析行业对被投诉次数是否有显著影响() 提出假设: 由于变量行业有4个水平,分别是零售业.旅游业.航空公司和家电制造业,那么为了检验这4个水平(每个水平代表一个总体)的均值是否相等,需要提出如 ...

  2. 单因素方差分析(ANOVA)及其Python库

    文章目录 模型描述 利用`python`求解 单因素方差分析(one-way analysis of variance, ANOVA)用于确定3个及其以上的数据组之间的均值是否具有统计差异,此外,单因 ...

  3. 用Python学分析 - 单因素方差分析

    单因素方差分析(One-Way Analysis of Variance) 判断控制变量是否对观测变量产生了显著影响 分析步骤 建立检验假设 - H0:不同因子水平间的均值无差异 - H1:不同因子水 ...

  4. python基金预测分析_基金定投选星期几更划算?[python统计分析]

    基金定投常见的一种方式是定期定额投资,即每周或每月固定的时间段,向基金公司申购固定份额的基金.基金定投可以平均成本.分散风险,实现自动投资,所以基金定投又称为"懒人投资术".今天主 ...

  5. python 方差分析_用Python学分析 - 单因素方差分析

    单因素方差分析(one-way analysis of variance) 判断控制变量是否对观测变量产生了显著影响 分析步骤 1. 建立检验假设 - h0:不同因子水平间的均值无差异 - h1:不同 ...

  6. Python玩转数据分析——单因素方差分析

    概念 方差分析(Analysis of Variance,简称ANOVA),又称"变异数分析"或"F检验",用于两个及两个以上样本均数差别的显著性检验.单因素方 ...

  7. Python数据分析实战:降雨量统计分析报告分析

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于菜J学Python ,作者小小明 最近遇到一个有点烧脑的需求,其实也不算烧pytho ...

  8. python怎么做方差分析_Python进行单因素方差分析

    1.方差分析 方差分析就是通过检验各总体的均值是否相等来判断分类型自变量对数值型因变量是否有显著影响. 根据分类型自变量多少,分为: 单因素方差分析 双因素方差分析 多因素方差分析 名词解释: 因素: ...

  9. Excel单因素方差分析

    Excel单因素方差分析 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 2 单因素方差分析简介 针对多类数据(一个因子多个取值) ...

  10. python 获取当前是星期几_基金定投选星期几更划算?[python统计分析]

    基金定投常见的一种方式是定期定额投资,即每周或每月固定的时间段,向基金公司申购固定份额的基金.基金定投可以平均成本.分散风险,实现自动投资,所以基金定投又称为"懒人投资术".今天主 ...

最新文章

  1. Exchange-批量创建通讯组邮箱
  2. Android Studio通过JNI调用NDK程序
  3. 构建之法第四章--两人合作
  4. android新对象锁,Android的线程和对象锁定
  5. powerbi发布本地_PowerBI中本地数据的注意事项
  6. 如何用 Linux 技巧大大提高工作效率?
  7. presto、druid、sparkSQL、kylin的对比分析
  8. 190313每日一句
  9. 二进制与格雷码互相转换
  10. 详解数据治理体系(值得收藏)
  11. PHP168整站系统0DAY漏洞预警
  12. resin 系统日志_resin 日志
  13. 使用 Weaviate 矢量搜索为 60 多万篇学术论文构建可扩展的知识图谱搜索
  14. 性能之颠-应用程序性能技术
  15. 鸿蒙系统发布会门票,早鸟票最后一天!继鸿蒙系统发布后,华为又准备搞事情了!...
  16. ES6新增——反撇号(`)基础知识
  17. reference other engineer's code to explain wheather linux terminal can display matplotlib' figure
  18. ajax的同步与异步
  19. Python生成英文大小写和数字的随机数
  20. 【笨木头Lua专栏】基础补充07:协同程序初探

热门文章

  1. tc275怎么移植到ram中去,把函数
  2. 生成Bernese格式的地球自转参数文件-POLUPD
  3. 5ecsgo启动失败2错误代码2,5E打开csgo说csgo客户端需要更新 然后进不去游戏怎么回事?...
  4. 企业高薪招人,近5成岗位月薪过万
  5. 第一次马拉松(2013上海国际马拉松赛)
  6. 花瓣图形 -《跟小海龟学Python》案例代码
  7. MATLAB安装错误:Check your internet connection and proxy settings in MATLAB Web preferences
  8. gin 渲染不同目录下的模板(支持多层目录)
  9. FOI 2019 游记
  10. 一文带你了解隐私 Layer1