[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