Regressão Linear II


<?xml version="1.0" encoding="ISO-8859-1"?>
<Rscript>
<titulo>Regressão Linear II</titulo>
<descricao>
Regressão Linear revista para incluir tratamento de erros na fórmula fornecida pelo usuário.
</descricao>
<autor>Oswaldo G Cruz</autor>
<email>oswaldo@fiocruz.br</email>
<versao>1.1</versao>
<parametro>Entre com a formula a ser usada (ex: x ~ y+z)</parametro>
<parametro2></parametro2>
<colsel></colsel>
<colsel2></colsel2>
<script>
# tabela <- read.table("tabwin",check.names=FALSE)

tmp <- unlist(strsplit(parametro,"~"))
dep <- sub(' ', '', tmp[1])
tmp2 <- unlist(strsplit(tmp[2],"\\+"))
tmp2 <- sub('  ', '', tmp2)
indep <- sub(' ', '', tmp2)
indep <- sub(' ', '', indep)

FLAG <- FALSE

if (length(grep("~",parametro))==0) {
	cat ("\n\n	ERRO , formula deve ter um ~ separando a variavel dependente das demais \n")
		FLAG <- TRUE  
	} 
 



if (length(grep(dep,names(tabela)))==0) {
	cat (paste("\n	ERRO , Varieavel Dependente \"",dep, "\" desconhecida, digite exatamente o nome da coluna desejada \n\n"),sep="")
		FLAG <- TRUE  
	} 
 
 
 
for ( i in 1:length(indep)) { 
	if (length(grep(indep[i],names(tabela)))==0) { 
		cat (paste("\n	ERRO , Varieavel Independente \"",indep[i], "\" desconhecida, \n	digite exatamente o nome da coluna desejada \n"),sep="")
		FLAG <- TRUE  
	} 
}


if (FLAG) {
	cat ("\n	A formula necessita de  uma variavel dependente e uma ou mais  ")
	cat ("\n	variaveis independentes. \n\n")
	cat ("	Por Exemplo : casos ~ populacao + fator + idade \n\n")
	q()  
	} 
 



#win.metafile("tabwin%02d.wmf")
grafico.tabwin()


reg <- lm(as.formula(parametro),data=tabela)
summary(reg)
par(mfrow = c(2,2))
plot(reg)
tabela$residuos <- reg$residuals
write.table(tabela,"tabwin.out",sep=",", col.names=NA)
</script>
<exemplo>

</exemplo>
</Rscript>