#------------------------------------------------------------- # Para rodar este programa deixe no objeto fit.model a saída # do ajuste da regressão com erro binomial e ligação logit. # Deixe os dados disponíveis através do comando attach(...). # Depois use o comando source(...) no splus para executar o # programa. A sequência de comandos seria a seguinte: # # > fit.model <- ajuste # > attach(dados) # > source("envel.bino") # # A saída será o gráfico de envelopes para o resíduo componente # do desvio padronizado. Para colocar um título no gráficos após # a saída faça use title("..."). #-------------------------------------------------------------- # par(mfrow=c(1,1)) X <- model.matrix(fit.model) n <- nrow(X) p <- ncol(X) w <- fit.model$weights W <- diag(w) H <- solve(t(X)%*%W%*%X) H <- sqrt(W)%*%X%*%H%*%t(X)%*%sqrt(W) h <- diag(H) td <- resid(fit.model,type="deviance")/sqrt(1-h) e <- matrix(0,n,100) # for(i in 1:100){ dif <- runif(n) - fitted(fit.model) dif[dif >= 0 ] <- 0 dif[dif<0] <- 1 nresp <- dif fit <- glm(nresp ~ X, family=binomial) w <- fit$weights W <- diag(w) H <- solve(t(X)%*%W%*%X) H <- sqrt(W)%*%X%*%H%*%t(X)%*%sqrt(W) h <- diag(H) e[,i] <- sort(resid(fit,type="deviance")/sqrt(1-h))} # e1 <- numeric(n) e2 <- numeric(n) # for(i in 1:n){ eo <- sort(e[i,]) e1[i] <- eo[5] e2[i] <- eo[95]} # med <- apply(e,1,mean) faixa <- range(td,e1,e2) par(pty="s") qqnorm(td,xlab="Percentis da N(0,1)", ylab="Componente do Desvio", ylim=faixa, pch=16) par(new=T) # qqnorm(e1,axes=F,xlab="",ylab="",type="l",ylim=faixa,lty=1) par(new=T) qqnorm(e2,axes=F,xlab="",ylab="", type="l",ylim=faixa,lty=1) par(new=T) qqnorm(med,axes=F,xlab="", ylab="", type="l",ylim=faixa,lty=2)