[R-br] Usando AIC para seleção de modelo com o comando drop1(). Alguém poderia dar uma olhadinha :)

Augusto Ribas ribas.aca em gmail.com
Terça Maio 17 18:39:28 BRT 2011


Ola colegas de lista.
Eu estava lendo sobre seleção de modelos e fiquei na duvida se estou indo
pelo caminho certo no R.
Outra coisa, eu não achei exatamente nos livros que li o que eu deveria
reportar em um artigo, ao longo destes passos (se estes estiverem fazendo
sentido).
Eu tentei fazer um exemplo com uma com uma uma variavel resposta e duas
variaveis explicativas.
Usei o dataset do anscombe que vem no R, usando o primeiro exemplo dele mais
uma variavel ao acaso para exemplificar.

Aqui vai um codigo de como estava pensando:

#Abrindo os dados

anscombe
x2<-runif(11)

#fazendo um plot para olhar
panel.hist <- function(x, ...)
{
    usr <- par("usr"); on.exit(par(usr))
    par(usr = c(usr[1:2], 0, 1.5) )
    h <- hist(x, plot = FALSE)
    breaks <- h$breaks; nB <- length(breaks)
    y <- h$counts; y <- y/max(y)
    rect(breaks[-nB], 0, breaks[-1], y, col="cyan", ...)
}
panel.cor <- function(x, y, digits=2, prefix="", cex.cor, ...)
{
    usr <- par("usr"); on.exit(par(usr))
    par(usr = c(0, 1, 0, 1))
    r <- abs(cor(x, y))
    txt <- format(c(r, 0.123456789), digits=digits)[1]
    txt <- paste(prefix, txt, sep="")
    if(missing(cex.cor)) cex.cor <- 0.8/strwidth(txt)
    text(0.5, 0.5, txt, cex = cex.cor * r+1)
}
panel.lm = function(x, y, ...) {
tmp <- lm(y ~ x, na.action = na.omit)
abline(tmp)
points(x, y, ...)}

#legal, y1 é relacionado com x1 mas nao com x2  olhando esse grafico

pairs(cbind(y1=anscombe$y1,x1=anscombe$x1,x2),diag.panel=panel.hist,
lower.panel=panel.cor,upper.panel=panel.lm)

#agora fazendo um modelo

modelo1<-lm(anscombe$y1~anscombe$x1+x2)
modelo1

#vendo premissas
par(mfrow=c(2,2))
plot(modelo1)

#vendo o quanto os parametros ajudam
drop1(modelo1)

#testando quem ajuda significativamente

drop1(modelo1,test="F")

#novo modelo que eu vou ficar ja que vi no drop1 que posso tirar o x2

modelo2<-lm(anscombe$y1~anscombe$x1)
modelo2

#vendo premissas pro novo modelo
par(mfrow=c(2,2))
plot(modelo2)

#o que reportar num artigo de todo o processo?

#todo esse processo pode ser inverso tb, começando de um modelo simples e
indo pra um mais complexo
add1(modelo2, ~anscombe$x1+x2,test="F")

É isso. Agradeço a paciencia de te

-- 
Grato
Augusto C. A. Ribas

Site Pessoal: http://augustoribas.heliohost.org
Lattes: http://lattes.cnpq.br/7355685961127056
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20110517/af25f6f9/attachment.html>


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