scipy实现单因素方差分析
经典例题
某校高二年级共有四个班,采用四种不同的教学方法进行数学教学,为了比较这四种教学法的效果是否存在明显的差异,期末统考后,从这四个班中各抽取 5 名考生的成绩,如下所示。
| 班级 | 一班 | 二班 | 三班 | 四班 | |
| 1 | 75 | 93 | 65 | 72 | |
| 2 | 77 | 80 | 67 | 70 | |
| 3 | 70 | 85 | 77 | 71 | |
| 4 | 88 | 90 | 68 | 65 | |
| 5 | 72 | 84 | 65 | 81 | |
| 6 | 80 | 86 | 64 | 72 | |
| 7 | 79 | 85 | 62 | 68 | |
| 8 | 81 | 81 | 68 | 74 |
问这四种教学法的效果是否存在显著性差异(α =0.05)?
1.计算F值
import numpy as np
from scipy.stats import f_oneway# Data for the four classes
class1 = [75, 77, 70, 88, 72, 80, 79, 81]
class2 = [93, 80, 85, 90, 84, 86, 85, 81]
class3 = [65, 67, 77, 68, 65, 64, 62, 68]
class4 = [72, 70, 71, 65, 81, 72, 68, 74]# Perform one-way ANOVA
f_statistic, p_value = f_oneway(class1, class2, class3, class4)# Output the results
print("F-statistic:", f_statistic)
print("P-value:", p_value)# Interpret the results
alpha = 0.05
if p_value < alpha:print("There is a significant difference in the effectiveness of the teaching methods.")
else:print("There is no significant difference in the effectiveness of the teaching methods.")
F-statistic: 22.045992451864645
P-value: 1.5622062333927252e-07
There is a significant difference in the effectiveness of the teaching methods.
2.计算SS、df和F值
import numpy as np
import pandas as pd
from scipy.stats import f_oneway, f# Data for the four classes
class1 = [75, 77, 70, 88, 72, 80, 79, 81]
class2 = [93, 80, 85, 90, 84, 86, 85, 81]
class3 = [65, 67, 77, 68, 65, 64, 62, 68]
class4 = [72, 70, 71, 65, 81, 72, 68, 74]# Perform one-way ANOVA
f_statistic, p_value = f_oneway(class1, class2, class3, class4)# Degrees of freedom
num_groups = 4
num_samples = len(class1) + len(class2) + len(class3) + len(class4)
df_between = num_groups - 1
df_within = num_samples - num_groups# Calculate sum of squares (SS)
mean_total = np.mean([np.mean(class1), np.mean(class2), np.mean(class3), np.mean(class4)])
ss_total = np.sum((np.concatenate([class1, class2, class3, class4]) - mean_total) ** 2)
ss_between = np.sum([len(class1) * (np.mean(class1) - mean_total) ** 2,len(class2) * (np.mean(class2) - mean_total) ** 2,len(class3) * (np.mean(class3) - mean_total) ** 2,len(class4) * (np.mean(class4) - mean_total) ** 2])
ss_within = np.sum((class1 - np.mean(class1)) ** 2) + \np.sum((class2 - np.mean(class2)) ** 2) + \np.sum((class3 - np.mean(class3)) ** 2) + \np.sum((class4 - np.mean(class4)) ** 2)# Calculate mean squares (MS)
ms_between = ss_between / df_between
ms_within = ss_within / df_within# Calculate F-statistic
f_statistic_manual = ms_between / ms_within# Critical F-value
alpha = 0.05
f_crit = f.ppf(1 - alpha, df_between, df_within)# Create a DataFrame for better tabular representation
data = {'Class 1': class1,'Class 2': class2,'Class 3': class3,'Class 4': class4,
}df = pd.DataFrame(data)# Output the ANOVA results
print("Analysis of Variance (ANOVA):")
print("F-statistic (from scipy.stats):", f_statistic)
print("P-value (from scipy.stats):", p_value)
print("\nManual Calculation:")
print("SS Between:", ss_between)
print("SS Within:", ss_within)
print("DF Between:", df_between)
print("DF Within:", df_within)
print("MS Between:", ms_between)
print("MS Within:", ms_within)
print("F-statistic (manual calculation):", f_statistic_manual)
print("Critical F-value:", f_crit)# Interpret the results
if p_value < alpha:print("\nThere is a significant difference in the effectiveness of the teaching methods.")
else:print("\nThere is no significant difference in the effectiveness of the teaching methods.")
Manual Calculation:
SS Between: 1538.59375
SS Within: 651.375
DF Between: 3
DF Within: 28
MS Between: 512.8645833333334
MS Within: 23.263392857142858
F-statistic (manual calculation): 22.045992451864645
Critical F-value: 2.9466852660172655
相关文章:
scipy实现单因素方差分析
经典例题 某校高二年级共有四个班,采用四种不同的教学方法进行数学教学,为了比较这四种教学法的效果是否存在明显的差异,期末统考后,从这四个班中各抽取 5 名考生的成绩,如下所示。 班级 一班 二班 三班 四班 …...
深度学习实战59-NLP最核心的模型:transformer的搭建与训练过程详解,手把手搭建与跑通
大家好,我是微学AI,今天给大家介绍一下深度学习实战59-NLP最核心的模型:transformer的搭建与训练过程详解,手把手搭建与跑通。transformer是一种基于自注意力机制的深度学习模型,由Vaswani等人在2017年的论文《Attention is All You Need》中提出。它最初被设计用来处理序…...
一阶滤波器(一阶巴特沃斯滤波器)
连续传递函数G(s) 离散传递函数G(z) 转换为差分方程形式 一阶巴特沃斯滤波器Filter Designer参数设计:参考之前的博客Matlab的Filter Designer工具设计二阶低通滤波器 设计采样频率100Hz,截止频率20Hz。 注意:设计参数使用在离散系统中&…...
.net core中前端vue HTML5 History 刷新页面404问题
放到启动的应用程序的最后面 app.Run(async (context) > {context.Response.ContentType "text/html";await context.Response.SendFileAsync(Path.Combine(env.WebRootPath, "index.html")); });https://blog.csdn.net/lee576/article/details/88355…...
【152.乘积最大子数组】
目录 一、题目描述二、算法原理三、代码实现 一、题目描述 二、算法原理 三、代码实现 class Solution { public:int maxProduct(vector<int>& nums) {int nnums.size();vector<int> f(n);vector<int> g(n);f[0]g[0]nums[0];int retnums[0];for(int i1;…...
如何开发OA系统场景的系统架构
1.开发OA系统场景的系统架构 针对开发OA系统的场景,以下是一个简单的系统架构示例,包括前端、后端和数据库三个基本部分: 前端: 使用React框架进行前端开发,构建用户界面和交互逻辑。前端模块包括日程管理模块、文档管…...
spring boot 集成 RedisSearch 和 RedisJSON
1. 准备工作 环境说明 java 8;redis7.2.2,redis集成RedisSearch、redisJson 模块;spring boot 2.5在执行 redis 命令, 或者监控 程序执行的redis 指令时,可以采用 redisinsight查看,下载地址。 背景说明 需…...
【Kotlin精简】第8章 协程
1 简介 Kotlin 中的协程提供了一种全新处理并发的方式,您可以在 Android 平台上使用它来简化异步执行的代码。协程是从 Kotlin 1.3 版本开始引入,但这一概念在编程世界诞生的黎明之际就有了,最早使用协程的编程语言可以追溯到 1967 年的 Sim…...
【MATLAB源码-第79期】基于蚯蚓优化算法(EOA)的栅格路径规划,输出做短路径图和适应度曲线。
操作环境: MATLAB 2022a 1、算法描述 蚯蚓优化算法(Earthworm Optimisation Algorithm, EOA)是一种启发式算法,灵感来源于蚯蚓在自然界中的行为模式。蚯蚓优化算法主要模仿了蚯蚓在寻找食物和逃避天敌时的行为策略。以下是蚯蚓…...
RPC实现简单解析
RPC是什么,先摘取一段解释: RPC全称为远程过程调用(Remote Procedure Call),它是一种计算机通信协议,允许一个计算机程序调用另一个计算机上的子程序,而无需了解底层网络细节。通过RPCÿ…...
【Ubuntu】Ubuntu20.04下安装视频播放器vlc和录屏软件ssr
【Ubuntu】Ubuntu20.04下安装视频播放器vlc和录屏软件ssr 文章目录 【Ubuntu】Ubuntu20.04下安装视频播放器vlc和录屏软件ssr1. 安装视频播放器vlc2. 安装录屏软件ssr 1. 安装视频播放器vlc sudo apt-get install vlcvlc是一款比较简洁的视频播放器,如下所示 2. 安…...
WMS仓储管理系统与TMS系统整合后的优势
随着全球化的加速和供应链网络的日益复杂,仓库和运输成为企业运营中的两个关键环节。为了更高效地管理这两个环节,许多企业开始探索将WMS仓储管理系统和TMS运输管理系统整合的可能性。这种整合不仅可以提升仓库流程的可见性,还有助于改善调度…...
测试的专用
测试...
sqli-labs(Less-4) extractvalue闯关
extractvalue() - Xpath类型函数 1. 确认注入点如何闭合的方式 2. 爆出当前数据库的库名 http://127.0.0.1/sqlilabs/Less-4/?id1") and extractvalue(1,concat(~,(select database()))) --3. 爆出当前数据库的表名 http://127.0.0.1/sqlilabs/Less-4/?id1") …...
Kafka简单汇总
Kafka的结构图 多个Parttion共同组成这个topic的所有消息。每个consumer都属于一个consumer group,每条消息只能被consumer group中的一个Consumer消费, 但可以被多个consumer group消费。即组间数据是共享的,组内数据是竞争的。二、消费模型…...
任务交给谁?委派模式告诉你最佳选择!
文章目录 一、概念二、角色三、代码实现四、委派模式在源码中的体现五、委派模式的优缺点优点缺点 一、概念 委派模式(Delegate Pattern)又叫委托模式,是一种面向对象的设计模式。委派模式是一种行为模式,不属于GOF23种设计模式之中基本作用…...
【JavaEE】Servlet(创建Maven、引入依赖、创建目录、编写及打包、部署和验证、smart Tomcat)
一、什么是Servlet? Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app 1.1 Servlet能干什么? 🚕允许程序猿注册一个类, 在 Tomcat 收到某个特定的 HTTP 请求的时候, 执行这个类…...
降低城市内涝风险,万宾科技内涝积水监测仪的作用
频繁的内涝会削弱和损坏城市的关键基础设施,包括道路、桥梁和公用设施。城市内涝风险降低可以减少交通中断事件,也可以保护居民安全并降低路面维修等成本,进一步确保城市基本服务继续发挥作用。对城市可持续发展来讲有效减少内涝的风险是重要…...
水库大坝安全监测预警系统的重要作用
水库大坝建造在地质构造复杂、岩土特性不均匀的地基上,在各种荷载的作用和自然因素的影响下,其工作性态和安全状况随时都在变化。如果出现异常,又不被及时发现,其后果不堪设想。全天候实时监测,实时掌握水库水位、雨情…...
【AI视野·今日NLP 自然语言处理论文速览 第六十五期】Mon, 30 Oct 2023
AI视野今日CS.NLP 自然语言处理论文速览 Mon, 30 Oct 2023 Totally 67 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers An Approach to Automatically generating Riddles aiding Concept Attainment Authors Niharika Sri Parasa,…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
