股票数据集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 使用注解提高…

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

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

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

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

关于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;应用程序编程接口&…

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

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

例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.单值二叉树 …

计网总结☞网络层

.................................................. 思维导图 ........................................................... 【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…

笔记95:车辆横向动力学方程转化为误差形式 -- 详细推导过程

1. 非误差型车辆横向动力学方程 注&#xff1a;关于轮胎侧偏刚度的正负 深蓝课程推导得到的车辆横向动力学返程使用的轮胎侧偏刚度是默认为正数&#xff1b;老王课程推导得到的车辆横向动力学方程使用的轮胎侧偏刚度是默认为负数&#xff1b; 1.1 深蓝课程推导得到的方程&…

如何计算 GPT 的 Tokens 数量?

基本介绍 随着人工智能大模型技术的迅速发展&#xff0c;一种创新的计费模式正在逐渐普及&#xff0c;即以“令牌”&#xff08;Token&#xff09;作为衡量使用成本的单位。那么&#xff0c;究竟什么是Token呢&#xff1f; Token 是一种将自然语言文本转化为计算机可以理解的…

kafka集成flink api编写教程

1.引入依赖&#xff08;pox.xml&#xff09; <dependencies><dependency><groupId>org.apache.flink</groupId><artifactId>flink-java</artifactId><version>1.13.6</version></dependency><dependency><gro…

【C++ | 拷贝赋值运算符函数】一文了解C++的 拷贝赋值运算符函数

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a;2024-06-09 1…

深度网络及经典网络简介

深度网络及经典网络简介 导语加深网络一个更深的CNN提高识别精度Data Augmentation 层的加深 经典网络VGGGoogLeNetResNet 高速学习迁移学习GPU分布式学习计算位缩减 强化学习总结参考文献 导语 深度学习简单来说&#xff0c;就是加深了层数的神经网络&#xff0c;前面已经提到…

Java:110-SpringMVC的底层原理(上篇)

SpringMVC的底层原理 在前面我们学习了SpringMVC的使用&#xff08;67章博客开始&#xff09;&#xff0c;现在开始说明他的原理&#xff08;实际上更多的细节只存在67章博客中&#xff0c;这篇博客只是讲一点深度&#xff0c;重复的东西尽量少说明点&#xff09; MVC 体系结…

深入理解指针(三)

一、指针运算 1.1指针-整数 下面我们来看一个指针加整数的例子&#xff1a; #include<stdio.h> int main() { int arr[10] { 1,2,3,4,5,6,7,8,9,10 }; int* p &arr[0]; int i 0; int sz sizeof(arr) / sizeof(arr[0]); for (i 0; i < …