testef<-function(fit0,fit1) { # # Descrição e detalhes: # Esta função calcula o valor da estatística F para testar dois modelos lineares generalizados encaixados. # # Só é adequado fazer o teste se o parâmetro de forma for grande (para gama e normal inversa) ou conhecido # (poisson e binomial) ou no caso normal linear (que é um teste exato). # # Os dados devem estar disponíveis pelo comando attach( ). # # Argumentos obrigatórios: # fit0: ajuste do modelo sob H0; # fit1: ajuste do modelo sob H1. # # A saída será o valor da estatística F juntamente com os graus de liberdade e o nível descritivo. # # Autor: Frederico Zanqueta Poleto , arquivo disponível em http://www.poleto.com # # Referência: # PAULA, G. A. (2003). Modelos de Regressão com apoio computacional. IME-USP, São Paulo. [Não publicado, # disponível em http://www.ime.usp.br/~giapaula/Book.pdf] # # Exemplo: # testef(ajuste.sobH0,ajuste.sobH1) # if( (class(fit0)[1]=="lm" | class(fit0)[1]=="glm") & (class(fit1)[1]=="lm" | class(fit1)[1]=="glm") & (class(fit0)[1]==class(fit1)[1]) ) { } else { stop(paste("\nA classe dos dois objetos deveriam iguais (lm ou glm) !!!\n")) } if(class(fit0)[1]=="glm") { if(fit0$family[[1]] != fit1$family[[1]]) { stop(paste("\nAs familias dos objetos deveriam ser as mesmas !!!\n")) } if(fit0$family[[2]] != fit1$family[[2]]) { stop(paste("\nAs funções de ligação dos objetos deveriam ser as mesmas !!!\n")) } } dev0<-deviance(fit0) dev1<-deviance(fit1) df0<-summary(fit0)$df[2] df1<-summary(fit1)$df[2] f<-((dev0-dev1)/(df0-df1)) / (dev1/df1) pvalue<-1-pf(f,df0-df1,df1) list(f=f,df1=df0-df1,df2=df1,pvalue=pvalue) }