[R-br] obtencao do coef. de determinacao

walmes . walmeszeviani em gmail.com
Terça Setembro 9 12:22:51 BRT 2014


Segue um código reproduzível de onde você pode ter suas próprias impressões.

## Modelo alvo: ~b0+b1*speed, modelo nulo: ~b0+0*speed -> ~b0.
m1 <- lm(dist~speed, cars)
summary(m1)$r.squared

## Modelo alvo: ~0+b1*speed, modelo nulo: ~0+0*speed -> ~0.
m0 <- lm(dist~0+speed, cars)
summary(m0)$r.squared

## Expressão do R².
1-deviance(m1)/deviance(lm(dist~1, cars))
1-deviance(m0)/deviance(lm(dist~0, cars))

## R² do modelo pela origem comparado com o modelo só de intercepto, ou
## seja, ~b1*x vs ~b0 (que não são modelos encaixados).
1-deviance(m0)/deviance(lm(dist~1, cars))

## Se a definição do R² for o quadrado da correlação entre predito e
## observado?
cor(x=fitted(m0), y=cars$dist)^2 ## Bate com o anterior.
cor(x=fitted(m1), y=cars$dist)^2 ## **Não** bate com o anterior

## Moral da história: 1) não existe uma definição única de R², 2) em
## modelos sem intercepto o cuidado deve ser dobrado. Ainda deve ser
## mencionado que em modelo não lineares não é raro a ocorrência de
## modelos sem intercepto e considere o R² como última medida ao se
## referir a um modelo, preocupe-se mais com a análise dos resíduos,
## interpretação, faça o gráfico dos valores preditos, observados,
## etc. R² na minha opinião é o de menos.

with(cars,
     plot(dist~speed,
          xlim=extendrange(c(0, max(speed))),
          ylim=extendrange(c(0, max(dist)))))
abline(m1, col=2); abline(h=mean(cars$dist), col=2, lty=2)
abline(m0, col=4); abline(h=0, col=4, lty=2)
legend("topleft",
       legend=c("~b0+b1*x","~b0","b1*x","~0"),
       lty=c(1,2,1,2), col=c(2,2,4,4), bty="n")

À disposição.
Walmes.

​
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140909/f9ab52f6/attachment.html>


Mais detalhes sobre a lista de discussão R-br