数学建模入门——描述性统计分析

 摘要:本篇博客主要讲解了数学建模入门的描述性统计分析,包括基本统计量的计算数据的分布形态数据可视化相关性分析


往期回顾:

数学建模入门——建模流程-CSDN博客

数学建模入门——数据预处理(全)-CSDN博客


一、基本统计量

基本统计量是描述性统计分析的重要组成部分,它们就像数据的 “标签”,能快速让我们了解数据的大致特征

 下面以Python展示鸢尾花数据集的基本统计量计算方法:

from sklearn.datasets import load_iris
import pandas as pd# 加载鸢尾花数据集
iris = load_iris()
data = iris.data
target = iris.target
feature_names = iris.feature_names# 将数据转换为DataFrame
df = pd.DataFrame(data, columns=feature_names)print(df.max())
print(df.min())
print(df.mean())
print(df.median())
print(df.var())
print(df.std())
print(df.skew())    # 偏度
print(df.kurt())    # 峰度
cv = df.std() / df.mean()
print(cv)           # 变异系数# 计算基本统计量
print(df.describe())    # 也可以用describe()查看基本统计量

二、分布形态

绘制数据集的分布图可以让我们直观的感受到数据分布特点。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import load_irisdata = load_iris()          # 得到数据特征
iris_target = data.target   # 得到数据对应的标签
iris_features = pd.DataFrame(data=data.data, columns=data.feature_names)    # 利用Pandas转化为DataFrame格式# 合并标签和特征信息
iris_all = iris_features.copy()
iris_all['target'] = iris_target# 在2D情况下不同的特征组合对于不同类别的花的散点分布,以及大概的区分能力。
sns.pairplot(data=iris_all, diag_kind='hist', hue='target')
plt.show()

三、数据可视化

        数据可视化在描述性统计分析中具有极其重要的地位,它可以帮助我们快速理解数据分布:通过图表(如直方图、箱线图等),可以直观地展示数据的集中趋势(均值、中位数等)、离散程度(方差、标准差等)以及分布形态(正态分布、偏态分布等)。揭示变量间关系:像散点图可以直观地展示两个变量之间的关系,是正相关、负相关还是无明显相关,帮助我们快速发现变量之间的潜在联系。发现数据中的模式和趋势:时间序列数据通过折线图展示,能够清晰地呈现出数据随时间的变化趋势,包括上升、下降、周期性波动等,帮助我们发现数据背后隐藏的规律。

以鸢尾花数据集为例,先导入数据集:

import pandas as pd
import seaborn as sns
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt# 加载鸢尾花数据集
iris = load_iris()
data = iris.data
feature_names = iris.feature_names# 将数据转换为DataFrame
df = pd.DataFrame(data, columns=feature_names)

 直方图:

# 绘制直方图
plt.figure(figsize=(12, 8))
for i in range(len(feature_names)):plt.subplot(2, 2, i + 1)sns.histplot(df[feature_names[i]], kde=True)plt.title(feature_names[i])
plt.tight_layout()
plt.show()

  箱线图:

# 绘制箱线图
plt.figure(figsize=(8, 6))
sns.boxplot(data=df)
plt.title('Iris Dataset Boxplot')
plt.xticks(range(len(feature_names)), feature_names)
plt.show()

  散点图矩阵:

# 绘制散点图矩阵
sns.pairplot(df)
plt.show()

   饼图:

# 绘制饼图(以sepal length (cm)为例)
sepal_length_values = df['sepal length (cm)']
value_counts = sepal_length_values.value_counts(normalize=True) * 100
plt.figure(figsize=(6, 6))
plt.pie(value_counts, labels=value_counts.index, autopct='%1.1f%%')
plt.title('Distribution of Sepal Length')
plt.show()

       根据数据集的特点还可以其他图,许多数据科学家也会使用R语言来绘制绘制各种形态的可视化图形

桑基图:

山脊图:

瀑布图:

 棒棒糖图:

 气泡图:

圆弦图:

 四、相关性分析

相关系数是反映两个变量之间线性相关程度的指标。常用的有两种相关系数计算方法 :

皮尔逊相关系数(Pearson correlation): 用于衡量两个连续性随机变量间的相关系数;斯皮尔曼相关系数(Spearman correlation) :秩相关系数,根据原始数据的等级排序进行求解,也称为等级变量之间的皮尔逊相关系数   

        以上两种系数是两个变量之间变化趋势的方向以及程度,取值范围为[-1, 1]。当接近1时,表示两者具有强烈的正相关性;当接近-1时,表示有强烈的的负相关性;而值接近0,则表示相关性很低。 

