股票数据集2-纳斯达克NASDAQ 100 分析

1. 数据清洗

  • 用邻近均值的方法,去掉Non_Padding中的NaN数据

    • 这里没用df.fillna(), 因为其只有前向(ffill )和 后向 (bfill) 插值,不适合大量连续的NaN

    • pd转换为np,写一个函数, 返回np数组的空值,lambda的匿名函数返回y轴空值的索引

代码和输出如下:

#数据清洗,去除NaN数据,用邻近均值做填充(padding)
df = pd.read_csv(full) # nrows=3
columns = df.columns
print(df.shape)
print(df.columns)print(df.iloc[:5,:8])
def nan_helper(y):return np.isnan(y), lambda z: z.nonzero()[0]data = df.to_numpy()
for col in range(data.shape[1]):nans, x = nan_helper(data[:,col])data[nans,col] = np.interp(x(nans),x(~nans),data[~nans,col])df = pd.DataFrame(data,columns = columns)
print(df[:5,:8]) # .round(4)

在这里插入图片描述

2.数据可视化

  • 画出n个公司的走势,对比指数的走势
    在这里插入图片描述
    在这里插入图片描述
  • 画出index, date, close, high, low, open, volume的走势,分析close与其他特征

单只股票AAL的3天走势图(2016-07-26-29),共七个特征:
在这里插入图片描述

  • 特征1是连续时间,特征2是当天时间

  • 后面四个是股价特征(收盘价、最高价、最低价、开盘价),其都是1分钟内的特征值,所以整体相似

  • 最后一个是成交量

3.特征选择-相关性分析

3.0 前后特征选择

特征作为算法模型的输入,可以通过一种最原始的方法逐步筛选出有效特征

  • 前向选择

    从0开始,根据模型性能表现,逐步添加重要特征

  • 后向选择

    相反,从满特征开始,逐各剔除不重要特征

3.1 线性相关系数

  • pearson : standard correlation coefficient
  • spearman : Spearman rank correlation
  • kendall : Kendall Tau correlation coefficient

3.1.1 Person (皮尔逊相关系数 )

皮尔逊相关系数(Pearson correlation coefficient)是衡量两个连续变量之间线性关系强度和方向的统计量。

它是一个介于 -1 和 1 之间的值,其中:

  • 当两个变量完全正相关时,皮尔逊相关系数为 1。
  • 当两个变量完全负相关时,皮尔逊相关系数为 -1。
  • 当两个变量之间没有线性关系时,皮尔逊相关系数接近于 0。

代码:

correlations = df.corr(method=‘pearson’)[‘NDX’].iloc[:-1] # Pearson, NDX就是 Nasdaq-100指数

分析此相关系数,可以将正负相关性较小特征股票剔除,如 [-0.25, 0.25]以内的股票
在这里插入图片描述

3.1.2 Spearman (斯皮尔曼相关系数)

correlations = df.corr(method=‘spearman’)[‘NDX’].iloc[:-1] # Spearman

斯皮尔曼相关系数(Spearman correlation coefficient)是一种非参数统计量,用于衡量两个变量之间的相关性,不要求变量之间的是线性关键。

Spearman通过比较变量的等级顺序来衡量它们之间的相关性。

斯皮尔曼相关系数的取值范围为 -1 到 1,其中:

  • 当两个变量完全正相关时,斯皮尔曼相关系数为 1。

  • 当两个变量完全负相关时,斯皮尔曼相关系数为 -1。

  • 当两个变量之间没有单调关系时,斯皮尔曼相关系数接近于 0。

与皮尔逊相关系数不同,斯皮尔曼相关系数可以发现变量之间的任何单调关系,不仅限于线性的递增或递减关系。

因此,相比Person, 此方法算出的“不相关”股票更多,如图:
在这里插入图片描述

3.1.3 Kendall (秩相关系数)

correlations = df.corr(method=‘kendall’)[‘NDX’].iloc[:-1] # Kendall
在这里插入图片描述

Kendall tau是一种用于衡量两个变量之间的非线性关系的统计量。它衡量了两个变量的等级之间的协调性,即它们的等级排名是否是一致的。

