python数据分析案例-研究生成绩分析

news2024/11/15 11:44:27

一、简介

在本次研究中,我们对2018年硕士生考试成绩数据进行了深入的统计分析。这项分析旨在探索不同因素如性别、生源背景、基因型以及出生月份等对学生成绩的潜在影响。我们使用了一系列的统计方法,包括描述性统计分析、相关性分析、分组分析以及方差分析(ANOVA),以获得对这些数据的全面理解。这些方法不仅帮助我们洞察数据的基本特性,还揭示了不同变量之间的相互关系。

二、主要过程

首先进行问题分析:

描述性统计分析:计算平均分、中位数、标准差等,以了解成绩的总体分布情况。

性别差异分析:比较男女学生在各科目及总分上的表现差异。

生源背景分析:探究学生的生源背景(城镇或农村)对成绩的可能影响。

基因型分析:检查不同基因型(gene1和gene2)与成绩之间的关系。

生日与成绩的关系:分析学生的出生日期是否与成绩表现有关联。

首先读取数据:

完整代码和数据

import pandas as pd
from io import StringIO
import numpy as np

data_df = pd.read_csv("C:/Users/Administrator/Desktop/data3.csv", encoding='gbk')
data_df 

进行描述性统计分析

名词

填空

简答

计算

综合

生日

mean

23.57

16.202

14.340

16.945

71.208

1989-07-08 04:45:19

min

10

3

6

4

48.5

1986-01-05 00:00:00

25%

19

15

11

13

62.75

1988-11-12 12:00:00

50%

26

16

15

16

72

1989-08-23 00:00:00

75%

27

18

17

20

79.5

1990-03-17 00:00:00

max

30

20.5

20

29

94.5

1998-11-15 00:00:00

std

4.589309

2.280534

3.597774

5.052427

10.97635

1989-07-08 04:45:19

平均分(总分):71.21分

最高分(总分):94.5分

最低分(总分):48.5分

总体上,学生的成绩分布在48.5分到94.5分之间,平均成绩为71.21分。

# 性别差异分析
gender_diff = data_df.groupby('性别').mean()
gender_diff

性别差异分析

名词

填空

简答

计算

综合

性别

F

24.184739

16.329317

14.433735

17.112450

72.222892

M

23.038462

16.092657

14.258741

16.800699

70.325175

接下来可视化一下:

# 男生平均总分:70.63分
# 女生平均总分:72.22分
# 女生在平均总分上略高于男生。

# 生源背景分析
origin_diff = data_df.groupby('生源').mean()
origin_diff

接下来可视化一下:

# 创建一个画布和子图
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
import seaborn as sns
fig, axes = plt.subplots(2, 3, figsize=(18, 12))

# 性别差异分析可视化
sns.barplot(x=gender_diff.index, y="综合", data=gender_diff, ax=axes[0, 0])
axes[0, 0].set_title('性别对总分的影响')
axes[0, 0].set_xlabel('性别')
axes[0, 0].set_ylabel('平均总分')

# 生源背景分析可视化
sns.barplot(x=origin_diff.index, y="综合", data=origin_diff, ax=axes[0, 1])
axes[0, 1].set_title('生源背景对总分的影响')
axes[0, 1].set_xlabel('生源背景')
axes[0, 1].set_ylabel('平均总分')

# 基因型分析可视化
sns.barplot(x=gene1_diff.index, y="综合", data=gene1_diff, ax=axes[0, 2])
axes[0, 2].set_title('基因型gene1对总分的影响')
axes[0, 2].set_xlabel('基因型gene1')
axes[0, 2].set_ylabel('平均总分')

sns.barplot(x=gene2_diff.index, y="综合", data=gene2_diff, ax=axes[1, 0])
axes[1, 0].set_title('基因型gene2对总分的影响')
axes[1, 0].set_xlabel('基因型gene2')
axes[1, 0].set_ylabel('平均总分')

# 生日与成绩的关系可视化
sns.barplot(x=birthday_diff.index, y="综合", data=birthday_diff, ax=axes[1, 1])
axes[1, 1].set_title('出生月份对总分的影响')
axes[1, 1].set_xlabel('出生月份')
axes[1, 1].set_ylabel('平均总分')

# 调整布局,防止标签重叠
plt.tight_layout()

plt.show()

# 相关性分析:分析不同科目成绩之间的相关性,以及这些科目成绩与总分的相关性。
# 回归分析:可以使用线性回归模型来探究哪些因素(如性别、生源、基因型等)对总分的影响最大。
# 分组分析:根据基因型、性别或生源进行更细致的分组,分析各组内成绩的分布情况。
# 年龄与成绩的关系:计算学生的年龄,并分析年龄与成绩之间的关系。
# 异常值检测:检查数据中是否存在异常值,这些异常值可能会对分析结果产生影响。

# 可视化基因型对成绩的影响
plt.figure(figsize=(10, 6))
sns.barplot(x='gene1', y='综合', data=data_df, ci=None)
plt.title('基因型gene1对总分的影响')
plt.xlabel('基因型gene1')
plt.ylabel('平均总分')
plt.show()

 

可视化相关性分析:

# 相关性分析
correlation = data_df[['名词', '填空', '简答', '计算', '综合', '年龄']].corr()
correlation

 

# 可视化相关性分析
plt.figure(figsize=(10, 6))
sns.heatmap(correlation, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('科目间及与总分的相关性')
plt.show()

 科目间及与总分的相关性:展示了不同科目之间以及与总分之间的相关性。可见“名词”科目与总分的相关性最高。各科目间及与总分的相关性:科目“名词”与总分(综合)的相关性最高(0.79),其次是“简答”(0.79)和“计算”(0.76)。这表明这些科目对总分有较大影响。年龄与成绩的相关性:年龄与各科目成绩及总分的相关性都很低,说明年龄对成绩影响不大。

...

线性回归分析

由于涉及多个分类变量,此处使用ANOVA(方差分析)

anova_table = sm.stats.anova_lm(model, typ=2)
anova_table

sum_sq

df

F

PR(>F)

C(性别)

10.522103

1.0

0.105609

7.453292e-01

C(生源)

0.292350

1.0

0.002934

9.568212e-01

C(gene1)

7366.159076

2.0

36.966647

9.589150e-16

C(gene2)

3889.908051

2.0

19.521281

6.652673e-09

Residual

52207.430611

524.0

NaN

NaN

基因型对成绩的影响显著:基因型(gene1和gene2)对总分有显著影响(P值远小于0.05)。

性别和生源对成绩的影响不显著:性别和生源对总分的影响不显著(P值大于0.05)。

三、总结

通过对硕士生考试成绩的综合分析,我们发现几个关键的发现。首先,性别和生源背景对学生成绩的影响不显著,而基因型在学生成绩上表现出显著的影响,特别是BB基因型的学生在总分上表现最好。其次,不同科目间的成绩相关性分析显示,“名词”科目与总分的相关性最高。此外,年龄对学生成绩的影响相对较小。最这些发现为理解硕士生的学术表现提供了重要的洞察,并为未来的教育研究和政策制定提供了数据支持。

创作不易,希望大家多多点赞收藏和评论!

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

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

相关文章

【Java数据结构】二叉树详解(二)

🔒文章目录: 1.❤️❤️前言~🥳🎉🎉🎉 2. 二叉树的模拟——正文 2.1获取树中节点的个数 2.2获取叶子节点的个数 2.3获取第K层节点的个数 2.4获取二叉树的高度 2.5 检测值为value的元素是否存在 …

WPF Treeview控件开虚拟化后定位节点

不开虚拟化&#xff0c;可以用下面的方法直接定位 <Window x:Class"WpfApplication2.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"Title"Main…

Qt OPC UA通信

介绍 OPC UA全称Open Platform Unified Architecture&#xff0c;开放平台统一架构&#xff0c;是工业自动化领域通用的数据交换协议&#xff0c;它有两套主要的通信机制&#xff1a;1.客户端-服务器通信&#xff1b;2.发布订阅。Qt对OPC UA通信标准也提供了支持&#xff0c;目…

JDBC学习笔记(三)高级篇

一、JDBC 优化及工具类封装 1.1 现有问题 1.2 JDBC 工具类封装 V1.0 resources/db.properties配置文件&#xff1a; driverClassNamecom.mysql.cj.jdbc.Driver urljdbc:mysql:///atguigu usernameroot password123456 initialSize10 maxActive20 工具类代码&#xff1a; p…

代码随想录算法训练营第二十八天|93.复原IP地址 ,78.子集 ,90.子集II

93. 复原 IP 地址 - 力扣&#xff08;LeetCode&#xff09; class Solution {ArrayList<String> results new ArrayList<>();public List<String> restoreIpAddresses(String s) {if(s.length() > 12){return new ArrayList<>();}char[] ipChars …

f4pga环境搭建教程

f4pga环境搭建教程 背景介绍 FOSS Flows For FPGA (F4PGA) project&#xff0c;是一套开源的FPGA工具链&#xff0c;号称the GCC of FPGAs&#xff0c;作用是将写的硬件描述语言&#xff08;verilog或VHDL&#xff09;转化为可以在FPGA上运行的可执行文件&#xff08;bit文件…

Python实现PPT表格的编写包含新建修改插图(收藏备用)

自动创建一个ppt文件并创建好表格 代码要用到pptx库 pip install python-pptx 创建含有表格的ppt文件代码&#xff1a; from pptx import Presentation from pptx.util import Inches# 创建一个PPT对象 ppt Presentation()# 添加一个幻灯片 slide ppt.slides.add_slide(p…

原美团项目管理专业通道执行主席边国华受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 峰项标&#xff08;北京&#xff09;管理咨询有限公司常务副总裁、原美团项目管理专业通道执行主席边国华先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“从组织级项目管理能力的评价角度看企业实践”。大会将于6月2…

Python读取字节数组

读取和处理bytearray中的值 # 输出&#xff1a;Combined 16-bit value: 1234 python-can发送和接收CAN报文 import can # 创建一个CAN总线对象&#xff08;这取决于你的硬件和驱动程序&#xff09; bus can.interface.Bus(channelcan0, bustypesocketcan) # 定义一个CAN…

django 内置 JSON 字段 使用场景

Django 内置的 JSON 字段&#xff08;JSONField&#xff09;是在 Django 3.1 版本中引入的&#xff0c;用于处理 JSON 格式的数据。JSONField 允许在数据库表中存储和查询 JSON 数据&#xff0c;并且在与 Python 代码交互时自动转换为合适的 Python 数据类型。以下是一些常见的…

成都欣丰洪泰文化传媒有限公司好不好?

在数字经济的浪潮中&#xff0c;电商行业以其独特的魅力和无限的发展潜力&#xff0c;吸引了越来越多的企业和个人投身其中。作为电商服务领域的佼佼者&#xff0c;成都欣丰洪泰文化传媒有限公司凭借专业的团队、优质的服务和创新的理念&#xff0c;不断引领电商新风尚&#xf…

INT202 例题

算法复杂度 O(n)&#xff1a;表示算法的渐进上界。如果一个算法的运行时间是O(n)&#xff0c;那么它的运行时间最多与输入规模n成正比。换句话说&#xff0c;当输入规模n增加时&#xff0c;算法的运行时间不会超过某个常数倍的n。比如&#xff0c;如果一个算法的时间复杂度是O(…

AndroidStudio使用高德地图API获取手机定位

一、高德地图API申请 首先去高德注册开发者账号 下面这两个选项&#xff0c;也是我们项目成功的关键 1.1怎么获取SHA1指纹密码 ①使用AS自带的签名文件 你的用户文件下面会有一个.android文件夹,进入文件夹,在这个路径下打开cmd 如果.android下面没有签名文件参考创建文章 …

【管理咨询宝藏124】通过BLM打通前端业务与财务的双轨制设计方案

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏124】通过BLM打通前端业务与财务的双轨制设计方案 【格式】PDF版本 【关键词】BLM、组织架构设计、流程优化 【核心观点】 - 运用“拉通业务财务…

【原创】springboot+mysql大学生综合素质测评管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

【python】成功解决“ValueError: Expected 2D array, got 1D array instead”错误的全面指南

成功解决“ValueError: Expected 2D array, got 1D array instead”错误的全面指南 一、引言 在Python的数据分析和机器学习领域&#xff0c;尤其是使用NumPy、Pandas、scikit-learn等库时&#xff0c;经常会遇到各种类型错误。其中&#xff0c;“ValueError: Expected 2D arr…

MP-SPDZ的学习与运用

目录 MP-SPDZ 的介绍主要功能典型应用场景 MP-SPDZ 的安装实验环境准备环境安装MP-SPDZ 下载和编译 MP-SPDZ 的使用测试程序第三方求和三方计算测试冒泡排序比较运算函数语法详解——Sint语法详解——Array基于AES电路实现OPRFORAM隐私集合求交实现两台虚拟机之间进行MPC简单实…

视觉SLAM十四讲:从理论到实践(Chapter8:视觉里程计2)

前言 学习笔记&#xff0c;仅供学习&#xff0c;不做商用&#xff0c;如有侵权&#xff0c;联系我删除即可 一、目标 1.理解光流法跟踪特征点的原理。 2.理解直接法是如何估计相机位姿的。 3.实现多层直接法的计算。 特征点法存在缺陷&#xff1a; 二、光流(Optical Flow) …

SEO之关键词扩展(二)

初创企业搭建网站的朋友看1号文章&#xff1b;想学习云计算&#xff0c;怎么入门看2号文章谢谢支持&#xff1a; 1、我给不会敲代码又想搭建网站的人建议 2、新手上云 &#xff08;接上一篇。。。&#xff09; 5、各种形式的变体 1.同义词 假设核心关键词是酒店&#xff0c;…

Python版《消消乐》,附源码

曾经风靡一时的消消乐&#xff0c;至今坐在地铁上都可以看到很多人依然在玩&#xff0c;想当年我也是大军中的一员&#xff0c;那家伙&#xff0c;吃饭都在玩&#xff0c;进入到高级的那种胜利感还是很爽的&#xff0c;连续消&#xff0c;无限消&#xff0c;哈哈&#xff0c;现…