[Rd] Rsquared bug lm() (PR#10516)
lieven
lieven.clement at gmail.com
Mon Dec 17 10:14:09 CET 2007
Basically, I used the without intercept to get an estimate for each of my
factor levels instead of using a reference class. So I use a kind of hidden
intercept.
I should have noticed that the behavior was documented in ?summary.lm.
Sorry for the inconvenience.
Lieven
Duncan Murdoch-2 wrote:
>
> On 12/14/2007 8:10 AM, lieven.clement at gmail.com wrote:
>> Full_Name: lieven clement
>> Version: R version 2.4.0 Patched (2006-11-25 r39997)
>> OS: i486-pc-linux-gnu
>> Submission from: (NULL) (157.193.193.180)
>>
>>
>> summary.lm() does not calculate R² accurately for models without
>> intercepts if
>> one of the predictor variables is a factor.
>> In order to avoid one of the factor levels to be considered as a
>> reference class
>> you can use the -1 option in a formula. When you use this, R² is not
>> correctly
>> calculated.
>
> This is not a bug. A model without an intercept should be using y=0 as
> a reference.
>
> Duncan Murdoch
>
>>
>>> x1<-rnorm(100)
>>> x2<-c(rep(0,25),rep(10,25),rep(20,25),rep(30,25))
>>> y<-10*x1+x2+rnorm(100,0,4)
>>> x2<-as.factor(x2)
>>> lmtest<-lm(y~-1+x1+x2)
>>> summary(lmtest)$r.sq
>> [1] 0.9650201
>>> 1-sum(lmtest$res^2)/sum((y-mean(y))^2)
>> [1] 0.9342672
>>
>> The R squared by summary is calculated as
>>> 1-sum(lmtest$res^2)/sum((y)^2)
>> [1] 0.9650201
>> apparently because lm.summary assumes the mean of y to be zero.
>>
>> In case of an intercept model everything seems ok
>>> lmtest<-lm(y~x1+x2)
>>> summary(lmtest)$r.sq
>> [1] 0.9342672
>>> 1-sum(lmtest$res^2)/sum((y-mean(y))^2)
>> [1] 0.9342672
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>
--
View this message in context: http://www.nabble.com/Rsquared-bug-lm%28%29-%28PR-10516%29-tp14335791p14370172.html
Sent from the R devel mailing list archive at Nabble.com.
More information about the R-devel
mailing list