python统计分析——单因素方差分析

news2024/10/6 12:34:47

参考资料:用python动手学统计学

方差分析:analysis of variance,缩写为ANOVA

1、背景知识

1.1 要使用方差分析,数据的总体必须服从正态分布,而且各个水平内部的方差必须相等。

1.2 反复检验导致显著性结果更易出现的问题叫作多重假设检验问题:设显著性水平为0.05,则出现第一类错误的概率为5%。如果连续进行2次检验,则每次检验的显著性水平都为0.05,在这种情况下,出现第一类错误的概率就是1-0.95*0.95=0.0975,约为10%,超过了5%。检验次数越多,越容易拒绝零假设,也就越容易出现第一类错误。而方差分析可以有效的解决这一问题,通过一次检验完成显著性判断。

1.3 方差分析的F值=效应的方差/误差的方差。如果F值大,就认为效应比误差的影响大。当总体服从同方差正态分布,F值的样本分布就叫作F分布。通过F分布的累计分布函数计算p值,当p值小于0.05时,就拒绝零假设。

1.4 如下面的小提琴图所示:小提琴之间的高度差,即效应的大小,叫作组间差异。各个小提琴间的高度,即误差的大小,叫作组内差异。

2、导入库

# 导入库
# 用于数据计算的库
import numpy as np
import pandas as pd
import scipy as sp
from scipy import stats
# 用于绘图的库
from matplotlib import pyplot as plt
import seaborn as sns
sns.set
# 用于估计统计模型的库
import statsmodels.formula.api as smf
import statsmodels.api as sm

3、数据准备

# 数据准备
weather=['cloudy','cloudy','rainy','rainy','sunny','sunny']
beer=[6,8,2,4,10,12]
data=pd.DataFrame({'beer':beer,
                  'weather':weather})
print(data)

4、数据展示

由于样本量很小,所以我们绘制箱线图,而非小提琴图。

箱线图和小提琴图的绘制的参数设置参考:

 python统计分析——箱线图(sns.boxplot)_python sns.boxplot-CSDN博客

python统计分析——箱线图(plt.boxplot)_python boxplot-CSDN博客

python统计分析——箱线图(df.boxplot)_df.boxplot()-CSDN博客

python统计分析——小提琴图(sns.violinplot)-CSDN博客

python统计分析——小提琴图(plt.violinplot)_plt violin-CSDN博客

sns.boxplot(x='weather',y='beer',data=data)

5、查看均值

print(data.groupby('weather').mean())

6、常规步骤进行方差分析

excel操作步骤可参考:excel统计分析——单因素方差分析_处理间平方和简化公式-CSDN博客

6.1 计算组间平方和和组内平方和

# 天气的影响
effect=[7,7,3,3,11,11]
# 组间平方和
mu_effect=np.mean(effect)
squares_model=np.sum((effect-mu_effect)**2)
print(squares_model)

# 从原始数据中减掉效应就是误差
resid=data.beer-effect
# 组内平方和
squares_resid=np.sum(resid**2)
print(squares_resid)

6.2 计算组间方差和组内方差

# 组间差异的自由度
df_model=2
# 组内差异的自由度
df_resid=6-1-2
# 组间方差
variance_model=squares_model/df_model
# 组内方差
variance_resid=squares_resid/df_resid
print('组间方差:',variance_model)
print('组内方差:',variance_resid)

6.3 计算F值和p值

f_ratio=variance_model/variance_resid
print('F值:',f_ratio)
# 用F分布的累计分布函数计算p值
p_value=1-stats.f.cdf(x=f_ratio,dfn=df_model,dfd=df_resid)
print('p值:',p_value)

p值小于0.05,认为weather对beer的影响显著。注:原则上我们应该使用容量更大的样本。

7、解释变量为分类变量的正态线性模型

本例的线性模型如下:

beer\sim N(\beta_0+\beta_1\times rainy+\beta_2\times sunny, \sigma^2)

        变量“rainy”在天气为rainy时为1,在其余天气时为0;变量sunny同理。参数β1代表rainy的影响程度,参数β2代表sunny的影响程度。当然还有cloudy天气,当rainy和sunny均为0时,只剩下β0,它代表cloudy的影响程度。

8、使用statsmodels进行方差分析

8.1 方差分析表

# 无论解释变量是连续变量还是分类变量,都要使用smf.ols定义
anova_model=smf.ols('beer~weather',data=data).fit()
# 模型拟合完成后,就可以通过sm.stats.anova_lm函数进行方差分析
print(sm.stats.anova_lm(anova_model,typ=2))

