bfast2 / bfast2/strucchangeRcpp

breakpoints(): Better handling of time

Open
#15 0 comments 0 reactions 1 assignee Claimed by @GreatEmerald View on GitHub
enhancement
Dominant language
R
Stars
6
Forks
5
PR merge metrics
No merged PRs in 30d

Description

At the moment, the time attribute in breakpoints() gets lost most of the time, leading to output such as:

```r
Optimal 2-segment partition:

Call:
breakpoints.matrix(X = X, y = y, h = h, breaks = breaks, hpc = hpc)

Breakpoints at observation number:
104

Corresponding to breakdates:
0.4521739
```

This is not useful, as the breakdates should actually tell you which year and day the break happened, rather than in which part of the time series it happened (that's already given by the observation number).

It works properly if the input is a `ts` object, since then `datatsp` is preserved. However, it is rare to run `breakpoints()` over a `ts` rather than a `bfastpp()` `data.frame`. The latter contains time as a column, which should then be preserved.

I propose to handle time better and different from the other covariates in X. If the input is `ts`, then decompose its input into year fractions as per `bfastpp`. If the input is a `data.frame`, make use of the `time` column. Add a `time` element to the result that holds the timestamps, either as POSIXct or year fractions.

This is a prerequisite to better plotting of `breakpoints()` diagnostics, as as it is it is impossible to plot the time series with correct labels, or to put the breakpoint at a particular time.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.