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

2024-06-09 19:28

本文主要是介绍股票数据集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

这篇关于股票数据集2-纳斯达克NASDAQ 100 分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1046082

相关文章

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用