- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 R 的新手(我以前用过 Stata)。我目前正在重做一些金融理论测试,其中包括:
声明时间序列
计算每日 yield 等相关变量
排名股票表现(横截面)
形成作品集
运行回归。
我的问题是:
我所说的宽数据集是指 900 只股票的 900 列价格。长数据表示 1 个价格列和 900 行中的股票。该数据包括过去 10 年的每日数据。所以这是一个海量的数据处理。这就是为什么您与我分享的任何经验都是宝贵的。
宽数据示例:
dateyyyymmdd price.AAA price.BBB
1 2015-10-02 10.1 10.7
2 2015-10-01 10.3 10.4
3 2015-09-30 10.4 10.4
4 2015-09-29 10.6 10.6
5 2015-09-28 10.7 11.0
6 2015-09-25 10.4 10.8
7 2015-09-24 9.8 10.2
8 2015-09-23 9.9 10.1
9 2015-09-22 9.9 9.9
10 2015-09-21 10.1 10.1
长数据示例:
dateyyyymmdd id price
1 2015-10-02 AAA 10.7
2 2015-10-01 AAA 10.4
3 2015-09-30 AAA 10.4
4 2015-09-29 AAA 10.6
5 2015-09-28 AAA 11.0
6 2015-10-02 BBB 10.8
7 2015-10-01 BBB 10.2
8 2015-09-30 BBB 10.1
9 2015-09-29 BBB 9.9
10 2015-09-38 BBB 10.1
以下是我在工作中遇到的障碍:
声明时间序列并计算每日 yield :我发现与 Stata 相比,声明时间序列并使用它要困难得多。我尝试了 ts()
和其他一些方法,但最终我不知道如何以“智能方式”计算每只股票的每日 yield 。我试过 diff()
但它需要应用正确的日期顺序。
对股票 yield 进行排名。我还没有达到这一部分。但是,如果我应该使用宽数据或长数据以节省时间,如果有人可以帮助我。我将不得不在一天内对所有股票的返回率进行排名,然后将它们分组并计算每组的参数。
运行回归分析和投资组合分析。我查看了投资组合分析包并猜测它使用了广泛的数据,因为给定的示例将许多代码显示为数据框的名称(每只股票有 1 个价格列)。
最佳答案
解决您的问题:
xts
包经常用于因缺少周末和节假日而形成不规则时间序列的金融数据。 xts
包包含一个版本的 diff
,它使用正确的日期排序来计算返回。下面的代码使用 xts
包和示例数据的 diff
来正确计算返回。rank
函数用于对每一天的返回进行排名。由于 rank
仅适用于单个数据向量,因此 apply
函数用于选择每一行,对返回进行排名,然后将排名组合成一个矩阵。结果矩阵需要恢复为 xts
时间序列,这是通过 Reclass
完成的。最后,为了示例的目的,将数据和结果合并到一个时间序列中可能会有所帮助,这是通过 merge
完成的。PerformanceAnalytics
包。 xts
时间序列,每个 Assets 都在其自己的列中,与 PerformanceAnalytics
配合得很好。例如,该代码使用计算出的返回并假设一个等权重投资组合,使用 PerformanceAnalytics
包中的 Return.portfolio
函数计算投资组合返回的时间序列。您提到您拥有 900 项 Assets 的 10 年每日数据。这个行数对于 R 来说一点也不大,但列数可能很大。我会尝试使用类似下面的代码,看看是否存在任何性能问题。如果是这样,您可以尝试几个选项。
library(xts)
# transform to an xts time series
dfx <- xts(df[,-1], order.by=as.Date(df[,1]))
# calculate returns; no return (NA) is calculated for first date so remove
df_ret <- diff(dfx, arithmetic=FALSE, na.pad=FALSE)-1
# label columns containing returns
colnames(df_ret) <- sub("price", "return",colnames(df_ret))
# calculate ranks for each row of returns, add ranks as columns to data, and restore as xts time series
df_rank <- Reclass(t(apply(df_ret, 1, rank)))
# lable columns containing ranks
colnames(df_rank) <- sub("return","rank",colnames(df_rank))
# returns and ranks can be combined with prices if desired
dfx <- merge(dfx, df_ret, df_rank)
# Calculate returns for a portfolio equi-weighted at beginning of period and not rebalance
library(PerformanceAnalytics)
port_ret <- Return.portfolio(R=df_ret, weights=c(.5,.5))
关于r - 使用 R : Fama MacBeth Regression - Portfolio formation and Stock return ranking,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33012741/
我在运行 GNU Visual Debugger 1.2.6 的 XP 虚拟机上尝试打开 Ada 文件 (.adb),但不断出现以下错误: not in executable format: File
我正在尝试获取 io:format/1 的输出结果。 我知道io_lib中也有类似的函数,io_lib:format/2,但是输出不一样。事实上,它根本没有做任何事情。 如果我尝试绑定(bind) i
我在 documentation 中找不到任何内容, 甚至 BreakBeforeBraces: Allman格式化我已经拆分的单行函数 void foo() { bar(); } 我想要类似的东西
请考虑函数f: open Format let rec f i = match i with | x when x () | i -> pp_open_hovbox std_form
如何在列表中的每三个参数后添加一个回车符(使用 ~%)? 例如,我现在: (format nil "~{~a ~}" (list '"one" '"two" '"three" '"four" '"fi
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 6 年前。 Improve
当我尝试在 Ubuntu 上编译 fprintf(stderr,Usage) 时,我遇到了这个错误: error: format not a string literal and no format
运行 cv2.getRectSubPix(img, (5,5), (0,0)) 抛出错误: OpenCV Error: Unsupported format or combination of for
我正在 cocos2d-x-2.1.4 上开发游戏,但是,当我尝试在 Android 上构建它时,它失败并出现错误:格式不是字符串文字且没有格式参数 [-Werror=format-安全] 在文件 C
运行时: $ clang-format -style=Google -dump-config > .clang-format 文件后附有省略号 (...)。 TabWidth: 8 Us
我想在纯函数中将 double 型转换为字符串。我很困惑为什么这不是纯粹的: wstring fromNumber(double n) pure { import std.format;
Common Lisp 的 format 是否有一个特别容易阅读的实现? 我找到了 SBCL's version ,但由于 SBCL 以 性能 Common Lisp 实现而著称,我想知道是否有一个更
嗨,我正在尝试在 JSP 页面上格式化字符串,它给了我错误,正如我在标题中提到的,我的代码是, String header=""; header = 12-29-2011 15;
clang-format 将我的行拆分为 80 列。有没有办法让停止断线? documentation似乎没有解决这个问题。 最佳答案 负责它的配置选项称为 ColumnLimit .您可以通过将其设
我有一个Angular 11项目,试图集成SpreadJS Designer,但在ngcc步骤Compiling @grapecity/spread-sheets-designer-angular :
我正在使用 clang-format 4.0.0来对齐我的个人项目。 我将以下配置用于 clang-format 。 Language: Cpp BreakBeforeBraces: A
我正在使用- char str[200]; ... sprintf(str,"%s", val) msg(str); sprintf(str, "%s: %s",timestr,"\n recv -"
我有这个 double 值: var value = 52.30298270000003 当我将它转换为 string 时,它失去了它的精度: var str = string.Format("{0}
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 8 年前。 Improve
如何使用 clang-format 始终将冒号左对齐。我不希望它被禁用:1234,但禁用:1234。 #pragma warning(disable: 1234) 最佳答案 我猜你需要这个。 Spac
我是一名优秀的程序员,十分优秀!