8.2 模型系数

# 输出模型的系数
anova_model.params

beer=7.0-4.0*rainy+4.0*sunny,解释为:当weather为cloudy时,beer=7.0-4.0*0+4.0*0=7.0;当weather为rainy时,beer=7.0-4.0*1+4.0*0=3.0;当weather为sunny时,beer=7.0-4*0+4*1=11。

# 输出拟合值
print('拟合值:')
print(anova_model.fittedvalues)
# 输出残差
print("残差:")
print(anova_model.resid)

8.3 回归模型的方差分析

        正态线性模型中广泛应用了方差分析。当解释变量为连续变量时,方差分析依然有效。此时组间称为回归,组内称为残差。

# 准备连续型解释变量
data=pd.DataFrame({
    'beer':np.array([45.3, 59.3, 40.4, 38. , 37. , 40.9, 60.2, 63.3, 51.1, 44.9, 47. ,
                     53.2, 43.5, 53.2, 37.4, 59.9, 41.5, 75.1, 55.6, 57.2, 46.5, 35.8,
                     51.9, 38.2, 66. , 55.3, 55.3, 43.3, 70.5, 38.8]),
    'temp':np.array([20.5, 25. , 10. , 26.9, 15.8,  4.2, 13.5, 26. , 23.3,  8.5, 26.2,
                     19.1, 24.3, 23.3,  8.4, 23.5, 13.9, 35.5, 27.2, 20.5, 10.2, 20.5,
                     21.6,  7.9, 42.2, 23.9, 36.9,  8.9, 36.4,  6.4])
})
# 估计模型
lm_model=smf.ols('beer~temp',data=data).fit()
# 打印方差分析表
print(sm.stats.anova_lm(lm_model,typ=2))

temp的归回效应显著大于残差效应,即存在线性回归关系。利用summary函数可以得到相关统计量的结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1469366.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

专业130+总分410+上海交通大学819信号系统与信号处理考研上交电子信息通信生医电科,真题,大纲,参考书。

今年考研顺利结束,我也完成了目前人生最大的逆袭,跨了两个层级跨入c9,专业课819信号系统与信息处理135,数一130总分410,考上上海交大,回想这一年经历了很多,也成长了很多。从周围朋友&#xff0…

Mysql数据库学习之范式

范式 范式简介 在关系型数据库中,关于数据表设计的基本原则、规则称为范式。可以理解为,一张数据表的设计结构需要满足的某种设计标准的级别,要想设计一个结构合理的关系型数据库,必须满足一定的范式。 范式都包含哪些 6种范式…

在当前源文件的目录或生成系统路径中未找到文件

vsqt中增加,减少文件,都必须要动一下cmakelist.txt,点一下换行或者保存 因为vsqt反应不过来 1。都必须要动一下cmakelist.txt,点一下换行或者保存 2.然后全部重新生成,或者重新扫描解决方案(多扫几次)

SSM项目集成Spring Security 4.X版本 之 加入DWZ,J-UI框架实现登录和主页菜单显示

