[R] strucchange breakpoints r-squared

Achim Zeileis Achim.Zeileis at uibk.ac.at
Mon Jan 21 08:47:03 CET 2013


On Sun, 20 Jan 2013, Geoffrey Smith wrote:

> Can anyone please tell me how to get the r-squared output from a 
> piecewise (segmented) regression using the strucchange package?  Here is 
> the R code I have tried thus far.
>
> library(lmtest)
> library(strucchange)
>
> data <- ts(c(rnorm(30), runif(30)), frequency = 12, start = c(2005, 01))
>
> bpts <- breakpoints(data ~ 1)

You can rather easily compute the R-squared by hand:

var(fitted(bpts))/var(data)

Alternatively, you can fit a segmented linear regression with lm() by 
using the factor coding the segments and then extract the R-squared as 
usual:

m <- lm(data ~ breakfactor(bpts))
summary(m)$r.squared

Finally, the R-squared is just a simple transformation of the residual sum 
of squares. Hence, you can also compute it via

1 - summary(bpts)$RSS[1,-1] / summary(bpts)$RSS[1,1]

Personally, I prefer to either look at RSS directly or at penalized 
measures such as BIC/AIC, which is why RSS/BIC are included in summaries 
and plots and R-squared is not.

Best,
Z

> print(bpts)
>
> summary(bpts)
>
> coeftest(bpts)
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list