Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

breakpoints(): Better handling of time #15

Open
GreatEmerald opened this issue Mar 13, 2020 · 0 comments
Open

breakpoints(): Better handling of time #15

GreatEmerald opened this issue Mar 13, 2020 · 0 comments
Assignees

Comments

@GreatEmerald
Copy link
Contributor

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

 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant