簡體   English   中英

使用“PerformanceAnalytics”包來計算性能度量

[英]Using 'PerformanceAnalytics' package to calculate Performance Measures

我需要使用R的'PerformanceAnalytics'包並使用這個包,我知道我需要將數據轉換為xts數據,這實際上是一個面板數據。 按照這個論壇的建議,我做了以下事情:

library(foreign)
RNOM <- read.dta("Return Panel without missing.dta")
RNOM_list<-split(RNOM,RNOM$gvkey)
xts_list<-lapply(RNOM_list,function(x)
{out<-xts(x[,-1],order.by=as.Date(x$datadate,format="%d/%m/%Y")) })

它給了我RNOM_listxts_list

在此之后,有人可以幫助我使用函數Return.calculatelapply來估計每月的回報,並將生成的輸出作為附加變量保存在我的原始數據集中用於回歸分析嗎? 隨后,我還需要估計 VaR、ES 和 semi-sd。

數據可以在這里下載。 注意, prccm是數據中的月收盤價, gvkey是公司 ID。

實現此目標的有效方法是使用“reshape2”包將面板數據(長格式)轉換為寬格式。 執行估計后,將其轉換回長格式或面板數據格式。 下面是一個例子:

library(foreign)
library(reshape2)
dd <- read.dta("DDA.dta") // DDA.dta is Stata data; keep only date, id and variable of interest (i.e. three columns in total)
wdd<-dcast(dd, datadate~gvkey) // gvkey is the id
require(PerformanceAnalytics)
wddxts <- xts(wdd[,-1],order.by=as.Date(wdd$datadate,format= "%Y-%m-%d"))

ssd60A<-rollapply(wddxts,width=60,SemiDeviation,by.column=TRUE,fill=NA) // e.g of rolling window calculation
ssd60A.df<-as.data.frame(ssd60A.xts) // convert dataframe to xts
ssd60A.df$datadate=rownames(ssd60A.df) // insert time index
lssd60A.df<-melt(ssd60A.df, id.vars=c('datadate'),var='gvkey') // convert back to panel format
write.dta(lssd60A.df,"ssd60A.dta",convert.factors = "string") // export as Stata file

然后只需將其與主數據庫合並以執行一些回歸。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM