Python数据分析-股票分析和可视化(深证指数)

news2024/10/6 0:32:34

一、内容简介

股市指数作为衡量股市整体表现的重要工具,不仅反映了市场的即时状态,也提供了经济健康状况的关键信号。在全球经济体系中,股市指数被广泛用于预测经济活动,评估投资环境,以及制定财政和货币政策。在中国,深证指数作为深圳证券交易所的主要指数之一,它包含了深市的所有上市公司,因此能够全面地反映中国改革开放后经济发展的成果以及区域经济的活跃度。通过分析深证指数,可以得到中国经济特别是南方经济的宏观走向,这对投资者和政策制定者而言具有重要意义。

本项目采用了2022年的深证指数数据,主要目的是通过数据分析工具对该数据集进行深入分析和可视化。

二、问题讨论

数据清洗与预处理

数据加载:首先,使用Pandas的read_csv函数加载CSV格式的数据文件。

日期格式转换:将trade_date列中的日期字符串转换为Pandas的datetime对象,这是时间序列分析的重要步骤,因为它允许使用日期作为索引进行高效操作。

缺失值处理:检查数据中是否存在缺失值,如果存在,使用前向填充法(ffill)。这种方法假设数据的连续性,即前一个时间点的观察可以代替缺失值。

读取数据

数据和代码

报告代码数据

# 加载数据
file_path = 'sz_index_2022.csv'  
if os.path.exists(file_path):
    df = pd.read_csv(file_path)
else:
    sys.exit("File not found.")  

 

描述性统计分析

这些描述性统计结果展示了242个观测值的金融指标总结。具体来说,收盘价的平均值为11988.456368,标准差为1004.135569,最低值为10206.638500,最高值为14791.313600。开盘价的平均值为11994.138000,标准差为1023.500263,最低值为10090.983800,最高值为14935.227700。

接下来进行可视化

plt.figure(figsize=(10, 5))
plt.plot(df.index, df['close'], label='Closing Price')  # 绘制收盘价折线图
plt.title('Shenzhen Index 2022 Closing Prices')  # 设置标题
plt.xlabel('Date')  # 设置X轴标签
plt.ylabel('Closing Price')  # 设置Y轴标签
plt.legend()
plt.show()

这个图表展示了2022年深圳指数的收盘价走势。从图中可以看出,整个2022年深圳指数经历了较大的波动:年初至3月,指数从约15000点大幅下跌至约12000点,显示出市场在这一段时间内表现较为疲软。

plt.figure(figsize=(10, 5))
plt.boxplot([df['open'], df['high'], df['low'], df['close']], labels=['Open', 'High', 'Low', 'Close'])  # 绘制箱线图
plt.title('Box Plot of Opening, Highest, Lowest, and Closing Prices')  # 设置标题
plt.show()

 

这个箱线图展示了2022年深圳指数的开盘价、最高价、最低价和收盘价的分布情况。从图中可以看出,开盘价(Open),中位数接近12000点,数据分布较为对称,范围从约10000点到14900点。上方存在一些离群值,表示有几天的开盘价异常高。。。

条形图用于展示不同类别数据的比较。我们绘制了开盘价、最高价、最低价和收盘价的平均值条形图。

avg_prices = [summary_stats[col]['mean'] for col in ['open', 'high', 'low', 'close']]
plt.figure(figsize=(10, 5))
plt.bar(['Open', 'High', 'Low', 'Close'], avg_prices, color=['blue', 'green', 'red', 'orange'])  # 绘制条形图
plt.title('Average Prices')  # 设置标题
plt.xlabel('Price Type')  # 设置X轴标签
plt.ylabel('Average Price')  # 设置Y轴标签
plt.show()

这个条形图展示了开盘价、最高价、最低价和收盘价的平均值。每个价格类型都用不同颜色的条形表示:开盘价(Open)平均开盘价接近12000点。说明市场在开盘时的价格大致稳定在这一水平。 

直方图展示了数据的分布情况。我们绘制了2022年深圳指数收盘价的直方图。

这个直方图展示了2022年深圳指数收盘价的分布情况。收盘价主要集中在11000点到13000点之间。在11000点到12000点之间的频率最高,显示出这一范围内的收盘价出现次数最多。

饼图用于展示各部分占总体的比例。我们绘制了2022年每个季度交易量占全年总交易量的比例。

df['quarter'] = df.index.quarter
volume_by_quarter = df.groupby('quarter')['vol'].sum()  # 计算每季度总成交量
plt.figure(figsize=(10, 5))
plt.pie(volume_by_quarter, labels=['Q1', 'Q2', 'Q3', 'Q4'], autopct='%1.1f%%',
        colors=['gold', 'yellowgreen', 'lightcoral', 'lightskyblue'])  # 绘制饼图
