[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