使用横截面回归和时间序列回归进行回测
文章目录
- 1. 对收益进行横截面回归
- 单变量回归
- 多变量回归
- 2.对每个资产的收益进行时间序列回归
1. 对收益进行横截面回归
(i)仅信号1(ii)仅信号2(iii)两个信号
import pandas as pd
import numpy as np
import statsmodels.api as smfile = "data/PS_3_Exercise_XS_Regressions.xlsx"
xrets = pd.read_excel(file, sheet_name="excess_returns", index_col="year")
xrets.head()
signal_1 = pd.read_excel(file, sheet_name="signal_1", index_col="year")
signal_2 = pd.read_excel(file, sheet_name="signal_2", index_col="year")
单变量回归
T = len(xrets)#多少年
slopes_1 = {}
slopes_2 = {}
for t in range(1,T):y = xrets.iloc[t,:]x_1 = signal_1.iloc[t-1,:]reg_1 = sm.OLS(y, sm.add_constant(x_1)).fit()x_2 = signal_2.iloc[t-1,:]reg_2 = sm.OLS(y, sm.add_constant(x_2)).fit()# 更新系数year = xrets.index[t]slopes_1.update({year: reg_1.params.iloc[1]})slopes_2.update({year: reg_2.params.iloc[1]})uv_slopes = pd.DataFrame([slopes_1, slopes_2], index=["Signal 1", "Signal 2"])
uv_slopes
多变量回归
mv_slopes = {}
for t in range(1,T):y = xrets.iloc[t,:]x = pd.DataFrame([signal_1.iloc[t-1,:],signal_2.iloc[t-1,:]],index = ["Signal 1", "Signal 2"]).Treg_3 = sm.OLS(y, sm.add_constant(x)).fit()year = xrets.index[t]#mv_slopes.update({year: reg_3.params.iloc[1]}) 不对 定位1只提取了signal_1前面的系数mv_slopes.update({year: reg_3.params.loc[["Signal 1", "Signal 2"]]})
mv_slopes = pd.DataFrame(mv_slopes)
mv_slopes
uv_slopes.T.plot.hist();
mv_slopes.T.plot.hist();
2.对每个资产的收益进行时间序列回归
# 资产数量
N = xrets.shape[1]
signal_1_lagged = signal_1.shift(1)
signal_2_lagged = signal_2.shift(1)
ts_slopes = {}
for n in range(N): #这里包括了 A1 y = xrets.iloc[:,n]x = pd.DataFrame([signal_1_lagged.iloc[:,n],signal_2_lagged.iloc[:,n]],index = ["Signal 1", "Signal 2"]).Treg_4 = sm.OLS(y, sm.add_constant(x),missing="drop").fit()# 记得drop nansecurity = xrets.columns[n]ts_slopes.update({security: reg_4.params.loc[["Signal 1", "Signal 2"]]})
ts_slopes = pd.DataFrame(ts_slopes)
ts_slopes
使用横截面回归和时间序列回归进行回测相关推荐
- 手把手教你python实现量价形态选股知乎_【手把手教你】Python实现基于事件驱动的量化回测...
01引言 使用矢量化方法(pandas)建立的基于研究的量化回测框架,不考虑交易的委托成交行为,与真实市场情况差距比较大.今天为大家介绍的是基于事件驱动的回测框架,这是一种十分复杂的回测系统,力图模拟 ...
- 量化投资对于数据源、回测、实盘平台的选择
量化策略开发第一步:数据源 开发量化策略的第一个重要环节:如何获取数据? 开发量化策略所需要的数据,包括历史数据和实时数据.特别指出,我们只介绍免费的数据源,以帮助大家降低成本. 先从股票开始,股票的 ...
- R语言VaR市场风险计算方法与回测、用LOGIT逻辑回归、PROBIT模型信用风险与分类模型...
全文链接:http://tecdat.cn/?p=27530 市场风险指的是由金融市场中资产的价格下跌或价格波动增加所导致的可能损失. 相关视频 市场风险包含两种类型:相对风险和绝对风险.绝对风险关 ...
- R语言VaR市场风险计算方法与回测、用Logit逻辑回归、Probit模型信用风险与分类模型
最近我们被客户要求撰写关于信用风险与分类的研究报告,包括一些图形和统计输出. 市场风险指的是由金融市场中资产的价格下跌或价格波动增加所导致的可能损失. 市场风险包含两种类型:相对风险和绝对风险.绝对风 ...
- 【计量经济学】时间序列回归的渐进性
时间序列回归的渐进性 --潘登同学的计量经济学笔记 文章目录 时间序列回归的渐进性 --潘登同学的计量经济学笔记 平稳与弱相关 平稳过程 协方差平稳 平稳性有什么用? 弱相关时间序列 平稳与弱相关的误 ...
- 多元时间序列回归模型_多元时间序列分析和预测:将向量自回归(VAR)模型应用于实际的多元数据集...
多元时间序列回归模型 Multivariate Time Series Analysis 多元时间序列分析 A univariate time series data contains only on ...
- TensorFlow HOWTO 4.2 多层感知机回归(时间序列)
4.2 多层感知机回归(时间序列) 这篇教程中,我们使用多层感知机来预测时间序列,这是回归问题. 操作步骤 导入所需的包. import tensorflow as tf import numpy a ...
- 关于“时间序列回归”,这些你必须知道的事!
作者 | 时序人 责编 | 张文 头图 | CSDN 下载自东方 IC 来源 | 时序人(ID:TSer2020) 上篇我们讲了时间序列预测,其中提到了时序预测模型与回归预测模型的不同.换句话说,时 ...
- 时间序列回归模型(Forecasting: Principles and practice第六章)
6.1 the linear model 简单线性回归 最简单回归模型是预测变量y和单一预测因子x存在线性关系 Beta0和beta1分别表示截距和斜率.Beta0表示当x=0时,预测值y:beta1 ...
最新文章
- 1.7nginx用户认证
- 虚拟机下CentOS7开启SSH连接
- 相同布局在不同手机上显示不同_React Native布局详细指南
- 给文章中重复标签排序
- Java不满足的依赖异常_java – 新的缺失/不满足的依赖项WildFly 9中的错误
- 软件测试环境搭建及维护注意事项
- Android 车载应用开发与分析(5) - CarLauncher(一)
- html设计方案,网页设计经典方案
- 智能客服 | 5款绝佳客户服务聊天机器人推荐
- 不怕汗水与晃动的运动耳机推荐,六款专业的运动耳机
- 飞桨EasyDL助力资讯网站实现信息自动分类
- 快速学习Java8新特性第七讲——Optional类
- DS实验4--求单链表交集与差集(含测试效果及实现)
- Racket实现数字与中文的转换算法三(程序测试)
- gearhost php,美国免费稳定全能空间:GearHost
- dns解析和mx记录冲突场景
- 基于SSM物业管理系统
- 英国东英吉利大学六大学科跻身2021QS世界百强,发展研究全球第九
- 用了n多年了, qq终于两个太阳了...
- TensorFlow图像分类教程