r - 对于 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 的初学者,所以没有什么能达到我想要的效果。有没有人明白,我的问题是什么以及如何帮助/解决它?非常感谢您的支持。
解决方案
推荐阅读
- python - 如何在 pandas resample().mean() 和 resample().sum() 时禁用 nans 计算?
- python - 为什么即使我手动将它们放入包缓存中,Anaconda 仍会尝试下载包?
- rest - 多部分/表单数据和 RESTful 架构?
- c# - 访问 Gtk# (GtkSharp) 标签子按钮
- python - 如何将 json 字符串列表插入到数组字典中?
- r - 从 varComp 包中的 varCompFixEf 对象中提取 p 值(在 var comp 包中提取 p 值)
- reactjs - fireEvent.keyDown 在我的 Jest + React 测试库测试中没有按预期工作
- android - 离开全屏后 Android 内容未调整大小
- javascript - Typescript 函数作为另一个函数中的可选参数
- c - 使用 GtkFileChooserButton 和 GtkFileChooserDialog 的区别