运用R语言、Tushare对单支股票进行回归分析

2024-03-08 02:50

本文主要是介绍运用R语言、Tushare对单支股票进行回归分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、数据描述

(一)数据的获取

(二)数据的预处理及分析

二、初步回归分析

(一)模型及变量

(二)参数估计

(三)假设检验

1. 回归显著性检验

2. 回归系数的显著性检验

3. 回归子集的显著性检验

三、变量选择

(一)最优子集选择

(二)逐步回归

(三)最终模型

(四)假设检验

1. 回归显著性检验

2. 回归系数的显著性检验

(六)残差分析

四、多重共线性

(一)诊断

1. 相关系数

2. 方差膨胀因子(VIF)

3. 特征系统分析

(二)主成分回归

1. 主成分分析

2. 主成分回归

(三)岭回归

五、模型效果及结果分析

(一)训练集

(二)测试集


一、数据描述

(一)数据的获取

        本文选取2020年6月1日到2021年9月30日之间顺丰控股股票的相关数据作为训练集、2021年10月8日到2021年12月17日的顺丰控股股票的相关数据作为测试集,其中指标为交易日期(trade_date)、股票代码(ts_code)、开盘价(open)、最高价(high)、最低价(low)、收盘价(close)、前一日收盘价(pre_close)、涨跌额(change)、涨跌幅(pct_chg)、成交量(vol)、成交额(amount)及换手率(turnover_rate)。以上均通过tushare网站(个人ID:411335)的数据接口运用python获取:

import tushare as ts
import pandas as pdts.set_token('Your Token') # 输入个人Tushare接口
pro=ts.pro_api()df1 = ts.pro_bar(ts_code='002352.SZ', adj='qfq', start_date='20200601', end_date='20210930',factors=['tor'])
df1 = df1[::-1]
df1.to_csv("data_train.csv")df2 = ts.pro_bar(ts_code='002352.SZ', adj='qfq', start_date='20211008', end_date='20211217',factors=['tor'])
df2 = df2[::-1]
df2.to_csv("data_test.csv")

(二)数据的预处理及分析

        首先,本文对原始数据进行筛选,保留了研究所需数据,删除了多余及缺失数据。接着,由于本文所感兴趣的是前一日的数据对后一日股票价格的影响,因此将后一日的开盘价及收盘价添加进了数据集中。最后,由于解释变量的数据数量及差异较大,本文对其进行了标准化处理:

# 训练集
train.org = read.csv("data_train.csv")[,-1] 
train.org$trade_date = as.Date(as.character(train.org[,1]),format="%Y%m%d")library(dplyr)
train.need = dplyr::select(train.org, open:close, amount, turnover_rate) # 数据筛选train.Y = train.need$close[-1]
train.X = train.need[-dim(train.need)[1], ]
X.next_open = train.need$open[-1]train.data = cbind(train.X, next_open = X.next_open, next_close = train.Y) # 最终数据
train.scale = data.frame(scale(train.data)) # 标准化数据
head(train.scale)# 测试集
test.org = read.csv("data_test.csv")[,-1]
test.org$trade_date = as.Date(as.character(test.org[,1]),format="%Y%m%d")test.need = dplyr::select(test.org, open:close, amount, turnover_rate)test.Y = test.need$close[-1]
test.X = test.need[-dim(test.need)[1], ]
X.next_open = test.need$open[-1]test.data = cbind(test.X, next_open = X.next_open, next_close = test.Y)
test.scale = data.frame(scale(test.data))
head(test.scale)

        对训练集数据做初步描述性统计,以方便后续分析:

library(ggplot2)
library(ggthemes)# 后一日收盘价走势
p1 = ggplot(train.org) + geom_line(aes(x=trade_date, y=close), lwd=1, col="darkblue") + labs(x="Trade Date",y = "Close Price (RMB)") + theme_economist() + theme(axis.title = element_text(face = "bold"))
p1# 每日收益情况
p2 = train.org %>% mutate(bd=ifelse(pct_chg>=0, ">=0", "<0")) %>% ggplot(aes(x=bd)) + geom_bar(fill=c("green4", "red3"), width=0.3) + labs(x="Profit", y="Count")
p2# 每日涨跌额分布情况
p3 = ggplot(train.org) + geom_density(aes(x=change,colour=I("royalblue")), lwd=1)+labs(x="Difference",y = "Density")
p3

输出:

图1 后一日收盘价走势图

图2 每日收益情况

图3 每日涨跌额分布曲线 

        可以看到,训练集中的数据涨跌次数基本持平,且近似呈现中心分布。

二、初步回归分析

(一)模型及变量

        初步模型为:

这篇关于运用R语言、Tushare对单支股票进行回归分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

poj 2431 poj 3253 优先队列的运用

poj 2431: 题意: 一条路起点为0, 终点为l。 卡车初始时在0点,并且有p升油,假设油箱无限大。 给n个加油站,每个加油站距离终点 l 距离为 x[i],可以加的油量为fuel[i]。 问最少加几次油可以到达终点,若不能到达,输出-1。 解析: 《挑战程序设计竞赛》: “在卡车开往终点的途中,只有在加油站才可以加油。但是,如果认为“在到达加油站i时,就获得了一

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

MOLE 2.5 分析分子通道和孔隙

软件介绍 生物大分子通道和孔隙在生物学中发挥着重要作用,例如在分子识别和酶底物特异性方面。 我们介绍了一种名为 MOLE 2.5 的高级软件工具,该工具旨在分析分子通道和孔隙。 与其他可用软件工具的基准测试表明,MOLE 2.5 相比更快、更强大、功能更丰富。作为一项新功能,MOLE 2.5 可以估算已识别通道的物理化学性质。 软件下载 https://pan.quark.cn/s/57

衡石分析平台使用手册-单机安装及启动

单机安装及启动​ 本文讲述如何在单机环境下进行 HENGSHI SENSE 安装的操作过程。 在安装前请确认网络环境,如果是隔离环境,无法连接互联网时,请先按照 离线环境安装依赖的指导进行依赖包的安装,然后按照本文的指导继续操作。如果网络环境可以连接互联网,请直接按照本文的指导进行安装。 准备工作​ 请参考安装环境文档准备安装环境。 配置用户与安装目录。 在操作前请检查您是否有 sud

线性因子模型 - 独立分量分析(ICA)篇

序言 线性因子模型是数据分析与机器学习中的一类重要模型,它们通过引入潜变量( latent variables \text{latent variables} latent variables)来更好地表征数据。其中,独立分量分析( ICA \text{ICA} ICA)作为线性因子模型的一种,以其独特的视角和广泛的应用领域而备受关注。 ICA \text{ICA} ICA旨在将观察到的复杂信号