目录 前言 一、加入DWZ J-UI框架 二、实现登录页面 三、实现主页面菜单显示 前言 大家好!写文章之前先列出几篇相关文章。本文内容也在其项目中接续实现。 一. SSM项目集成Spring Security 4.X版本(使用spring-security.xml 配置文件方式&#xff…

IDEA中Vue的安装和使用【window10】

一.准备工作 Vue是前端开发框架。搭建框架,首先要搭建环境。搭建Vue的环境工具:node.js(JavaScript的运行环境),然后再用nodejs里面的npm(包管理和分发工具)来安装依赖包。二.安装node.js 下载…

【办公类-22-07】周计划系列(2)“主题知识” (2024年调整版本)

作品展示 调用原来的主题知识素材,制作下学期的19周的主题知识word 背景需求: 开学了,继续做周计划系列,在原有基础上,进行进一步代码优化 【办公类-22-02】周计划系列(2)-生成“主题知识”&…

【Android】View 与 ViewGroup

View 是 Android 所有控件的基类,我们平常所用的 TextView 和 ImageView 都是继承自 View 的,源码如下: public class TextView extends View implements ViewTreeObserver.OnPreDrawListener {... }public class ImageView extends View {.…

升级加薪聊绩效过程中,如果我觉得自己受到了老板“不公正”的对待,该如何“怼”回去?...

老板与员工谈绩效 今天分享的主题是「职场的向上管理」 什么是向上管理? 向上管理是一种有自主意识的方法 通过与你的老板在目标上达成共识,并最终用这个目标满足你、你的老板、你的组织的最大利益 向上管理与你的老板无关,老板都没得选的&am…

Java JDK 下载和配置

Java JDK 下载 下载网址:https://www.oracle.com/java/technologies/javase/jdk21-archive-downloads.html jdk文件夹的目录介绍 bin: 主要存放的是Java的编译器、解析器等工具。 jre:Java runtime environment, Java 运行时环境。 jre/bin:Java平台…

RuntimeError: CUDNN_STATUS_EXECUTION_FAILED

问题描述: 运行代码时候报错: 原因:pytorch与cuda版本不对,需要重新安装。不过我在复现代码的时候一般是要求特定的环境,不然会有其他错误,所以选择其他解决办法。 解决方案: 在train.py开头…

【图论】【堆优化的单源路径】LCP 20. 快速公交

作者推荐 【广度优先搜索】【网格】【割点】【 推荐】1263. 推箱子 LCP 20. 快速公交 小扣打算去秋日市集,由于游客较多,小扣的移动速度受到了人流影响: 小扣从 x 号站点移动至 x 1 号站点需要花费的时间为 inc; 小扣从 x 号站…

MySQL--索引结构

索引-索引结构 1. 概述2. 二叉树3. B-Tree4. BTree5. Hash 1. 概述 MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的索引结构,主要包含以下几种: 上述是MySQL中所支持的所有的索引结构,下面展示不同的存储引擎对于索引…

如何连接ACL认证的Redis

点击上方蓝字关注我 应用程序连接开启了ACL认证的Redis时与原先的方式有差别,本文介绍几种连接开启ACL认证的Redis的Redis的方法。 对于RedisACL认证相关内容,可以参考历史文章: Redis权限管理体系(一):客户端名及用户…

计算机网络-网络互联

文章目录 网络互联网络互联方法LAN-LAN:网桥及其互连原理使用网桥实现LAN-LAN使用交换机扩展局域网使用路由器连接局域网 LAN-WANWAN-WAN路由选择算法非自适应路由选择算法自适应路由选择算法广播路由选择算法:分层路由选择算法 网络互联 网络互联是指利…

设备树详解

设备树(Device Tree)基本概念及作用 设备树(Device Tree)基本概念 在内核源码中,存在大量对板级细节信息描述的代码。这些代码充斥在/arch/arm/plat-xxx和/arch/arm/mach-xxx目录,对内核而言这些platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的…

神经网络系列---分类度量

文章目录 分类度量混淆矩阵(Confusion Matrix):二分类问题二分类代码多分类问题多分类宏平均法:多分类代码多分类微平均法: 准确率(Accuracy):精确率(Precision)&#xf…

EasyRecovery2024免费不要钱的电脑数据恢复软件下载

EasyRecovery 2024易恢复软件在数据恢复方面的表现评价,EasyRecovery 2024易恢复软件在数据恢复领域享有良好的声誉,它提供了全面的功能,易于使用的界面以及可靠的数据恢复效果。以下是对该软件在数据恢复方面的详细评价: EasyRec…

03|JOIN关联查询优化

1. mysql关联算法 1.1 嵌套循环连接 Nested-Loop Join(NLJ) 算法 先去t2表(驱动表)拿一行数据,然后去t1表(被驱动表)做关联, 关联之后把结果集存下来最后返回. 1.2 基于块的嵌套循环连接 Block Nested-Loop Join(BNL)算法 1.把 t…

森歌深化体育营销战略,揭晓2024奥运新代言人,携手共创影响力奇迹

2024年,奥运龙年的春节将将过去,各大高端品牌便纷纷开始激烈博弈。森歌有备而来!布局早,积累深,以其深入骨髓的体育情怀和独具匠心的品牌策略,成为厨电行业的佼佼者。2月27日-2月28日,森歌将在杭…

电子器件系列64:稳压二极管ZM4728A

C143062_稳压二极管_ZM4728A-GS08_规格书_WJ481159 稳压管可以用于信号线路的旁路,用于过滤高频信号? 这种电路叫做限幅电路 从集成电路Al的①脚输出信号通过Rl加到集成电路A2的①脚。当集成电路Al的①脚输出信号幅度没有超过VD1稳压值时,这…