Kendall秩相关系数的计算方法是Spearman斯皮尔曼相关系数的改进,但不同之处在于它考虑了等级之间的对比对数(concordant pairs)和不一致对(discordant pairs)。

Kendall在处理有序分类数据或评级数据等情况时更有效,特别是当数据存在等级关系但不满足线性相关的假设时。

Kendall的计算量要大一些(慢),整体结果和Spearman相同:
在这里插入图片描述
后续特征分析还有:

3.2 互信息

Entropy & 熵

3.3 梯度提升树 (Gradient Boosting Trees)

XGBoost (eXtreme Gradient Boosting)梯度下降分析

3.4 主成分分析PCA

协方差矩阵的特征值

对3.3和3.4感兴趣的可以订阅支持我的微信公众号:

股票数据集2-纳斯达克NASDAQ 100 分析

  • https://mp.weixin.qq.com/s/8Xhe0ir7QEWIYmtThqo0ew

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

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

相关文章

IDEA配置mybatis-config.xml模板文件

IDEA配置mybatis-config.xml模板文件 File>>Settings>>File and Code Templates 创建mybatis-config.xml模板 模板内容取自mybatis官网 mybatis官网 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configurationPUBLIC &qu…

【Java】解决Java报错:NullPointerException

文章目录 引言1. 错误详解2. 常见的出错场景2.1 调用 null 对象的实例方法2.2 访问 null 对象的属性2.3 自动拆箱引起的 NullPointerException 3. 解决方案3.1 使用条件判断防止 NullPointerException3.2 优先使用Optional类 4. 预防措施4.1 在方法入口进行校验4.2 使用注解提高…

Vue中的diff算法总结

Vue.js 的核心特性之一是它的高效的 DOM 更新策略&#xff0c;这主要归功于其内部使用的 diff 算法&#xff08;也称为“虚拟 DOM diffing”&#xff09;。Vue 的 diff 算法与 React 的有一些相似之处&#xff0c;但也有一些针对 Vue 特性的优化。以下是 Vue 中 diff 算法的一些…

如何将 Windows图片查看器的背景颜色改成浅色(灰白色)?

现在大家基本都在使用Win10系统&#xff0c;我们在双击查看图片时&#xff0c;系统默认使用系统自带的图片&#xff08;照片&#xff09;查看器去打开图片。图片查看器的背景色默认是黑色的&#xff0c;如下所示&#xff1a;&#xff08;因为大家可能会遇到同样的问题&#xff…

【Linux】进程5——进程优先级

1.进程优先级 1.1.什么是进程优先级 cpu资源分配的先后顺序&#xff0c;就是指进程的优先权&#xff08;priority&#xff09;。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用&#xff0c;可以改善系统性能。还可以把进程运行到指定的CPU上&#x…

【蓝桥杯】C语言常见数据结构

&#x1f338;个人主页&#xff1a;Yang-ai-cao &#x1f4d5;系列专栏&#xff1a;蓝桥杯 C语言 &#x1f34d;博学而日参省乎己&#xff0c;知明而行无过矣 目录 &#x1f338;个人主页&#xff1a;Yang-ai-cao &#x1f4d5;系列专栏&#xff1a;蓝桥杯 C语言 &…

关于CodeCombat(沙漠)布朗噪声的攻略

关于CodeCombat(沙漠)//布朗噪声的攻略 总的来说怎么猥琐怎么来 1.走到墙角骷髅看不到的位置&#xff0c;让宠物制造噪音&#xff0c;然后英雄走过去&#xff0c;就是这样没错&#xff08;坐标之类能明白) 最后看看运行结果吧 Rec 0002 希望天天开心

Java SE(Java Platform, Standard Edition)

Java SE&#xff08;Java Platform, Standard Edition&#xff09; 是Java平台的一个版本&#xff0c;面向桌面应用程序、服务器和嵌入式环境。Java SE提供了开发和运行Java应用程序的基础API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&…

Spring Boot 深度学习笔记:从入门到精通的全面指南

