问题标签 [performanceanalytics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - Using apply.rolling function over multiple columns
In zoo
package, while using rollapply
function, we get an logical option 'by.column = TRUE/FALSE
'. If TRUE
, FUN
is applied to each column separately.
However, in apply.rolling
function of PerformanceAnalytics
package I don't see any such option. While trying to the following:
It give me calculation of only first column. Can someone please tell me how can I run this calculation over all the columns in the dataset.
r - 使用 rollapply 函数使用 R 进行 VaR 计算
我为计算 20 个周期滚动窗口内的风险价值 (VaR) 执行了以下操作:
它产生所需的输出,然后我在另一个数据上尝试了同样的操作:
但我收到以下错误:
有人可以告诉我为什么会有这种差异以及如何解决这个错误吗?
r - 完整缺失列的 VaR 计算
我需要计算股票收益的滚动 VaR。从这篇文章:使用 rollapply 函数使用 R 进行 VaR 计算,我了解到具有完全缺失案例的列会出错。但由于各个公司股票收益的起止日期不同,当数据从长格式转换为宽格式时会产生缺失值。可以仅使用没有缺失值的行进行估计,但这会导致数据严重丢失。因此,有没有办法对具有完整缺失值的列执行计算,对于缺失的列,得到输出“NA”。这就是我所做的:
它执行所需的计算,但是当我尝试使用前 60 行完全缺失“HAM6”列时
我收到以下错误:
我知道错误是由于缺少“HAM6”列,但有没有办法保留缺少的列并为“HAM6”获取输出“NA”而不是删除“HAM6”列?我已经尝试了大多数可用于处理缺失值的方法,但找不到任何合适的解决方案。任何帮助深表感谢。
r - 更快地替代功能“rollapply”
我需要对包含大约 7,000 行和 11,000 列的 xts 数据运行滚动窗口函数。我做了以下事情:
我等了 12 个小时,但计算没有完成。但是,当我尝试使用以下小数据集时:
计算在 60 秒内完成。我在配备 Intel i5-2450M CPU、Windows 7 操作系统和 12 GB RAM 的计算机上运行它们。
如果有任何更快的方法可以在大型 xts 数据集上执行上述计算,任何人都可以建议我吗?
r - 使用 R 估计滚动风险价值 (VaR)
我需要对每日股票收益进行滚动 VaR 估计。起初我做了以下事情:
它执行计算并返回一个动物园对象,但给出一系列警告,如下所示:
然后,我对我的数据样本进行了同样的尝试,如下所示:
但是 is 不返回任何 zoo 对象并给出以下警告和错误:
从较早的帖子(使用 R 的使用 rollapply 函数进行 VaR 计算)我了解到,如果缺少完整的滚动窗口,则无法执行滚动估计,但在我的数据(sample2.dta)中没有缺失值。
sample2.dta 可以从https://drive.google.com/file/d/0B8usDJAPeV85WDdDQTFEbGQwaUU/edit?usp=sharing下载
谁能帮我解决和理解这个问题?
r - R中带有NA的累积回报
我有以下数据框:
我想计算累积回报,但数据框中缺少值。我用了:
结果得到
这里的问题是,如果存在 NA,则后续行将具有 Result NA。有没有办法在不影响下面其余行的情况下计算累积回报?
我想获得以下结果:
我知道 PerformanceAnalytics 包中有一个名为 Return.cumulative 的函数,但这只会获得整个列的累积回报。
有任何想法吗?
r - 使用 ugarchfit 在 R 中扩展窗口的 Garch 预测
我有 S&P500 的每日数据,并将接近收盘的回报存储在my_data$Return中。我的目标是在此期间每天重新调整 GARCH(1,1)(因此从 2004 年 1 月 1 日的startDate开始),然后计算 30 天的预测。换句话说,我需要模拟我使用期间每个时间点的 GARCH(1, 1) 30 天预测。为了做到这一点,我使用了myFit函数来校准模型并进行预测。然后此函数由apply.fromstart调用,以便我可以从startDate开始每天应用它。
如果我启动它,R 会抱怨,因为ugarchfit需要至少 100 个数据点才能运行。
我看到该函数需要至少 100 个数据,但如何更改函数以避免错误?我还尝试将最后一行替换为:
但R显示错误,因为求解器无法收敛。另外,rollapply不允许我使用扩展窗口,而这是我想做的。事实上,我在这里申请了 1 年的滚动窗口。
关于如何在此期间每天获取预测的任何想法?
非常感谢您的帮助。
r - GARCH 预测扩展窗口:rollapplyr() 和 apply.fromstart()
我的意图是使用来自扩展窗口的数据使用 GARCH(1,1) 生成预测。每天都有一个新的回报进入数据集,我将重做 GARCH 拟合和预测。函数 myFit 执行此操作,但现在我需要将一个每天都在增加的返回窗口作为参数传递。两种方法是 apply.fromstart() 和 rollapplyr()。
在下面的代码中,我决定在收集到至少 100 个回报后开始滚动计算,因为这是 ugarchforecast() 执行预测所需的最小数据量。
最后两行调用 myFit ,从 100 的窗口开始,它们将函数应用于扩展窗口。如果设置如下,我期望 apply.fromstart() 和 rollapplyr() 都提供相同的数据。毕竟他们将相同的功能(myFit)应用于相同的数据。不幸的是,只有第一个值是相同的,然后预测不再对齐。
这是我的健身
这些是 forecastVec1 的元素(因此使用 apply.fromstart() 时的预测):
这些是 forecastVec2 的元素(使用 rollapplyr()):
如前所述,只有第一个元素是相同的。我在 rollapplyr() 中应用增加窗口的方式可能是错误的?我正在传递一个宽度向量,所以我期望在每次迭代中,函数将使用一个窗口 100,然后是 101,然后是 102...103,最后是 104。这应该与 apply.fromstart() 后面的逻辑相同因为我设置了 gap=100 并且每次迭代都应该将窗口增加 1。
你能帮我找出错误吗?谢谢。
r - 访问第一个图
所以我使用 PerformanceAnalytics 包来绘制一个简单的 PnL 系列的性能摘要,所以
但是,我想在累积 PnL 图表中添加一些描述性文本,例如年化收益、累积收益、标准差和锐化。如何将其粘贴到第一张图中的空白处?
如果我自己绘制图表,我可以用上面的代码来做。但是,由于 charts.PerformanceSummary 函数自动绘制 3 个图,我只能访问它看起来的第 3 个图。有什么方法可以访问函数打印的 3 个图表中的第一个,以便我可以在其上相对于其自身坐标编写文本?
这是我想要的一个例子:http: //i.imgur.com/QXUb2Aq.png。但在这种情况下,我必须手动测试 y 坐标的值,直到我找到可行的方法。谢谢!
r - 在 PerformanceAnalytics 中向 SharpeRatio 添加权重
使用来自的PerformanceAnalytics.pdf
示例
SharpeRatio(edhec, Rf = 0, FUN="VaR" , method="modified")
我根据(我假设)等权重投资组合假设获得每单位(VaR)
风险的回报,但是当我尝试添加权重时:
我收到错误:
有人知道如何(形式)扩展SharpeRatio
功能以合并投资组合权重吗?