DF = data.frame( x=seq( 1, 5 ), y=c( 22.1, 17.3, 18.0, 22.8, 24.1 ) ) m_full = lm( y ~ x, data=DF ) summary(m_full) m_zero_intercept = lm( y ~ x - 1, data=DF ) summary(m_zero_intercept) # Compare the two models: # print( anova( m_zero_intercept, m_full ) ) #postscript("../../WriteUp/Graphics/Chapter2/ex_2_23_plot.eps", onefile=FALSE, horizontal=FALSE) plot( DF$x, DF$y, type='p', xlab='x', ylab='y', pch=19, cex=1.5 ) abline(m_full, col='blue') abline(m_zero_intercept, col='purple') legend( 'topleft', c('beta_0 + beta_1 x', 'beta_1 x'), col=c('blue', 'purple'), lty=c(1, 1) ) grid() #dev.off() # Compute REG/Total Total = sum( ( DF$y - mean(DF$y) )^2 ) REG_zero_intercept = Total - sum( ( DF$y - m_zero_intercept$fitted.values )^2 ) # How can this be negative? REG_full = Total - sum( ( DF$y - m_full$fitted.values )^2 ) cor( DF$y, m_zero_intercept$fitted.values )^2 cor( DF$y, m_full$fitted.values )^2