相关程度极强相关强相关中等程度相关弱相关极弱相关或无相关
相关系数绝对值0.8——10.6——0.80.4——0.60.2——0.40——0.2

分别使用皮尔逊和斯皮尔曼绘制鸢尾花数据集特征间的相关性热力图:

import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
import pandas as pd# 加载鸢尾花数据集
iris = load_iris()
data = iris.data
feature_names = iris.feature_names# 将数据转换为DataFrame
df = pd.DataFrame(data, columns=feature_names)# 基于皮尔逊相关系数绘制热力图
plt.figure(figsize=(8, 6))
pearson_corr = df.corr(method='pearson')
sns.heatmap(pearson_corr, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('Pearson Correlation Heatmap of Iris Dataset')
plt.show()

# 基于斯皮尔曼相关系数绘制热力图
plt.figure(figsize=(8, 6))
spearman_corr = df.corr(method='spearman')
sns.heatmap(spearman_corr, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('Spearman Correlation Heatmap of Iris Dataset')
plt.show()

        本篇博客的描述性统计分析就介绍到这里,该专栏会持续更新数学建模的内容,需要的可以订阅收藏一下,如果本博客对您有所帮助,请留下您的赞赞哦!

        有什么问题可以在评论区留言!感谢您的阅读!

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

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

相关文章

30、论文阅读:基于小波的傅里叶信息交互与频率扩散调整的水下图像恢复

Wavelet-based Fourier Information Interaction with Frequency Diffusion Adjustment for Underwater Image Restoration 摘要介绍相关工作水下图像增强扩散模型 论文方法整体架构离散小波变换与傅里叶变换频率初步增强Wide Transformer BlockSpatial-Frequency Fusion Block…

Zero to JupyterHub with Kubernetes 下篇 - Jupyterhub on k8s

前言:纯个人记录使用。 搭建 Zero to JupyterHub with Kubernetes 上篇 - Kubernetes 离线二进制部署。搭建 Zero to JupyterHub with Kubernetes 中篇 - Kubernetes 常规使用记录。搭建 Zero to JupyterHub with Kubernetes 下篇 - Jupyterhub on k8s。 官方文档…

Matlab回归预测大合集(不定期更新)-188

截至2025-1-2更新 1.BP神经网络多元回归预测(多输入单输出) 2.RBF神经网络多元回归预测(多输入单输出) 3.RF随机森林多元回归预测(多输入单输出) 4.CNN卷积神经网络多元回归预测(多输入单输…

【读书与思考】历史是一个好东西

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 导言 以后《AI日记》专栏我想专注于 AI 相关的学习、成长和工作等。而与 AI 无关的一些读书、思考和闲聊,我打算写到这里,我会尽量控制自己少想和少写。 下图的一些感想…

Git使用mirror备份和恢复

Git使用mirror备份和恢复 使用到的命令总结备份1.进入指定代码仓库,拷贝地址2.进入要备份到的文件夹,右键打开git命令行,输入以下命令3.命令执行完成后会生成一个新文件夹 恢复1.在gitee上创建代码仓库![请添加图片描述](https://i-blog.csdn…

人工智能的可解释性:从黑箱到透明

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​ ​ 人工智能(AI)的快速发展和广泛应用,带来了许多革新的成果,但也引发了对其透明性和可解释…

Nacos注册中心介绍及部署

文章目录 Nacos注册中心介绍及部署1. 注册中心简介2. 注册中心原理3. Nacos部署-基于Docker3.1 Nacos官网下载3.2 基础数据信息3.3 环境信息3.4 docker安装部署3.5 测试3.5 测试 Nacos注册中心介绍及部署 1. 注册中心简介 Spring Cloud注册中心是Spring Cloud微服务架构中的一…

Nginx与frp结合实现局域网和公网的双重https服务

背景: 因为局域网内架设了 tiddlywiki、 Nextcloud 等服务,同时也把公司的网站架设在了本地,为了实现局域网直接在局域网内访问,而外部访问通过frps服务器作为反向代理的目的,才有此内容。 实现的效果如下图琐事 不喜欢…

zephyr移植到STM32

Zephy如何移植到单片机 1. Window下搭建开发环境1.1 安装Choncolatey1.2 安装相关依赖1.3创建虚拟python环境1.4 安装west1.4.1 使用 pip 安装 west1.4.2 检查 west 安装路径1.4.3 将 Scripts路径添加到环境变量1.4.4 验证安装 1.5 获取zephyr源码和[安装python](https://so.cs…

【分糖果——DFS】

题目 代码1 #include <bits/stdc.h> using namespace std; set<string> s; void dfs(int num1, int num2, int u, string ans) {if (u 7){if (num1 num2 > 5)return;ans (char)((num1) * 17 num2);s.insert(ans);return;}for (int i 0; i < num1; i){f…

【HarmonyOS】鸿蒙应用实现屏幕录制详解和源码

【HarmonyOS】鸿蒙应用实现屏幕录制详解和源码 一、前言 官方文档关于屏幕录制的API和示例介绍获取简单和突兀。使用起来会让上手程度变高。所以特意开篇文章&#xff0c;讲解屏幕录制的使用。官方文档参见&#xff1a;使用AVScreenCaptureRecorder录屏写文件(ArkTS) 二、方…

解决在VS2019/2022中编译c++项目报错fatal error C1189: #error : “No Target Architecture“

解决在VS2019/2022中编译c项目报错fatal error C1189: #error : “No Target Architecture” 报错原因 在winnt.h中&#xff0c;不言而喻&#xff0c;一目了然&#xff1a; 代码节选&#xff1a; #if defined(_AMD64_) || defined(_X86_) #define PROBE_ALIGNMENT( _s ) TY…

Python教程丨Python环境搭建 (含IDE安装)——保姆级教程!

工欲善其事&#xff0c;必先利其器。 学习Python的第一步不要再加收藏夹了&#xff01;提高执行力&#xff0c;先给自己装好Python。 1. Python 下载 1.1. 下载安装包 既然要下载Python&#xff0c;我们直接进入python官网下载即可 Python 官网&#xff1a;Welcome to Pyt…

实现AVL树

目录 AVL树概念 AVL树结构 AVL树插入 LL型 - 右单旋 RR型 - 左单旋 LR型 - 左右双旋 RL型 - 右左双旋 插入代码实现 AVL树测试 附AVL树实现完整代码 AVL树概念 前面的博客介绍了搜索二叉树&#xff0c;二叉搜索树-CSDN博客 在某些特定的情况下&#xff0c;⼆叉搜索树…

极客说|微软 Phi 系列小模型和多模态小模型

作者&#xff1a;胡平 - 微软云人工智能高级专家 「极客说」 是一档专注 AI 时代开发者分享的专栏&#xff0c;我们邀请来自微软以及技术社区专家&#xff0c;带来最前沿的技术干货与实践经验。在这里&#xff0c;您将看到深度教程、最佳实践和创新解决方案。关注「极客说」&am…

React+redux项目搭建流程

1.创建项目 create-react-app my-project --template typescript // 创建项目并使用typescript2.去除掉没用的文件夹&#xff0c;只保留部分有用的文件 3.项目配置&#xff1a; 配置项目的icon 配置项目的标题 配置项目的别名等&#xff08;craco.config.ts&…

HTML+CSS+JS制作高仿小米官网网站(内附源码,含6个页面)

一、作品介绍 HTMLCSSJS制作一个高仿小米官网网站&#xff0c;包含首页、商品详情页、确认订单页、订单支付页、收货地址管理页、新增收获地址页等6个静态页面。其中每个页面都包含一个导航栏、一个主要区域和一个底部区域。 二、页面结构 1. 顶部导航栏 包含Logo、主导航菜…

obs directx11

创建逻辑 obs 在windows 下分为Opengl 和 directx 两种渲染模式&#xff0c;默认使用的是directx &#xff0c;兼容性更好&#xff1b; 代码路径&#xff1a; E:\opensrc\obs_studio_src\obs-studio\UI\obs-app.cpp 选择渲染模式 const char* OBSApp::GetRenderModule() con…

QT实现 端口扫描暂停和继续功能 3

上篇QT给端口扫描工程增加线程2-CSDN博客 为按钮pushButton_Stop添加clicked事件&#xff0c;功能为暂停扫描&#xff0c;并在暂停后显示继续按钮&#xff0c;点击继续按钮之后继续扫描 1.更新UI 添加继续按钮 点击转到槽则会自动声明 2. 更新 MainWindow.h 需要新增的部分…

nginx-限流(请求/并发量)

一. 简述&#xff1a; 在做日常的web运维工作中&#xff0c;难免会遇到服务器流量异常&#xff0c;负载过大等情况。恶意攻击访问/爬虫等非正常性请求&#xff0c;会带来带宽的浪费&#xff0c;服务器压力增大&#xff0c;影响业务质量。 二. 限流方案&#xff1a; 对于这种情…