plt.title('Proportion of Total Trading Volume by Quarter')  # 设置标题
plt.show()

其中第一季度占比为25.1%,是全年交易量最高的季度。这一比例表明第一季度的市场交易活动较为活跃。第二季度占比为24.8%,略低于第一季度。这一比例显示第二季度的交易量与第一季度相当,市场活跃度持续。。。 

接下来计算相关矩阵 绘制散点图

# 计算相关矩阵
correlation_matrix = df[['open', 'high', 'low', 'close', 'vol', 'amount']].corr()
print("Correlation matrix:\n", correlation_matrix)

# 绘制散点图
plt.figure(figsize=(12, 8))
for i, predictor in enumerate(['open', 'high', 'low', 'vol', 'amount']):
    plt.subplot(2, 3, i + 1)
    plt.scatter(df[predictor], df['close'], alpha=0.5)
    plt.xlabel(predictor)
    plt.ylabel('Close')
plt.tight_layout()
plt.show()

从图中可以看到,收盘价与开盘价、最高价、最低价之间有很强的线性关系,点几乎沿对角线分布。这表明这些特征之间有高度相关性。而收盘价与交易量和交易金额之间的相关性较低,点的分布较为分散。

 接下来线性回归分析

多元线性回归:建立以开盘价、最高价和最低价为自变量,收盘价为因变量的回归模型。计算并报告每个变量的系数,评估模型的效力和各变量的影响力。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
predictors = ['open', 'high', 'low', 'vol', 'amount']
X = df[predictors].values
y = df['close'].values
# 增加一个截距列
X = np.column_stack((np.ones(X.shape[0]), X))

# 计算回归系数 (beta)
# beta = (X^T * X)^-1 * X^T * y
X_transpose = X.T
beta = np.linalg.inv(X_transpose @ X) @ X_transpose @ y

# 计算预测值
y_pred = X @ beta

图中红色虚线(拟合收盘价)与蓝色实线(实际收盘价)基本重合,这表明模型对收盘价的预测非常准确。在大多数时间段内,拟合值与实际值的波动趋势基本一致。

三、结论

通过对2022年深证指数数据的综合分析,我们得出了以下主要结论:

在数据清洗与预处理方面,我们对数据进行了日期格式转换和缺失值处理,确保了分析的准确性和数据的连续性。这些步骤为后续的时间序列分析和可视化提供了可靠的基础。在描述性统计分析方面,通过计算开盘价、最高价、最低价和收盘价等主要金融指标的平均值、标准差、最大值和最小值,我们对市场的波动情况和价格分布有了基本了解。。。。 

创作不易,希望大家多点赞关注评论!!!(类似代码或报告定制可以私信)

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

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

相关文章

Java教程之IO模式精讲,NIO+BIO

第一章 BIO、NIO、AIO介绍 背景 在java的软件设计开发中,通信架构是不可避免的,我们在进行不同系统或者不同进程之间的数据交互,或 者在高并发下的通信场景下都需要用到网络通信相关的技术,对于一些经验丰富的程序员来说&#x…

从0到1搭建Java开发环境(内涵超详细教程、软件、提供网盘链接直接一步到位!!!!)

软件部分 需要的软件为下面两个: IDEANavicat 需要的可以自行拿(安装教程和软件): 链接:https://pan.baidu.com/s/1y3RoMt0ZapyJsj3P0DPaVA?pwdxr4p 提取码:xr4p 环境部分 需要的环境为以下几个&…

什么是自然语言处理(NLP)?详细解读文本分类、情感分析和机器翻译的核心技术

什么是自然语言处理? 自然语言处理(Natural Language Processing,简称NLP)是人工智能的一个重要分支,旨在让计算机理解、解释和生成人类的自然语言。打个比方,你和Siri对话,或使用谷歌翻译翻译一…

Rocketmq-集群部署(Master-Slave)

使用中间件版本:rocketmq-4.5.2环境介绍及角色划分 这里采用俩台机器做集群的搭建,172.0.0.1 以及 172.0.0.2 服务器172.0.0.1 做为a-master与b-slave。 服务器172.0.0.2 做为b-master与a-slave。 配置讲解图(主要说明区分点) 配置rocketmq环境变量,这里…

【嵌入式CLion】进阶调试——WSL下的Linux体验

说明: 1,这里所指的嵌入式其实是指嵌入式微控制器MCU,即单片机 2,万事开头难,本文目前提供了WSL工具链的搭建,后面会持续更新 一、启用RTOS集成 在搭建WSL工具链之前,先讲一下集成的RTOS功能&a…

产品是应该有生命力的

产品是应该有生命力的 在日新月异的商业环境中,产品被寄予厚望,不仅仅满足基本功能需求,而是要能够自我革新,适应市场和技术的快速变化,以及持续吸引并留住用户。 这种生命力体现在产品的迭代升级能力、对用户需求的精…

