前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言分位数回归预测筛选有上升潜力的股票

R语言分位数回归预测筛选有上升潜力的股票

作者头像
拓端
发布2021-01-13 14:50:18
4460
发布2021-01-13 14:50:18
举报
文章被收录于专栏:拓端tecdat

原文链接:http://tecdat.cn/?p=18984

现在,分位数回归已被确立为重要的计量经济学工具。与均值回归(OLS)不同,目标不是给定x的均值,而是给定x的一些分位数。您可以使用它来查找具有良好上升潜力的股票。您可能会认为这与股票的beta有关,但是beta与OLS相关,并且是对称的。如果市场出现上涨,高beta股票将获得上行波动的收益,但对称地,当市场下跌时,您可能会遭受巨额亏损。

使用下图最好地理解分位数回归的用法:

绘制的是股票收益。蓝线是OLS拟合值,红线是分位数(80%和20%)拟合值。

在上部面板中,您可以看到,当市场上涨时(X轴上的正值很高),Y轴上的分散很大。当市场下跌时,相对的分散程度而言较大。在底部面板中,情况相反。当市场上涨时,您“非常了解”股票会发生什么,但是当市场处于下跌时,股票收益的不确定性就会降低。考虑到其他因素,您希望投资组合中包含高位股票。当市场上涨时,它们收益很好,但同时在下跌的过程中提供相对的确定性。

以下代码读取股票行情,并找到最佳比率,即:上行时分散度高,而下行时分散度低:

代码语言:javascript
复制


dat0 = getSymbols(sy[1], src="yahoo", from=start, to=end,auto.assign = F, warnings = FALSE,symbol.lookup = F)
#查询最近365天:dat <- gtint(sym = c(tickers,"SPY"),365)# 将样品划分成两部分

ins <- n/2# 在0.2和0.8之间查找斜率

Tau = c(.2,.8)
for (j in 1:(l-1)for (i in 1:length(Tau)qslope[i,j] = rq(dat$ret[2:ins,j~dat$ret[2:ins,l, tau = Tau[i])$coef[2]

# 确定哪些股票有用:


dat$ret <- dat$ret[,rat0<2 & rat0>(-2)]
## 画图
plot(dat$ret[1:ins,which.max(rat)]~dat$ret[1:ins,l]
plot(dat$ret[1:n,which.min(rat)]~dat$ret[1:n,l],title(nam)

我们使用样本的前半部分来选择我们要使用的股票。假设我们以最差的比率做空股票,并以最佳的比率做多股票。

代码语言:javascript
复制


dat$p <- dat$p[,rat0<2 & rat0>(-2)]plot(dat$p[1:ins,l]/dat$p[1,l], ty = "l", ylim = c(.8,1.5),
plot(dat$p[ins:n,l]/dat$p[ins,l], ty = "l", ylim = c(.8,1.5), xlab = "样本外时期",)

从结果可以看到模型有较好的表现。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 拓端数据部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原文链接:http://tecdat.cn/?p=18984
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档