I'm looking for breakpoints in species abundance as a function of spatial distance, using the segmented package for R. 'segmented' appears to return a breakpoint no matter what; I don't understand whether it returns an estimate of the signifcance of the breakpoint (or whether the segmented linear model is better than an unsegmented model).

For instance (R code):

x <- 1:100
y <- rnorm(100) + x # No real breakpoint
y2 <- c(50-x[1:50], x[51:100-50]) + rnorm(100) # Clear breakpoint at 50
points(x, y2)

enter image description here

# Segmented model for the unsegmented data
testM <- lm(y ~ x)
testMs <- segmented(testM, seg.Z = ~x, psi=90)

Despite the fact that there is clearly no breakpoint in the data, summary reports that t value for the gap-variable(s) V: 0, and the standard error is fairly small (3.28).

testM2 <- lm(y2 ~ x)
testM2s <- segmented(testM2, seg.Z=~x, psi=50)

Here the guess is correct (49.78), the standard error is even smaller (0.2), and the t value is the same. How do I interpret this result?

Note: I have no particular attachment to the segmented package - I just want to test the hypothesis that a segmented regression models my data better than a single-domain regression. But the other breakpoint-analysis packages I've looked at seem to require that points on the domain be evenly-spaced (e.g. timeseries) and there is a single dependent value per independent value. These assumptions are not met for my spatial data.


1 Answer 1


This is what davies.test() in the segmented package is for. RTFM, self.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.