给定一系列价格数据(使用scala的马鞍库),是否有一种简单的方法来计算日志回报?
type DtPxSeries = Series[DateTime, Double]
def pxDifs(series, DtPxSeries) : DtPxSeries = {
(series / series.shift(-1)).dropNA
}
// px_data is a `Series[DateTime, Double]`
val px_difs = pxDifs(px_data)
我可以传递一个系列(px_data
,它使用joda DataTimes作为索引)到pxDifs
,它返回一系列日常比率:到目前为止一直很好......
但是我现在如何计算px_difs
中每个元素的log()?
import breeze.numerics._
// fugly
log(px_difs.values.toSeq.toArray)
使用上面我可以使用breeze进行计算,但(理想情况下)我希望能够使用原始DateTime索引获得新的saddle.Series
我错过了什么吗?
感谢任何帮助...
答案 0 :(得分:1)
这应该这样做:
px_difs.mapValues(v => Math.log(v))