[原创][R语言]股票分析实战[2]:周级别涨幅趋势的相关性

[简介]
常用网名: 猪头三
出生日期: 1981.XX.XX
QQ联系: 643439947
个人网站: 80x86汇编小站 https://www.x86asm.org
编程生涯: 2001年~至今[共22年]
职业生涯: 20年
开发语言: C/C++、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python
开发工具: Visual Studio、Delphi、XCode、Eclipse、C++ Builder
技能种类: 逆向 驱动 磁盘 文件
研发领域: Windows应用软件安全/Windows系统内核安全/Windows系统磁盘数据安全/macOS应用软件安全
项目经历: 磁盘性能优化/文件系统数据恢复/文件信息采集/敏感文件监测跟踪/网络安全检测

[序言]
从上一章内容: [原创][R语言]股票分析实战[1]:周级别涨幅趋势的相关性-CSDN博客, 通过使用卡方独立检测chisq.test()发现"涨幅(RC)"和"跟周1~周5(DW)"的两者关系是独立的, 也就是说没有相互影响的可能性. 那么这时候, 是不是要放弃了呢?其实数据分析工作, 还没做完, 不要忘记了, xtabs()函数生成的是频率表, 那么也就说除了"涨幅(RC)"和"周1~周5(DW)"这2个变量之外, 还有第3个变量, 那就是"频率(Freq)"

[继续探索"涨幅(RC)", "周1~周5(DW)", "频率(Freq)"的交叉关系]
要一次性分析这3个变量的交叉关系, 是否有内在的隐藏关系, 那么可以使用gmodels包中的CrossTable()函数, 查看"频率(Freq)"的"预期值"和"卡方贡献值", 通过这查看这2个数值, 可以观察出"频率(Freq)"与"涨幅(RC)", "频率(Freq)"与"周1~周5(DW)"的交叉关系.

library(gmodels)
CrossTable(stock_demo_rc_token$RC, stock_demo_rc_token$DW, expected = TRUE, prop.r = FALSE, prop.c = FALSE, prop.t = FALSE)

通过上面的代码, 就可以显示出"频率(Freq)"与"涨幅(RC)", "频率(Freq)"与"周1~周5(DW)"的交叉关系, 并且很容易看出异常值, 如下图说明:

1> 红圈表示: 实际频率 大于 预期频率 表示 正方向活跃
2> 绿圈表示: 实际频率 小于 预取频率 表示 反方向活跃
3> 红圈和绿圈 都有共同的特征: 卡方贡献值 都大于 1.0, 表示异动

那么从这3个描述在配合下图来看, 很明显周1~周5都有圈圈, 另外周3与周5有2个圈圈, 这种情况表明 "频率(Freq)" 与 "涨幅(RC)"和"周1~周5(DW)" 都有关系, 且还可以表示交易是否活跃的关系, 大家可要认真看如下的描述, 这是非常关键的.

1> 可以发现周1~周2的活跃度是在%6涨幅区间.
2> 可以发现周3~周5的活跃度是在7%涨幅以上区间, 甚至在周5, 10%涨幅的活跃度还不错, 但可惜是反方向活跃, 也就意味着是冲高出货.
3> 可以发现周3和周5, 比 周1, 周2, 周4 活跃. 因为周3和周5有2个圈圈.
4> 可以发现周1, 周2, 周4活跃度持平, 但是周4涨幅更大.
太令人兴奋了, 初步总结出一个规律: 周3, 周4, 周5的交易比周1, 周2活跃. (但别高兴, 虽然从数据看出了一点蛛丝马迹, 但是还需要继续分析, "频率(Freq)"与"涨幅(RC)", "频率(Freq)"与"周1~周5(DW)" 哪个 关系最密切?)

["频率(Freq)"与"涨幅(RC)", "频率(Freq)"与"周1~周5(DW)" 哪个 关系最密切?]
为了研究这个关系, 我们需要为这3个变量生成一个一维的数据表, 包含3列分别是: RC, DW, Freq. 代码如下:

stock_demo_rc_table <- xtabs(~ RC + DW, stock_demo_rc_token) # 生成频率表
stock_demo_rc_table_Freq <- as.data.frame(stock_demo_rc_table) # 把频率表转换为具有3列的矩阵
stock_demo_rc_table_Freq$RC <- as.integer(stock_demo_rc_table_Freq$RC) # 把RC因子转换为int型
stock_demo_rc_table_Freq$DW <- as.integer(stock_demo_rc_table_Freq$DW) # 把DW因子转换为int型

通过执行上面的代码,可以得到如下的表格.


非常重要, 再次查看"频率(Freq)", "涨幅(RC)", "周1~周5(DW)"的交叉关系, 也就是相互关系. 执行如下并可以看到一些数据

cor(stock_demo_rc_table_Freq)

          RC             DW             Freq
RC    1.0000000 0.0000000 -0.1937841
DW    0.0000000 1.0000000  0.0504346
Freq -0.1937841 0.0504346  1.0000000

那么如何看上面的数据呢?下面认真看如下描述

1> "频率(Freq)"与"涨幅(RC)" 关系值是: 0.1937841 (这里先不考虑正负关系)
2>  "频率(Freq)"与"周1~周5(DW)" 关系值是: 0.0504346
3> "涨幅(RC)"与"周1~周5(DW)" 没有任何关系 (这点跟用chisq.test()验证是一样的结果)

很显然, "频率(Freq)"与"涨幅(RC)"关系最密切, 因为 0.1937841 > 0.0504346, 但是他们是负方向关系. 也就是说: 当"频率(Freq)"增大的时候, "涨幅(RC)"就会降低. 反之 "频率(Freq)"减小的时候, 涨幅(RC)"就会增大. 这就非常贴切, 非常符合现实中的炒股情况. 在大A股市场, 确实涨停的股票就很少, 也就是说涨停的频率不高或者很低. 那么另外看看"涨幅(RC)"与"周1~周5(DW)"的关系, 很显然2者关系很弱, 没有太大显著关系, 但还好有一点好的迹象, 那就是他们是正方向的, 也就是说随着时间周1到周5的移动,  "频率(Freq)"会慢慢增加. 这又是一个关键的信息了, 也就说股票交易的活跃度随着时间向周5推移, 活跃度缓慢提升. 

[最后总体概括: 用CrossTable()分析出来的数据 与 cor() 是一致的, 关键信息如下]

1> 根据CrossTable()分析出来的关键信息是: 周1~周2交易不活跃, 周3开始启动, 周5交易活跃度达到最强
3> 根据cor()分析出来的关键是: 交易活跃度随着时间推进, 而变强.

[结尾]
通过上面的分析, 都是通过数值来进行挖掘, 那么通过数值挖掘出来的规律, 用图形来显示, 是否也是一样的特征规律呢? 下一篇我们可以通过图形进一步观察已经分析出来的关键信息.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux 应用开发笔记---【信号:基础】

1.基本概念 信号是发生事件时对进程的通知机制&#xff0c;也可以称为软件中断 信号的目的是用来通信的 1.硬件发生异常&#xff0c;将错误信息通知给内核&#xff0c;然后内核将相关的信号给相关的进程 2.在终端输入特殊字符产生特殊信号 3.进程调用kill()将任意信号发送…

springboot使用EasyExcel导出数据

springboot使用EasyExcel导出数据 简介&#xff1a;本文主要描述使用EasyExcel导出数据的简单流程&#xff0c;事实上企业需求一般都比较简单&#xff0c;就是表单数据输出到Excel即可&#xff0c;如果数据量大的话&#xff0c;为了避免占用内存过高或者OOM&#xff0c;使用多…

DeciLM-7B:突破极限,高效率、高精准度的70亿参数AI模型

引言 在人工智能领域&#xff0c;语言模型的发展速度令人瞩目。Deci团队最近推出了一款具有革命性意义的语言模型——DeciLM-7B。这款模型在速度和精确度上都实现了显著的突破&#xff0c;以其70亿参数的规模&#xff0c;在语言模型的竞争中脱颖而出。 Huggingface模型下载&am…

Oracle EBS PAC“定期成本分配处理程序”报错:30004不存在为成本类型、成本组和法人主体定义的帐户

Oracle EBS版本&#xff1a; RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.6 问题症状&#xff1a; 中文环境&#xff1a; 30004不存在为成本类型、成本组和法人主体定义的帐户。 CSTPALPC.dyn_proc_call : Error Calling Package 30004不存在为成本类型、成本组和法人主…

牛客网 DP34 【模板】前缀和(优质解法)

代码&#xff1a; import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextInt()) { // 注…

【数据分享】2019-2023年我国区县逐年二手房房价数据(Excel/Shp格式)

房价是一个区域发展程度的重要体现&#xff0c;一个区域的房价越高通常代表这个区域越发达&#xff0c;对于人口的吸引力越大&#xff01;因此&#xff0c;房价数据是我们在各项城市研究中都非常常用的数据&#xff01;之前我们分享了2019—2023年我国区县逐月的二手房房价数据…

【OpenGL/WebGL】Shader中如何获取摄像机视口的宽高

一、需求背景 在有些需求中&#xff0c;物体的大小是随着摄像机的视口的大小而变化的。如下图中&#xff0c;蓝色小方块&#xff0c;随着不断放大&#xff0c;其大小有个最大值&#xff0c;并不会无限放大。 这种实现的原理是在Shader中&#xff0c;不断根据摄像机近平面尺寸大…

