数学建模Matlab之检验与相关性分析
只要做C题基本上都会用到相关性分析、一般性检验等!
回归模型性能检验
下面讲一下回归模型的性能评估指标,用来衡量模型预测的准确性。下面是每个指标的简单解释以及它们的应用情境:
1. MAPE (平均绝对百分比误差)
- 描述: 衡量模型预测的相对误差。
- 应用情境: 当你想知道模型预测误差相对于实际值的大小时。
2. RMSE (均方根误差)
- 描述: 衡量实际值和预测值之间的偏差。
- 应用情境: 关注所有类型的误差。
3. SSE (残差平方和)
- 描述: 衡量实际值和预测值之间差异的平方和。
4. MSE (均方误差)
- 描述: 衡量实际值和预测值之间差异的平均平方和。
- 应用情境: MSE对大误差更敏感,因为它计算的是误差的平方。如果你的模型有很大的误差,MSE会变得非常大。所以,如果你的任务不能容忍大的误差,使用MSE是有意义的。
5. MAE (平均绝对误差)
- 描述: 衡量实际值和预测值之间差异的平均绝对值。
- 应用情境: MAE对所有误差都是同等敏感的。它不会因为个别的大误差而受到过度影响,因为它不考虑误差的平方。如果你更关心所有类型的误差,而不仅仅是大误差,你可以使用MAE。
6. (决定系数)
- 描述: 衡量模型解释数据变异的程度。
- 应用情境: 当你想知道模型相对于基准模型(例如,仅使用均值进行预测)的性能时。
结合使用
-
同时使用多个指标:你可以同时使用多个指标来获取模型性能的全面视图。例如,使用可以了解模型解释了多少变异,而使用RMSE或MAE可以了解模型的平均误差大小。
-
与领域知识结合:根据问题的具体上下文和领域知识来选择最合适的指标。例如,在某些情况下,过度估计可能比低估更可取,或者大误差可能比小误差更不可接受。
-
考虑误差类型:不同的指标对不同类型的误差有不同的敏感度(例如,MSE对大误差更敏感,而MAE对所有误差都同等敏感)。
总之,选择哪个指标还取决于具体的应用和业务目标。在实践中,建议使用多个指标,并结合问题的具体背景进行解释和分析。甚至可以自定义损失函数。
%% 一般检验
% 各类检验,除决定系数是1最好,都是0最好
YReal = [1 2 3 4 5];
YPred = [1 2 3 4 5.1];
% 平均绝对百分比误差(MAPE)
mape = mean(abs((YReal - YPred)./YReal));
disp(['MAPE: ' num2str(mape)]);
% 均方根误差(RMSE)
rmse = sqrt(mean((YPred-YReal).^2));
disp(['RMSE: ' num2str(rmse)]);
% 残差平方和(SSE)
sse = sum((YReal - YPred).^2);
disp(['SSE: ' num2str(sse)]);
% 均方误差(MSE)
mse = mean((YReal - YPred).^2);
disp(['MSE: ' num2str(mse)]);
% 平均绝对误差(MAE)
mae = mean(abs(YReal - YPred));
disp(['MAE: ' num2str(mae)]);
% 决定系数(R2-R-Square)
r2 = 1 - (sum((YPred - YReal).^2) / sum((YReal - mean(YReal)).^2));
disp(['R2: ' num2str(r2)]);
相关性分析
相关性分析简介
相关性分析是统计学和数据分析中常用的一种技术,主要用于研究两个或多个变量之间是否存在某种关系(即它们是否相关)。这种关系可以是线性的,也可以是非线性的。通过相关性分析,我们可以量化两个变量之间的关系的强度和方向。
Pearson相关系数
-
使用条件:
- 连续变量: Pearson相关系数只适用于连续变量。
- 线性关系: 变量间的关系应该是线性的。判断变量间
- 正态分布: 数据应该近似或严格符合正态分布。所以需要进行正态性检验,在数据预处理篇作者讲过。
-
应用场景:
- 用于衡量两个连续变量之间的线性相关性。
- 在科学研究、金融分析和社会科学等领域中广泛应用。
Kendall相关系数
-
使用条件:
- 序列数据: 适用于测量序列数据之间的关系。
- 非线性关系: 可用于非线性关系。
-
应用场景:
- 用于衡量两个序列变量之间的相关性。
- 在社会科学、经济学和生物学等领域中应用。
Spearman相关系数
-
使用条件:
- 序列数据: 适用于测量序列数据之间的关系。
- 非线性关系: 可用于非线性关系。
- 不需正态分布: 不需要数据遵循正态分布。
-
应用场景:
- 用于衡量两个序列变量之间的相关性。
- 在许多不同领域中广泛应用,例如心理学和教育研究。
指标选择
再明确一下,相关性分析指标的选择不是随随便便的,一定要分析需要的是线性关系还是非线性关系!
如果你的数据是连续的,并且服从正态分布,那么Pearson相关系数是一个不错的选择。
如果你的数据是序列数据或不满足正态分布,那么Kendall或Spearman相关系数可能是更好的选择。
1. Pearson相关系数 (r)
- 相关性类型: 线性相关性
- 描述: Pearson相关系数主要用于测量两个连续变量之间的线性关系的强度和方向。如果两个变量之间的关系是非线性的,Pearson相关系数可能不会检测到这种关系。
2. Kendall相关系数 (τ)
- 相关性类型: 非线性相关性
- 描述: Kendall τ相关系数不仅可以检测线性关系,还可以检测更复杂的非线性关系。它主要用于测量两个序列变量之间的相关性。
3. Spearman相关系数 (ρ)
- 相关性类型: 非线性相关性
- 描述: Spearman ρ也是一种非参数相关系数,它可以测量两个变量之间的单调关系(不一定是线性关系)。
总结:
- 如果研究目的是了解两个变量之间的线性关系,通常使用Pearson相关系数。
- 如果数据是序列或等级数据,或者关系可能是非线性的,那么Spearman或Kendall相关系数可能更合适。
代码示例
%% 相关性分析
clc, clear, close all;% 列为指标,行为数据
data = rand(10);% Pearson相关系数
r1 = corr(data, 'type', 'Pearson');
disp(r1);
% Kendall相关系数
r2 = corr(data, 'type', 'Kendall');
disp(r2);
% Spearman相关系数
r3 = corr(data, 'type', 'Spearman');
disp(r3);
这就求出来了,接下来就是使用r1/r2/r3画相关性分析图了!图可以有很多种选择,但是作者都觉得很丑,所以自己配置了一个小清新的颜色,大家喜欢的话可以拿走哦!
% 设置我自定义的颜色映射
n = 64;
% 从淡蓝色 (0.6, 0.6, 1) 到淡黄色 (1, 1, 0.6)
t1 = linspace(0.6, 1, floor(n/2))';
u1 = linspace(0.6, 1, floor(n/2))';
v1 = linspace(1, 0.6, floor(n/2))';
% 从淡黄色 (1, 1, 0.6) 到淡红色 (1, 0.6, 0.6)
t2 = linspace(1, 1, ceil(n/2))';
u2 = linspace(1, 0.6, ceil(n/2))';
v2 = linspace(0.6, 0.6, ceil(n/2))';t = [t1; t2];
u = [u1; u2];
v = [v1; v2];my_colormap = [t,u,v];figure;
% 创建子图
ax3 = subplot(1, 1, 1);
% 绘制 Spearman 相关系数的热力图
imagesc(ax3, r3);
% 添加颜色条
colorbar(ax3);
% 在每个单元格中添加文本
for i = 1:size(r3, 1)for j = 1:size(r3, 2)text(ax3, j, i, sprintf('%.2f', r3(i, j)), ...'HorizontalAlignment', 'center', ...'Color', 'k', 'FontSize', 10, 'Parent', ax3);end
end
% 设置标题
title(ax3, 'Spearman Correlation Heatmap');
% 应用自定义的颜色映射
colormap(ax3, my_colormap);
相关文章:
数学建模Matlab之检验与相关性分析
只要做C题基本上都会用到相关性分析、一般性检验等! 回归模型性能检验 下面讲一下回归模型的性能评估指标,用来衡量模型预测的准确性。下面是每个指标的简单解释以及它们的应用情境: 1. MAPE (平均绝对百分比误差) 描述: 衡量模型预测的相对…...
微服务网关:Spring Cloud Zuul 升级 Spring Cloud Gateway 的核心要点
1. 服务路由 1.1. Zuul 接收请求: 在routes路由规则中,根据path去匹配,如果匹配中,就使用对应的路由规则进行请求转发如果无法从routes中匹配,则根据path用“/”去截取第一段作为服务名进行请求转发,转发…...
视频讲解|含可再生能源的热电联供型微网经济运行优化(含确定性和源荷随机两部分代码)
1 主要内容 该视频为《含可再生能源的热电联供型微网经济运行优化》代码讲解内容,对应的资源下载链接为考虑源荷不确定性的热电联供微网优化-王锐matlab(含视频讲解),对该程序进行了详尽的讲解,基本做到句句分析和讲解…...
3种等待方式,让你学会Selenium设置自动化等待测试脚本!
一、Selenium脚本为什么要设置等待方式?——即他的应用背景到底是什么 应用Selenium时,浏览器加载过程中无法立即显示对应的页面元素从而无法进行元素操作,需设置一定的等待时间去等待元素的出现。(简单来说,就是设置…...
[Spring] Spring5——AOP 简介
目录 一、AOP 简介 1、什么是 AOP 二、AOP 底层原理 1、动态代理原理 2、基于接口的 JDK 动态代理 3、基于继承的 CGLib 动态代理 三、底层原理实现—— JDK 动态代理 1、使用 Proxy 类的方法创建代理对象 2、JDK 动态代理示例 四、AOP 操作术语 1、连接点 2、切入…...
C/C++ 动态规划面试算法题
1.买卖股票的最佳时机 https://blog.csdn.net/qq_41277628/article/details/113322136 输入:[7,1,5,3,6,4] 输出:5 解释:在第 2 天(股票价格 1)的时候买入,在第 5 天(股票价格 6ÿ…...
kafka伪集群部署,使用zookeeper模式
1:拉去管理kafka界面UI镜像 docker pull provectuslabs/kafka-ui2:拉去管理kafka镜像 docker pull bitnami/kafka3:docker-compose.yml version: 3.8 services:zookeeper-1:container_name: zookeeper1image: bitnami/zookeeperports:- "2181:2181"environment:- …...
Postgresql 主从复制+主从切换(流复制)
pgsql有多种主从复制方式,推荐的是流复制 一、前置条件 1.至少两个pgsql数据库(可以是一台设备上的两个) 可以参考下面的教程 pgsql编译安装:pgsql 编译安装(linux) pgsql单机多开:pgsql 单机…...
java获取字符串集合中每个字符并且组成一个新的集合实现
直接怼代码,刚好碰到了这种需求,也是想了可久,其实想想也还是挺简单的 public static void main(String[] args) { // 原始字符串集合 List<String> originalList new ArrayList<>(); originalList.add("Hello"); …...
结构型设计模式——外观模式
摘要 本文主要分析设计模式 - 结构型 - 外观(Facade),它提供了一个统一的接口,用来访问子系统中的一群接口,从而让子系统更容易使用。 一、外观模式的意图 提供了一个统一的接口,用来访问子系统中的一群接口,从而让…...
【算法学习】-【双指针】-【快乐数】
LeetCode原题链接:202. 快乐数 下面是题目描述: 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果…...
【Java-LangChain:使用 ChatGPT API 搭建系统-6】处理输入-链式 Prompt Chaining Prompts
第六章,处理输入-链式 Prompt Chaining Prompts 在本章中,我们将学习如何通过将复杂任务拆分为一系列简单的子任务来链接多个 Prompt。 您可能会想,为什么要将任务拆分为多个 Prompt,而不是像我们在上一个视频中学习的那样&…...
从零手搓一个【消息队列】创建核心类, 数据库设计与实现
文章目录 一、创建核心类1, 交换机2, 交换机类型3, 队列4, 绑定5, 交换机转发 & 绑定规则6, 消息7, 消息属性 二、数据库设计1, 使用 SQLite2, 使用 MyBatis2.1, 创建 Interface2.2, 创建 xml 文件 三、硬盘管理 -- 数据库1, 创建 DataBaseManager 类2, init() 初始化数据库…...
14:00面试,14:06就出来了,这问的过于变态了。。。
前言 刚从小厂出来,没想到在另一家公司我又寄了。 在这家公司上班,每天都要加班,但看在钱给的比较多的份上,也就不太计较了。但万万没想到5月一纸通知,所有人不准加班了,不仅加班费没有了,薪资…...
url请求头信息
Accept Accept:请求报头域,用于指定客户端可接受哪些类型的信息。 Accept-Language Accept-Language:指定客户端可接受的语言类型。 Accept-Encoding Accept-Encoding:指定客户端可接受的内容编码。 Host Host:…...
【Oracle】Oracle系列之十六--数据库备份
文章目录 往期回顾1. 数据库备份的分类1.1 逻辑备份与物理备份(1)逻辑备份(2)物理备份(3)归档模式与非归档模式 1.2 完全备份/差异备份/增量备份 2. Oracle 逻辑备份2.1 EXP/IMP(1)E…...
uni-app:实现页面效果3
效果 代码 <template><view><!-- 风速风向检测器--><view class"content_position"><view class"content"><view class"SN"><view class"SN_title">设备1</view><view class&quo…...
计算机网络基础(一):网络系统概述、OSI七层模型、TCP/IP协议及数据传输
通信,在古代是通过书信与他人互通信息的意思。 今天,“通信”这个词的外沿已经得到了极大扩展,它目前的大意是指双方或多方借助某种媒介实现信息互通的行为。 如果按照当代汉语的方式理解“通信”,那么古代的互遣使节、飞鸽传书…...
互联网金融理财知识点简单总结
互联网金融理财知识点总结 互联网金融理财是指通过互联网平台进行资产管理和投资的一种金融方式。它结合了金融、科技和互联网,为投资者提供了更多选择和便捷性。本文将介绍互联网金融理财的关键知识点,包括理财基础、投资产品、风险管理和未来趋势等方…...
微信小程序template界面模板导入
我们有些时候 会有一些比较大但并不复杂的界面结构 这个时候 你可以试试这种导入模板的形式 我们在根目录创建一个 template 目录 然后下面创建一个 text文件夹下面创建一个 test.wxml 参考代码如下 <template name"textIndex"><text class "testw&…...
C/C++跨平台构建工具CMake-----在C++源码中读取CMakeLists.txt配置文件中的内容
文章目录 1.需求描述2.需求准备2.1 创建项目2.2 编辑CMakeLists.txt文件2.3 编写C文件2.4 编译构建项目 3.需求实现3.1 在CMakeLists.txt中输出日志信息3.2 增加配置生成C头文件3.3在C 源码中访问配置的值3.4 C文件中读取CMakeLists.txt中的字符串 总结 1.需求描述 当我们开发…...
【MVP争夺战】python实现-附ChatGPT解析
1.题目 MVP争夺战 知识点 :DFS搜索 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 在星球争霸篮球赛对抗赛中,强大的宇宙战队,希望每个人都能拿到MVP。 MVP的条件是,单场最高分得分获得者,可以并列,所以宇宙战队决定在比赛中尽可能让更多的队员上场,且让所有有得…...
6 个最佳免费 Android 数据恢复软件
如果您是 Android 用户,您可能会发现没有回收站。然而,聪明的开发人员已经创建了各种 Android 数据恢复软件程序,可以解决各种与数据丢失相关的问题。 Android 数据恢复软件如何工作? 问题是当你删除一个文件时,它的数…...
数学建模Matlab之数据预处理方法
本文综合代码来自文章http://t.csdnimg.cn/P5zOD 异常值与缺失值处理 %% 数据修复 % 判断缺失值和异常值并修复,顺便光滑噪音,渡边笔记 clc,clear;close all; x 0:0.06:10; y sin(x)0.2*rand(size(x)); y(22:34) NaN; % 模拟缺失值 y(89:95) 50;% 模…...
如何保证Redis的HA高可用
目录 1.关于Redis2.Redis 的使用场景3.Redis的高可用3.1 哨兵模式(Sentinel)3.2 集群模式(Cluster) 4.参考 本文主要介绍Redis如何保证高可用。 1.关于Redis Redis(Remote Dictionary Server)是一个开源的…...
第一百六十三回 如何在任意位置显示PopupMenu
文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了PopupMenuButton相关的内容,本章回中将介绍如何在任意位置显示PopupMenu.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在上一章回中介绍了PopupMenuButton相关的内容,它主…...
采用python中的opencv2的库来运用机器视觉移动物体
一. 此次我们来利用opencv2来进行机器视觉的学习 1. 首先我们先来进行一个小的案例的实现. 这次我们是将会进行一个小的矩形手势的移动. import cv2 from cvzone.HandTrackingModule import HandDetectorcap cv2.VideoCapture(0) # cap.set(3, 1280) # cap.set(4, 720) col…...
一、thymeleaf简介
1.1 什么是thymeleaf Thymeleaf是一个适用于web和独立环境的现代服务器端Java模板引擎,能够处理HTML、XML、JavaScript、CSS甚至纯文本。主要目标是提供一种优雅且高度可维护的创建模板的方法。 何为模板引擎呢?模板引擎就是为了使用户页面和业务数据…...
二分查找模版
对于一个递增序列我们要找大于等于target的数,返回结果的下标时 比如 序列 5 7 7 8 8 10 初始化左右指针l0 rn-1 猜测区间 [l,r] 闭区间,mid(lr)/2 防溢出就写成 midl(r-l)/2 如果有nums[mid]<target 那么[l,mid]这个区间的数就都小于target 更新 lmi…...
idea清空缓存类
解决办法 网上有很多是让你去清空什么maven依赖,但假如这个项目是你不可以大刀阔斧的话 可以清空idea缓存 选择 Invalidate 开头的 然后全选 运行重启idea OK...
wordpress产品参数多图/利尔化学股票
JDK安装与环境变量的配置 文章目录JDK安装与环境变量的配置一、JDK下载1.官网下载2.百度网盘二、JDK安装三、环境变量的配置一、JDK下载 1.官网下载 https://www.oracle.com/java/technologies/javase-jdk15-downloads.html 2.百度网盘 链接:https://pan.baidu.…...
做全屏轮播的网站有哪些/seo排名快速刷
2022年9月秋招算法工程师笔试题 1 题目 括号匹配问题 定义一个括号串的权值为,它的最长合法括号子序列的长度,例如()())的权值是4,因为它的最长合法括号子序列为()(),求一个给定括号串的所有子串权值之和。 注意,我忘了题目&am…...
服装鞋帽 网站建设/百度智能建站系统
一个优秀的测试在工作中应具备的: 1.保持怀疑 对产品的质量持有一颗敢于怀疑的心,质量不是开发人员说"我做完了而且也测过了"就可以保证的。直到你测完最后一轮,最后一个用例之前,你都应该对产品的质量持怀疑态度。 2.多…...
蓬莱网站建设联系电话/台湾新闻最新消息今天
HTML其常用标签及属性有: 1、 常见的块级标签: ①<h1></h1>......<h6><h6>:标题标签,自动加粗,h1最大,h6最小。 ②<hr/>:水平线标签,添加一条水平…...
深圳大眼睛网站建设/b2b电子商务网站
SpringCloud(第 018 篇)Zuul 服务 API 网关微服务之代理与反向代理 - 一、大致介绍 1、API 服务网关顾名思义就是统一入口,类似 nginx、F5 等功能一样,统一代理控制请求入口,弱化各个微服务被客户端记忆功能࿱…...
深圳网站制作开发/百度文库网页版
版本新增功能5.0.16增加文件日志自动清理功能支持5.0.13增加单文件日志写入功能5.0.10增加record_trace配置参数用于记录trace信息到日志5.0.4命令行模式下日志自动定时写入 debug日志类型仅用于调试模式记录手动记录 一般情况下,系统的日志记录是自动的,…...