It should be easy to get a separate R^2 from "lm" for each level of a factor: Just split the data and run "lm" once for each level of f. I've done this with a "for" loop something like the following:

        dat <- data.frame(x=x, y=y, f=f)
        for(i.f in 1:2){
           sel <- (f == c("a", "b")[i.f])
           fit <- lm(y~x, data=dat[sel])
         ...

}

where "..." is replaced by appropriate commands to get R^2 from summary(fit). It may also be possible to do with with tapply.

Getting an R^2 from glm and lme is harder and controversial: Some people say simply, "Don't do it, because it doesn't mean anything." For those who want to do it anyway, the following papers discuss alternate definitions of R^2 outside the standard normal linear model:

NagelKerke, N. J. D. (1991) "A note on a general definition of the coefficient of determination", Biometrika 78: 691-2.

Cox, D. R. and Wermuth, N. (1992) "A comment on the coefficient of determination for binary responses", The American Statistician 46: 1-4.

Cameron, A. Colin and Windmeijer, F. A. G. (1997) "An R-squared measure of goodness of fit for some common nonlinear regression models", Journal of Econometrics 77: 329-342.

I'd be pleased to hear other comments on this issue. Hope this helps. spencer graves


Ronaldo Reis Jr. wrote:
Hi,

I have something like this:


x <- 1:10
y2 <- 30+5*x+rnorm(x,sd=3)
y <- c(y1,y2)
x <- c(x,x)
plot(x,y)
x <- 1:10
y1 <- 1+5*x+rnorm(x,sd=2)
y2 <- 30+5*x+rnorm(x,sd=5)
y <- c(y1,y2)
x <- c(x,x)
f <- factor(rep(c("a","b"),c(10,10)))
m <- lm(y~x+f)
anova(m)

Analysis of Variance Table


Response: y
Df Sum Sq Mean Sq F value Pr(>F) x 1 4062.9 4062.9 400.04 2.990e-13 ***
f 1 4421.5 4421.5 435.35 1.496e-13 ***
Residuals 17 172.7 10.2 ---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1


#rsquare of model
(4062.9+4421.5)/(4062.9+4421.5+172.7)

[1] 0.980051


In this way I calculate the model rsquare, but how to calculate the rsquare of each levels "a" and "b"?

This is only an example, the model maybe glm, lme etc.

Thanks
Ronaldo

______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to