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

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


往期回顾:

数学建模入门——建模流程-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.rhkb.cn/news/503083.html

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

相关文章

遗传学的“正反”之道:探寻生命密码的两把钥匙

正向遗传学 & 反向遗传学 在生活中,我们常常会惊叹于孩子与父母外貌、性格上的相似之处,或是疑惑于某些家族遗传病为何代代相传。其实,这些现象背后都隐藏着遗传学的奥秘。遗传学,作为一门探索生物遗传与变异规律的学科&#…

点击主图,触发的是查看产品详情的逻辑

文章目录 1、点击主图,触发的是查看产品详情的逻辑2、点击主图,发送的请求是 productDetail 这个方法3、与主图相关的代码片段 1、点击主图,触发的是查看产品详情的逻辑 点击主图的确不会触发那些物流参数输入框的自动查询。 那些输入框需要…

图数据库 | 17、高可用分布式设计(上)

我们在前面的文章中,探索了多种可能的系统扩展方式,以及每种扩展方式的优劣。 本篇文章将通过具体的架构设计方案来对每一种方案的设计、投入产出比、各项指标与功能,以及孰优孰劣等进行评价。 在设计高性能、高可用图数据库的时候&#xf…

【FlutterDart】 listView.builder例子二(14 /100)

上效果图 上代码&#xff1a; import package:flutter/material.dart;class ListRoles extends StatelessWidget {ListRoles({super.key});final List<String> entries <String>[, -, *, /];final List<int> colorCodes <int>[600, 500, 100, 50];o…

深入了解 ES6 Map:用法与实践

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

DeepSeek重新定义“Open“AI

“面对颠覆性技术&#xff0c;闭源所创造的护城河是暂时的。即使是OpenAI的闭源方法也无法阻止他人赶超。” ——梁文锋&#xff0c;DeepSeek CEO DeepSeek V3 是一个拥有6710亿参数的开源AI模型&#xff0c;正在提升AI效率的新标准。它在相对有限的预算下进行训练&#xff0c…

5. CSS引入方式

5.1 CSS的三种样式 按照 CSS 样式书写的位置(或者引入的方式)&#xff0c;CSS样式表可以分为三大类&#xff1a; 1.行内样式表&#xff08;行内式&#xff09; 2.内部样式表&#xff08;嵌入式&#xff09; 3. 外部样式表&#xff08;链接式&#xff09; 5.2 内部样式表 …

开源平台Kubernetes的优势是什么?

Kubernetes 是一个可移植、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;方便进行声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统&#xff0c;其服务、支持和工具的使用范围广泛。 Kubernetes 这个名字源于希腊语&#xff0c;意…

web系统漏洞攻击靶场

摘 要 互联网极速发展的同时&#xff0c;也会带来一些安全性的风险&#xff0c;一些不为人知的安全问题也逐渐暴露出来。近年来&#xff0c;媒体不断披露了许多网络安全事故&#xff0c;许多网络应用程序被黑客攻击&#xff0c;导致内部数据外泄&#xff0c;人们开始认识到网络…

QPainter,QPen,QBrush详解

QPainter:画家 QPen:画笔&#xff0c;控制图形的边框轮廓 QBrush:画刷&#xff0c;控制图形的填充颜色样式 下面是用用QGraphicsItem来重写paint事件举例 #include <QGraphicsItem> #include <QPainter> #include <QGraphicsScene> #include <QGraphicsV…

C语言 扫雷程序设计

目录 1.main函数 2.菜单打印menu函数 3.游戏game函数 4.宏定义 5.界面初始化 6.打印界面 7.设置雷 8.统计排查坐标周围雷的个数 9.排查雷 10.总代码 test.c代码 game.h代码 game.c代码 结语&#xff1a; 一个简单的扫雷游戏&#xff0c;通过宏定义可以修改行列的…

第30天:Web开发-PHP应用组件框架前端模版渲染三方插件富文本编辑器CVE审计

#知识点 1、安全开发-原生PHP-开发组件集合 2、安全开发-原生PHP-模版引擎渲染 3、安全开发-原生PHP-第三方编辑器 组件/框架 说明 [Web框架] Laravel 现代化、功能全面的框架&#xff0c;适合大多数Web应用。 Symfony 高度模块化、功能强大的框架&#xff0c;适合复杂…

解决ESP32 wifi scan:1. 获取WIFI扫描列表个数为0 的问题 2.扫描WIFI列表时导致程序崩溃问题。

1. 获取WIFI扫描列表个数为0 的问题 参考ESP32的wifi scan例子&#xff0c;出问题的程序源码&#xff1a; 分析原因&#xff1a; 查看esp_wifi.c的源码&#xff0c;我们会发现&#xff1a; 上面意思就是但调用esp_wifi_scan_get_ap_records获取AP列表后&#xff0c;将会…

【动态重建】时间高斯分层的长体积视频

标题&#xff1a;Representing Long Volumetric Video with Temporal Gaussian Hierarchy 来源&#xff1a;浙江大学 链接&#xff1a;https://zju3dv.github.io/longvolcap/ 文章目录 摘要一、前言二、主要方法2.1 时间高斯分层2.2 高效渲染2.3 层次结构更新2.4 紧凑的外观模型…

mongodb==安装prisma连接

官网下载mongodb,解压安装 Download MongoDB Community Server | MongoDB 修改bin/mongod.cfg # mongod.conf# for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/# Where and how to store data. storage:dbPat…

conda安装及demo:SadTalker实现图片+音频生成高质量视频

1.安装conda 下载各个版本地址&#xff1a;https://repo.anaconda.com/archive/ win10版本&#xff1a; Anaconda3-2023.03-1-Windows-x86_64 linux版本&#xff1a; Anaconda3-2023.03-1-Linux-x86_64 Windows安装 环境变量 conda -V2.配置conda镜像源 安装pip conda…

TDengine + MQTT :车联网时序数据库如何高效接入

现代新能源汽车&#xff0c;作为一种内部系统极为复杂的交通工具&#xff0c;配备了大量传感器、导航设备、应用软件&#xff0c;这些传感器产生的数据都需要上报到车联网平台当中。对于这些车辆的状态数据&#xff08;如车速、发动机转速等&#xff09;、位置数据&#xff08;…

LabVIEW瞬变电磁接收系统

利用LabVIEW软件与USB4432采集卡开发瞬变电磁接收系统。系统通过改进硬件配置与软件编程&#xff0c;解决了传统仪器在信噪比低和抗干扰能力差的问题&#xff0c;实现了高精度的数据采集和处理&#xff0c;特别适用于地质勘探等领域。 ​ 项目背景&#xff1a; 瞬变电磁法是探…

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

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

网络层协议之IP数据包层分片随笔

1.全篇内容均在图中&#xff0c;如何分片以及分片举例细节拆解&#xff0c;见下图: 1.1分片公式&#xff1a; 上述公式中有关/8 再*8目的是为了使用8字节对齐&#xff0c;从而使的分片数据包均为8字节整数倍&#xff01; 1.2.ip层数据包分片计算&图解