我试图使用CAPM测试参数稳定性。基本上,我有一个股票和市场指数,我试图评估一个特定的事件后,回归的beta变化是否显着。
如果您不熟悉CAPM,基本上是一个简单的回归,根据无风险利率和市场指数为我们提供所需的股票回报。
看起来像这样: Rr = alpha + B(Rmkt-rf)+ e
我想添加一个虚拟和虚拟交互变量来将模型转换为:
Rr = Alpha + Alpha *(休息)+ B(Rmkt-rf)+ B(Rmkt-rf)*(休息)+ e
因此,break事件在事件之前的时间段为0,在事件之后为1。通过这种方式,我打算捕获拦截中的切换(使用alpha)和斜率(使用beta),如果这些估计值很重要的话。
为此,我用getSymbols获取符号:
ARG=ARGT$ARGT.Adjusted
WORLD=XWD.TO$XWD.TO.Adjusted
请注意,ARG是我的股票,WORLD是我的市场指数
然后我只使用调整后的版本,因为它们已针对拆分进行了更正。
ARG=ARGT$ARGT.Adjusted
WORLD=XWD.TO$XWD.TO.Adjusted
然后我继续使用quantmod的weeklyReturn函数获取每周回报:
WEKar=weeklyReturn(ARG, subset=NULL, type='arithmetic',leading=TRUE)
WEKwo=weeklyReturn(WORLD, subset=NULL, type='arithmetic',leading=TRUE)
之后,我需要多余的回报,所以我使用给定的无风险费率:(每周)rf = 0.61 / 52,我将其命名为rf
所以
#WEEKLY EXCESS RETURNS
WexretAR=(WEKar-rf)
WexretWO=(WEKwo-rf)
(我不确定这样做是否正确以分析超额收益。)
然后我继续创建我的虚拟变量,即在所谓的中断之前和之后的0和1列。
WexretWO$dummy <- rep(0,length(WexretWO[,1]))
for(i in 254:length(WexretWO[,1])){
WexretWO$dummy[i]<- 1
}
interaction <- rep(0,length(WexretWO[,1]))
for(i in 1:length(WexretWO[,1])){
interaction[i] <- WexretWO$weekly.returns[i] * WexretWO$dummy[i]
}
然后我以这种方式继续使用虚拟交互进行回归:
betaregres2=lm(WexretAR ~ WexretWO$weekly.returns + WexretWO$dummy +
interaction)
summary(betaregres2)
我的问题是,如果你们认为这是完成这项任务的正确方法?我真的很想知道你对处理这些休息的意见,以及这是否是评估它们的最有效方式。
提前谢谢你,我很抱歉任何错误或邋..我是新来的。
涓