<div dir="ltr"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">Segue um código reproduzível de onde você pode ter suas próprias impressões.<br><br><span style="font-family:courier new,monospace">## Modelo alvo: ~b0+b1*speed, modelo nulo: ~b0+0*speed -> ~b0.<br>m1 <- lm(dist~speed, cars)<br>summary(m1)$r.squared<br><br>## Modelo alvo: ~0+b1*speed, modelo nulo: ~0+0*speed -> ~0.<br>m0 <- lm(dist~0+speed, cars)<br>summary(m0)$r.squared<br><br>## Expressão do R².<br>1-deviance(m1)/deviance(lm(dist~1, cars))<br>1-deviance(m0)/deviance(lm(dist~0, cars))<br><br>## R² do modelo pela origem comparado com o modelo só de intercepto, ou<br>## seja, ~b1*x vs ~b0 (que não são modelos encaixados).<br>1-deviance(m0)/deviance(lm(dist~1, cars))<br><br>## Se a definição do R² for o quadrado da correlação entre predito e<br>## observado?<br>cor(x=fitted(m0), y=cars$dist)^2 ## Bate com o anterior.<br>cor(x=fitted(m1), y=cars$dist)^2 ## **Não** bate com o anterior<br><br>## Moral da história: 1) não existe uma definição única de R², 2) em<br>## modelos sem intercepto o cuidado deve ser dobrado. Ainda deve ser<br>## mencionado que em modelo não lineares não é raro a ocorrência de<br>## modelos sem intercepto e considere o R² como última medida ao se<br>## referir a um modelo, preocupe-se mais com a análise dos resíduos,<br>## interpretação, faça o gráfico dos valores preditos, observados,<br>## etc. R² na minha opinião é o de menos.<br><br>with(cars,<br>     plot(dist~speed,<br>          xlim=extendrange(c(0, max(speed))),<br>          ylim=extendrange(c(0, max(dist)))))<br>abline(m1, col=2); abline(h=mean(cars$dist), col=2, lty=2)<br>abline(m0, col=4); abline(h=0, col=4, lty=2)<br>legend("topleft",<br>       legend=c("~b0+b1*x","~b0","b1*x","~0"),<br>       lty=c(1,2,1,2), col=c(2,2,4,4), bty="n")</span><br><br>À disposição.<br>Walmes.<br><br></div>​</div>