Spring Boot 是由 Pivotal 团队开发的基于 Spring 框架的一个项目。它的目标是简化新 Spring 应用的初始搭建和开发过程&#xff0c;通过提供一系列默认配置和快速启动的能力&#xff0c;使开发者能够快速上手&#xff0c;减少配置的复杂性。这篇学习笔记将详细介绍 Spring Boo…

添加Microsoft.VisualStudio.TestTools.UnitTesting命名空间

创建“单元测试项目”&#xff0c;则自动添加 Microsoft.VisualStudio.TestTools.UnitTesting 命名空间

文心一言使用技巧

前言 文心一言是一款基于人工智能技术的自然语言处理工具&#xff0c;它可以帮助用户生成、编辑和优化各种类型的文本。无论是写作、翻译、总结&#xff0c;还是进行信息提取和数据分析&#xff0c;文心一言都能提供强大的支持。本文将详细介绍文心一言的使用技巧&#xff0c;…

例54:Draw使用

建立一个控制台工程&#xff0c;输入代码&#xff1a; Screen 13 移动到&#xff08;50,50&#xff09;而不绘图 Draw "BM 50,50" B:移动但不绘制,M:移动到指定位置 将绘图颜色设置为2&#xff08;绿色&#xff09; Draw "C2" C将颜色改为n …

计算机网络 —— 网络层 (路由协议)

计算机网络 —— 网络层 &#xff08;路由协议&#xff09; 什么是路由协议内部网关协议RIP关键特性 OSPF主要特点 外部网关协议BGP关键特性 我们今天来看路由协议&#xff1a; 什么是路由协议 路由协议是网络设备&#xff08;主要是路由器&#xff09;用来决定数据包在网络中…

【Python入门与进阶】Anaconda环境配置

目录 1.Conda换源 2.pip换源 3.环境管理 4.可视化界面完成上述操作 1.Conda换源 1.1.打开Anaconda Powershell Prompt 1.2.在界面中输入以下命名&#xff08;加入清华源并设置搜索优先级&#xff09;&#xff1a; conda config --add channels https://mirrors.ustc.edu.…

【数据结构】二叉树专题

前言 本篇博客我们来看一些二叉树的经典题型&#xff0c;也是对上篇博客的补充 &#x1f493; 个人主页&#xff1a;小张同学zkf ⏩ 文章专栏&#xff1a;数据结构 若有问题 评论区见&#x1f4dd; &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐文章 ​ 目录 1.单值二叉树 …

谈谈微服务之间的授权方案

微服务架构中&#xff0c;服务与服务之间的授权是一个关键问题&#xff0c;需要确保服务间的调用是安全且符合权限控制的。以下是一些常见的微服务之间授权方案&#xff1a; API网关: 在微服务架构中&#xff0c;API网关通常作为所有服务的入口点。它可以处理身份验证和授权&a…

计网总结☞网络层

.................................................. 思维导图 ........................................................... 【Wan口和Lan口】 WAN口&#xff08;Wide Area Network port&#xff09;&#xff1a; 1)用于连接外部网络&#xff0c;如互联…

stm32中外部中断控制Led亮灭

说明&#xff1a;外部中断的方式通过按键来实现&#xff0c;stm32的配置为江科大stm32教程中的配置。 1.内容&#xff1a; 通过中断的方式&#xff0c;按下B15按键Led亮&#xff0c;按下B13按键Led灭。 2.硬件设计&#xff1a; 3.代码&#xff1a; 3.1中断底层 EXTI.c #i…

1164. 指定日期的产品价格

1164. 指定日期的产品价格 题目链接&#xff1a;1164. 指定日期的产品价格 代码如下&#xff1a; # Write your MySQL query statement below select p1.product_id,ifnull(new_price,10) as price from (select distinct product_idfrom Products )as p1 -- 所有的产品 left…

SpringBoot整合RabbitMQ消息中间件,实现延迟队列和死信队列

在现代的分布式系统中&#xff0c;消息队列作为一种重要的中间件&#xff0c;广泛应用于系统解耦、流量削峰、异步处理等场景。而RabbitMQ作为其中一款流行的消息队列中间件&#xff0c;因其高性能和丰富的功能受到众多开发者的青睐。本文将详细介绍如何在SpringBoot项目中整合…