股票数据集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

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别