Skip to content
All library documents

Handling Missing Returns When Comparing Cumulative Asset Performance

Article Quant Q&A · Author: JoeBadAss

Summary

The document explains why cumulative return charts can show gaps when asset return series contain missing observations. Those gaps reflect the data and should not be hidden by chart-level interpolation, since filling values changes the underlying return history. Any imputation should be an explicit data-processing decision, with its assumptions made clear.

For comparing assets over dates where both have prices, the proposed approach is to align the price series using only their shared dates, then calculate returns from those aligned prices. This preserves the return across the interval between observed prices; dropping individual returns instead can distort that interval. The example gives an R workflow using a merged price series before calculating returns. More sophisticated time-series imputation is mentioned, but the answer provides no evaluation of particular methods and warns that they come with caveats.

Key ideas

  • Missing observations in return data can create gaps in cumulative performance charts.
  • Charting functions should not silently invent returns to bridge those gaps.
  • For a comparison on shared dates, align price series first and calculate returns afterward.
  • Dropping prices can preserve the return across the interval, while dropping returns can distort it.
  • Imputation methods require explicit assumptions and careful interpretation.

Tags

Full text
# R, Performance Analytics, How to chart continuous line with non continuous data?


# R, Performance Analytics, How to chart continuous line with non continuous data?












In R, with Performance analytics package, I am trying to chart multiple cumulative asset returns from an XTS object. The thing is that I miss some data from some asset returns so that the graph given from:

> chart.CumReturns(XTS_DR_ALL[, c(1,2,5)], wealth.index = TRUE, main = "Monthly performance, re-based to 100, since inception", legend.loc="topleft", )

...plots non-continuous curves, which are not easy to visualize...

Can I do something to plot continuous lines for the asset returns of which I miss data? Best, Joe.

## Answer by vonjd (score 3, accepted)

https://quant.stackexchange.com/a/33662

I think your question draws on a larger issue: How to compare the performance of financial time series with missing data? The situation is indeed quite common that you have missing values for certain products (for a number of reasons) so you need a general strategy for that.

A few observations:

- The chart is as it is for a reason: There are missing returns in the series and just pretending as if there weren't any isn't going to help. So the chart is correct and it is also best practice not to provide some argument like `impute = TRUE` to make up some interpolated returns. If you wanted to do that you should do it in the underlying data, not the charting function.

- If your goal is to compare the performance of two products one way to go is omitting the missing values... but be careful: Don't omit the returns, omit the prices! Why? Because if you lose some prices the returns in between will still be correct, not so for losing returns!

- So what you want to do is first merge the two price series to get the dates where you have complete data (in database lingo a "full outer join") and after that convert them into returns.

In R you can e.g. do the following: `ROC(merge(Prices_1, Prices_2, all = FALSE))`

If you want to use more sophisticated methods (with all the caveats) there is an R package especially for imputation of missing values in times series data (but I haven't tried it yet): imputeTS: Time Series Missing Value Imputation

You can find an introductory vignette here: imputeTS: Time Series Missing Value Imputation in R

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.