计算机毕业设计Flink+Hadoop广告推荐系统 广告预测 广告数据分析可视化 广告爬虫 大数据毕业设计 Spark Hive 深度学习 机器学

专业 小四号宋体 班级 小四号宋体 姓名 小四号宋体 学号 小四号宋体 指导教师 小四号宋体 题目 基于大数据的B站广告投放分析及可视化 (1.内容包括:课题的来源及意义,国内外发展状况,本课题的研究目标、内容、方法、手…

Python Theano库:符号定义与自动微分的神奇魅力!

更多Python学习内容:ipengtao.com Theano是一个Python库,用于定义、优化和评估涉及多维数组的数学表达式。它是深度学习领域的早期先驱之一,广泛用于高性能计算和神经网络的研究与开发。本文将详细介绍Theano库的安装、主要功能、基本操作、高…

AI奥林匹克竞赛:Claude-3.5-Sonnet对决GPT-4o,谁是最聪明的AI?

目录 实验设置 评估对象 评估方法 结果与分析 针对学科的细粒度分析 GPT-4o vs. Claude-3.5-Sonnet GPT-4V vs. Gemini-1.5-Pro 结论 AI技术日新月异,Anthropic公司最新发布的Claude-3.5-Sonnet因在知识型推理、数学推理、编程任务及视觉推理等任务上设立新…

LabVIEW材料样本结构缺陷检测

本文介绍了一种基于LabVIEW的实验室振动特性分析测试装置,通过分析振动特性来检测结构缺陷。文章详细描述了具体案例、硬件型号、工作原理、软件功能以及注意事项。 硬件型号 振动传感器:PCB Piezotronics 352C33加速度计 数据采集卡:NI PXI…

笔灵AI写作:释放创意,提升写作效率的秘诀

内容为王,在内容创作的世界中尤为重要。然而,面对写作时常常感到无从下手:有时缺乏灵感,有时难以表达清楚自己的想法。AI写作助手的出现,为这些问题提供了创新的解决方案,极大地改变了内容创作的过程。 今…

从零开始三天学会微信小程序开发(三)

看到不少入门的小程序开发者不断的问重复性的问题,我们从实战角度开发了这个课程,希望能够帮助大家了解小程序开发。 课程分三天: 第一天:微信小程序开发入门第二天:给小程序接入云端数据第三天:完善我的…

STM32——使用TIM输出比较产生PWM波形控制舵机转角

一、输出比较简介: 只有高级定时器和通用寄存器才有输入捕获/输出比较电路,他们有四个CCR(捕获/比较寄存器),共用一个CNT(计数器),而输出比较功能是用来输出PWM波形的。 红圈部分…

【知识学习】Unity3D中Shader Graph的概念及使用方法示例

Unity3D中的Shader Graph是一个强大的可视化Shader编辑工具,它允许用户通过拖拽和连接节点的方式来创建Shader,而不是通过传统的编写代码的方式。Shader Graph使得Shader的创建过程更加直观和易于理解,特别是对于那些不熟悉Shader语言编程的美…

gitee配置ssh教程

生成公钥 执行命令: ssh-keygen -t rsa查看公钥 cat ~/.ssh/id_rsa.pub这个公钥就是要复制粘贴到Gitee中的ssh公钥。 配置Gitee SSH公钥 来到Gitee的ssh公钥中,配置

git通过命令方式push代码到远程

本地仓库和远程仓库关联操作 通过关联远程分支可以将本地的分支与远程仓库中的分支进行关联,从而实现本地分支与远程分支的同步和交互。 关联远程分支的步骤如下: 1. 首先,使用git remote -v命令查看当前仓库关联的远程仓库。 git remote …

C#语言编写的仅有8KB大小的简易贪吃蛇开源游戏

前言 今天大姚给大家分享一款由C#语言编写的仅有8KB大小的简易贪吃蛇开源游戏:SeeSharpSnake。 项目特点 该仓库中的项目文件和脚本可以用多种不同的配置构建相同的游戏,每个配置生成的输出大小也不同。 项目源码运行 F5 运行 SeeSharpSnake项目&…

Python 面试【★★★★】

欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

安卓短视频去水印v1.7 简洁好用

各大平台视频无水印提取,登录即永久会员! 无水印提取,图片无水印提取 视频旋转,倒放,转gif等功能 链接:https://pan.baidu.com/s/1buoJmAvSFBiRkBmHc7Nn5w?pwd2fu4 提取码:2fu4

考试如果出现汉诺塔问题怎么办?

对于这道题来说 就按照测试案例里的数字进行输入 测试案例用100 那这三只鸡的具体最多能有多少只鸡呢? 用总数除以这只鸡的单价>>>>>>>即为这只鸡最多有 >>>>>>>> n / 单价 修改后 >>>>> 不只适…