Índice
O Curso
Material de Apoio
Área dos Alunos
Visitantes
Forum
notaR
Área Restrita
Cursos Anteriores
IBUSP
Outras Insitutições
IBUSP
Outras Insitutições
Uma função que faça um gráfico dos valores contra os quantis teóricos da normal, como na função qqnorm
, mas que também simule amostras de mesmo tamanho para criar um intervalo de confiança empírico para a linha do esperado.
A idéia é que se simulamos várias amostras e ordenamos os valores, podemos achar com a função quantile
quais os intervalos que contêm uma certa fração das observações, para a primeira, segunda, terceira, n-ésima observação. Estes limites podem ser usados para delimitar uma espécie de “intervalo de confiança” simulado, que serviria para avaliar o grau de aderência da amostra a uma distribuição normal.
Portar o mussum grapher para uma função do R 1).
qqnorm.ci package:nenhum R Documentation Gráfico dos quantis da normal com intervalo de confiança empírico Description: Produz um gráfico dos valores de um vetor em função dos quantis esperados pela distribuição normal. Adiciona ao gráfico uma linha de inclinação = 1, e também os limites do intervalo de confiança simulado. Usage: qqnorm.ci(x, alfa=0.9, nrep=1000, qqline=TRUE, ci=TRUE, ...) Arguments: x: Vetor numérico. Valores de uma amostra. alfa: numérico. Probabilidade associada ao intervalo de confiança (nível de confiança). nrep: número de randomizações para o cálculo do intervalo de confiança simulado (ver detalhes) qqline: lógico. Acrescentar linha do esperado? ci: lógico. Calcular o intervalo de confiança simulado? ...: qualquer argumento a repassar para a função plot. Details: Os valores da amostra (x) são ordenados e plotados contra os quantis esperados para uma distribuição normal com média e desvio padrão iguais aos da amostra. A linha esperada tem inclinação um e intercepto zero, e difere da obtida com a função 'qqline', que passa pelos segundo e terceiro quartis. Para o intervalo de confiança, nrep amostras de mesmo tamanho de x são simuladas de uma distribuição normal de mesma média e variância de x. Os valores em cada amostra simulada são ordenados e o intervalo de confiança é aquele que inclui a proporção dos valores simulados definida por alfa. Estes intervalos são obtidos aplicando-se a função 'quantile' aos nrep valores simulados do primeiro, segundo, terceiro, enésimo valor do vetor ordenado. Value: Um gráfico é gerado. Um data frame é retornado mas não é exibido na tela, com os seguintes vetores: Obs : valores da amostra em ordem crescente Percentis: os percentis correspondentes a cada elemento de x Quantis: os quantis esperados pela distribuição normal Lower, Upper: se o argumento ci é verdadeiro, os limites inferior e superior do intervalo de confiança simulado. Warning: O intervalo simulado não é uma solução analítica e serve apenas para fins exploratórios. Author(s): Fulano de Tal fulano@fulanonet.com.br References: Cleveland, W.S. (1994) The Elements of Graphing Data, Hobart Press ISBN 0-9634884-1-4 Wilk, M.B., Gnanadesikan, R. (1968) Probability plotting methods for the analysis of data. Normal probability plot. http://en.wikipedia.org/wiki/Normal_probability_plot See Also: 'qqnorm' e 'qqline' do pacote base, para o gráfico de quantil padrão do R, e a função 'ppoints', com a qual os percentis são calculados. Para uma função similar a esta mas bem mais completa, veja 'qq.plot', do pacote car. Examples: qqnorm.ci(rnorm(100)) ## Uma amostra de uma normal padronizada. qqnorm.ci(rexp(100, rate=10)) ## Amostra de uma distribuição exponencial com média =10 valores <- qqnorm(rpois(30,5)) ## Cria um objeto com os valores do gráfico
qqnorm.ci <- function(x, alfa=0.90, nrep=1000, qqline=TRUE, ci=TRUE,...){ if(is.vector(x)==F | is.numeric(x)==F){ cat("\n x deve ser um vetor numérico \n") } media <- mean(x) dp <- sd(x) percentis <- ppoints(length(x)) quantis <- qnorm(percentis,mean=media,sd=dp) plot(sort(x)~quantis, xlab="Quantis Teóricos",ylab="Observado", ...) results <- data.frame(Obs=sort(x),Percentile=percentis, Quantis= quantis) if(qqline==TRUE){ abline(0,1, col="blue") } if(ci==TRUE){ rmat <- matrix(rnorm(nrep*length(x),mean=media,sd=dp),nrow=length(x)) rmat <- apply(rmat,2,sort) lower <- apply(rmat,1,quantile,prob=(1-alfa)/2) upper <- apply(rmat,1,quantile,prob=(1+alfa)/2) lines(lower~quantis,col="red",lty=2) lines(upper~quantis,col="red",lty=2) results$Lower.CI <- lower results$Upper.CI <- upper } invisible(results) }