数学建模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&…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
stm32wle5 lpuart DMA数据不接收
配置波特率9600时,需要使用外部低速晶振...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
