Comments (3)
To avoid calculating variances on segments which do not vary there is a catch in the code whereby if a negative variance is estimated then the returned variance is replaced with a value very close to 0 (just within machine precision). This is to avoid a division by 0 in the likelihood - as you point out.
The minseglen=2
minimum is because we are estimating two parameters per segment, the mean and the variance. Thus we need at least two data points to do this.
The cost function is the same for all search methods so this would affect them all.
from changepoint.
Thinking about this more there are legitimate reasons to have a segment with a variance of 0, where all values are equal. This could be for a small length, in which case you likely don't want it identified as a changepoint but could also be longer lengths (I'm looking at some data which is rounded and so we do get runs of the same value). I personally think that this should be handled by the user and not the algorithm. Therefore I think a warning by the changepoint methods when we have sequential observations with the same value should suffice.
from changepoint.
I agree that a warning would be a step in the right direction.
from changepoint.
Related Issues (20)
- binseg returns incorrect segment means HOT 5
- NegBin distribution / R-GSOC'21 project? HOT 3
- `plot` of Changepoint object is not working HOT 3
- Segment check or residual check? HOT 4
- Q for cpt.meanvar with method=SegNeigh and sumstat = Poisson or Exp HOT 1
- logLik cpt.meanvar output when method="SegNeigh"
- availability of changeppoint.influence library HOT 2
- cpt.meanvar returns an extra changepoint location when locations are called directly HOT 2
- Should cpt.var allow minseglen = 1? HOT 1
- Can cpt.reg class still be used? HOT 1
- SegNeigh/SNIP GSOC project? HOT 2
- cpt.mean doesn't accept a ts object HOT 3
- BinSeg returns zeros in cpts.full matrix
- cpt.mean(method="BinSeg") slower than expected/optimal for large number of data and changes HOT 1
- diagnostic = TRUE does not work HOT 1
- Checking for 1D objects via `is.null(dim(x))` breaks for 1D-arrays HOT 3
- logLik() should return an object of class "logLik" HOT 5
- possible bug in logLik() computation HOT 2
- figure out reasonable calculation for fitted.nhpp() HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from changepoint.