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@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.


______________________________________________
R-help@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.

Reply via email to