[R] Calculation of r squared from a linear regression

Bernardo Rangel Tura tura at centroin.com.br
Fri Jun 11 12:25:35 CEST 2010


On Fri, 2010-06-11 at 01:16 -0700, Sandra Hawthorne wrote:
> Hi,
> 
> I'm trying to verify the calculation of coefficient of determination (r squared) for linear regression. I've done the calculation manually with a simple test case and using the definition of r squared outlined in summary(lm) help. There seems to be a discrepancy between the what R produced and the manual calculation. Does anyone know why this is so? What does the multiple r squared reported in summary(lm) represent? 
> 
> # The test case:
> x <- c(1,2,3,4)
> y <- c(1.6,4.4,5.5,8.3)
> dummy <- data.frame(x, y)
> fm1 <- lm(y ~ x-1, data = dummy)
> summary(fm1)
> betax <- fm1$coeff[x] * sd(x) / sd(y) 
> # cd is coefficient of determination
> cd <- betax * cor(y, x)
> 
> Thanks.


Sorry Sandra,

But the problem in yours script. Look this
x <- c(1,2,3,4)
y <- c(1.6,4.4,5.5,8.3)
dummy <- data.frame(x, y)
fm1 <- lm(y ~ x, data = dummy)
summary(fm1)

Call:
lm(formula = y ~ x, data = dummy)

Residuals:
    1     2     3     4 
-0.17  0.51 -0.51  0.17 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  -0.3500     0.6584  -0.532   0.6481  
x             2.1200     0.2404   8.818   0.0126 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.5376 on 2 degrees of freedom
Multiple R-squared: 0.9749,	Adjusted R-squared: 0.9624 
F-statistic: 77.76 on 1 and 2 DF,  p-value: 0.01262 

betax <- fm1$coeff[2] * sd(x) / sd(y) 
# cd is coefficient of determination
cd <- betax * cor(y, x)
cd
       x 
0.974924 

The formula "fm1$coeff[2] * sd(x) / sd(y)" is valid only the model have
a intercept...

-- 
Bernardo Rangel Tura, M.D,MPH,Ph.D
National Institute of Cardiology
Brazil



More information about the R-help mailing list