实验记录:深度学习模型收敛速度慢有哪些原因

深度学习模型收敛速度慢有哪些原因&#xff1f; 学习率设置不当&#xff1a; 学习率是算法中一个重要的超参数&#xff0c;它控制模型参数在每次迭代中的更新幅度。如果学习率过大&#xff0c;可能会导致模型在训练过程中的振荡&#xff0c;进而影响到收敛速度&#xff1b;如果…

leetcode刷题日志-383赎金信

思路&#xff1a;分别用两个map记录ransomNote和magazine中的字符以及出现的次数。最后遍历记录ransomNote的map&#xff0c;如果ransomNote的map中出现的magazine的map中没有出现或者出现的次数小于ransomNote的map则返回false&#xff0c;否则返回true&#xff1b; class So…

ffmpeg6.0-ffplay.c源码分析(三)之read_thread和stream_component_open函数详细分析

文章目录 第一部分:for (;;) {}之前stream_component_open函数解析第二部分:for (;;) {}之内第三部分:for (;;) {}之后关注公众号看全文: 看名字就可以知道这是读数据的线程。在前面的文章中是不是一直没看到avformat_open_input、av_read_frame之类的函数,没错都在这个…

Element 介绍

Element 介绍 Vue 快速入门 Vue 常见组件 表格 分页组件 其他自己去看吧 链接: 其他组件

数据结构之<图>的介绍

图&#xff08;Graph&#xff09;的概念&#xff1a; 在数据结构中&#xff0c;图是由节点&#xff08;顶点&#xff09;和边组成的非线性数据结构。图用于表示不同对象之间的关系&#xff0c;其中节点表示对象&#xff0c;边表示对象之间的连接或关系。 1.图的基本组成元素&a…

小项目:迷宫二

目录 引言一、题目描述二、解题思路三、代码实现四、测试 引言 这个迷宫项目是今天参加学校的一个比赛出的题目&#xff0c;从早上九点基本搞到了四五点才完成&#xff0c;其实写出来发现基本思路其实挺简单的&#xff0c;就是想不好想&#xff0c;真的要各种的尝试&#xff0…

设计模式(2)--对象创建(5)--单件

1. 意图 保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 2. 一种角色 单件(Singleton) 3. 优点 3.1 对唯一实例的受控访问 3.2 缩小名空间(对全局变量的改进) 3.3 允许对操作和表示精化(可以有子类) 3.4 允许可变数目的实例 3.5 比类操作更灵活 4. 缺点…

ReenterLock重入锁

synchronized就是一种最简单的控制方法&#xff0c;它决定了一个线程释放可以访问临界区资源。 同时&#xff0c;Object.wait()方法和Object.notify()方法起到了线程等待和通知的作用。 ReenterLock重入锁可以完全替代关键字Synchoronized.重入锁是Synchoronized、Object.wait(…

reactive数据不响应

我们知道&#xff0c;reactive函数用于创建对象等复杂数据的响应式代理对象&#xff0c;当该对象的属性发生变化时&#xff0c;会自动触发视图更新。 但在Vue 3中&#xff0c;当我们使用reactive创建的对象或数组进行赋值时&#xff0c;尽管能够完成正常的赋值操作&#xff0c…

RK3568平台(网络篇)添加网络交换芯片RTL8306M

一.硬件原理图 分析&#xff1a; 该交换芯片支持I2C、SPI、mdio通信&#xff0c;但是看ast1520的uboot代码采用的是mdio去通信phy芯片的&#xff0c;所以暂时也先采用mdio的方式&#xff0c;需要配置相应的引脚才可以配置成mdio通信模式&#xff0c;具体的配置硬件工程师解决。…

HarmonyOS开发实战:如何实现一个运动排名榜页面

HarmonyOS开发实战&#xff1a;如何实现一个运动排名榜页面 代码仓库&#xff1a; 运动排名榜页面 项目介绍 本项目使用声明式语法和组件化基础知识&#xff0c;搭建一个可刷新的排行榜页面。在排行榜页面中&#xff0c;使用循环渲染控制语法来实现列表数据渲染&#xff0c;…

linux添加环境变量

一、查看当前环境变量 echo $PATH 二、将工作空间添加到环境变量&#xff0c;vim是编辑器&#xff0c;可以换成别的编辑器&#xff0c;vim编辑器的使用法可以百度一下 vim ~/.bashrc编辑器添加&#xff1a; source ~/scan_ws/devel/setup.bash

os功能模板

【 一 】简介 os 就是 “operating system” 的缩写&#xff0c;顾名思义&#xff0c;os 模块提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用 os 模块&#xff0c;一方面可以方便地与操作系统进行交互&#xff0c;另一方面页可以极大增强代码的可移植性。如果该…
最新文章