首页 > 解决方案 > 对于 R 中的事件前窗口,如何将 lm() 应用于特定事件?

问题描述

我正在使用市场模型进行事件研究:AR(i,t)=R(i,t) - ((alpha(i) + beta(i)*R(m,t))。我很难计算由于数据格式和过滤,alpha(截距)和 beta(斜率)估计器。

如果评级变化不为零,则有一个“事件”,我需要的是计算 -1:-3 的事件前窗口的 alpha 和 beta (示例)。但是,每个 ISIN 有几个事件,这意味着我必须按 ISIN 和事件(非零评级变化)分组,然后使用 lm() 对事件前窗口进行回归并将值保存在接下来的列中到事件和事件前窗口。

我的数据提取如下所示:

    Date_    ISIN       Return  STOXX_Return     Rating_Change     Rating
  2016-10-01 CH00  0.017531563 -0.0003749766              0.00          A
  2016-11-01 CH00 -0.073376071 -0.0220566972              0.00          A
  2016-12-01 CH00 -0.010745412  0.0182991778              0.00          A
  2017-01-01 CH00  0.045742055  0.0641541456              1.90          A
  2017-07-01 CH00 -0.072018814 -0.0193375447              0.00          A
  2018-01-01 GB00  0.041200982  0.0144049186              0.00         B+
  2018-02-01 GB00  0.040654871  0.0119439111              0.00         B+
  2018-03-01 GB00 -0.029012563 -0.0463974419              0.00         B+
  2018-04-01 GB00 -0.073155490 -0.0066808630             -8.90          B
  2018-10-01 GB00  0.042203267  0.0047172371              0.00          B 
  2018-11-01 GB00 -0.073256106 -0.0545350385              0.00          B
....

我需要的是另外两列,填充 alpha 和 beta - 像这样:

    Date     ISIN            R    STOXX_Return   Rating_Change     Rating alpha beta   
  2016-10-01 CH00  0.017531563 -0.0003749766              0.00          A     1    2
  2016-11-01 CH00 -0.073376071 -0.0220566972              0.00          A     1    2
  2016-12-01 CH00 -0.010745412  0.0182991778              0.00          A     1    2
  2017-01-01 CH00  0.045742055  0.0641541456              1.90          A     1    2
  2018-02-01 GB00  0.040654871  0.0119439111              0.00         B+     3    4
  2018-03-01 GB00 -0.029012563 -0.0463974419              0.00         B+     3    4
  2018-04-01 GB00 -0.073155490 -0.0066808630             -8.90         B+     3    4
... for all Dates and ISINs

alpha 和 beta 的 1 和 2(3 和 4)只是要展示的示例,对于每个事件,我都需要一个特定的 alpha 和 beta。

我尝试将 for-if 循环与 filter 和 lm 以及不同的 magrittr 尝试结合使用。但是,由于我仍然是 R 的初学者,所以没有什么能达到我想要的效果。有没有人明白,我的问题是什么以及如何帮助/解决它?非常感谢您的支持。

标签: reventsfilterlmmagrittr

解决方案


推荐阅读