现在,分位数回归已被确立为重要的计量经济学工具。
与均值回归(OLS)不同,目标不是给定x的均值,而是给定x的一些分位数。您可以使用它来查找具有良好上升潜力的股票。
您可能会认为这与股票的beta有关,但是beta与OLS相关,并且是对称的。
首先随机变量X的分布函数为:
则它的 分位数可定义为:
若将分布函数F(x)的逆定义为:
则
设有随机向量(X,Y),其中Y在给定X=x的情况下的条件累积分布函数为 ,则将该条件随机变量Y|X=x的 条件分位数定义为:
假定我们有样本序列 满足下列回归模型,即
假定误差项 为独立同分布的序列,且分布情况未知,这Y的 条件分位数
式中, 为分位回归领域的损失函数,有些地方也称之为检验函数。 为示性函数。不包含示性函数的损失函数为
损失函数同样可以用下面一个公式进行表示:
则我们希望 尽可能的小,最好等于0,则:
最优解为
用样本经验分布函数代替F(x)则
这些是分位数回归的一些基本思想,这仅仅只涉及到基本的分位数线性回归,还有较为复杂的核回归在随后的研究中再进行更新。
如果市场出现上涨,高beta股票将获得上行波动的收益,但对称地,当市场下跌时,您可能会遭受巨额亏损。
使用下图最好地理解分位数回归的用法:
绘制的是股票收益。蓝线是OLS拟合值,红线是分位数(80%和20%)拟合值。
在上部面板中,您可以看到,当市场上涨时(X轴上的正值很高),Y轴上的分散很大。当市场下跌时,相对的分散程度而言较大。在底部面板中,情况相反。当市场上涨时,您“非常了解”股票会发生什么,但是当市场处于下跌时,股票收益的不确定性就会降低。考虑到其他因素,您希望投资组合中包含高位股票。当市场上涨时,它们收益很好,但同时在下跌的过程中提供相对的确定性。
以下代码读取股票行情,并找到最佳比率,即:上行时分散度高,而下行时分散度低:
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)
我们使用样本的前半部分来选择我们要使用的股票。假设我们以最差的比率做空股票,并以最佳的比率做多股票。
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 = "样本外时期",)
从结果可以看到模型有较好的表现。
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!