R (linguagem de programação)/Distribuições de probabilidade
Até agora R foi vista como uma linguagem de programação comum. Este capítulo enfoca na especialidade da linguagem: a estatística.
Para um bom entendimento deste capítulo, é recomendável um bom conhecimento de estatística; para isto consulte:
- o livro Probabilidade e Estatística (avançado)
- o capítulo Estatística do livro Matemática elementar (mais simples)
Distribuição normal
[editar | editar código-fonte]Em geral, para cada distribuição de probabilidade - e seria tentador dizer que para toda distribuição de probabilidade que alguém tenha algum dia inventado - R possui quatro funções associadas.
Vejamos, por exemplo, a distribuição mais importante de todas, a Distribuição normal.
rnorm é a função que simula variáveis normais. A forma de usar é:
x <- rnorm(n, mean, sd)
em que n é o tamanho da amostra (x será um vetor caso n > 1), e mean e sd são parâmetros (opcionais) dando a média e o desvio-padrão da normal. Se mean ou sd forem omitidos, serão usados os valores, respectivamente, de 0 e 1.
Por exemplo:
x <- rnorm(sd = 2, n = 10)
gera um vetor com 10 valores independentes e identicamente distribuídos, com média zero e desvio-padrão 2.
Para ver o gerador de normais em ação, siga a sequência abaixo:
x <- rnorm(1000) hist(x)
dnorm é a função que dá a densidade da normal, ou seja, é a implantação da equação
- .
Por exemplo, dnorm(1) retorna 0.2419707. Analogamente, dnorm pode receber um vetor de parâmetros, assim dnorm(seq(-1, 1, by=0.1)) gera todos valores da função densidade de probabilidade para os valores entre -1 e 1 (um vetor de 21 valores).
O histograma, gerado acima por simulação, também pode ser facilmente obtido usando-se dnorm:
x <- seq(-6, 6, by=0.1) y <- dnorm(x) plot(x, y, type="l")
pnorm é a função que dá a função de probabilidade acumulada da normal. Por exemplo, pnorm(1.96) é aproximadamente 97,5%. pnorm também recebe um vetor, ou seja, a sequência abaixo gera uma curva-S:
x <- seq(-6, 6, by=0.1) y <- pnorm(x) plot(x, y, type="l")
Finalmente, qnorm é a inversa de pnorm. q vem de quartil; para gerar o 1o quartil de uma normal de média 5 e desvio-padrão 3, basta fazer qnorm(0.25, mean = 5, sd = 3) (o valor é 2.976531). Analogamente, qnorm também pode receber um vetor de probabilidades, assim, a sequência abaixo é a inversa da curva-S:
x <- seq(0.001, 0.999, length=1000) y <- qnorm(x) plot(x, y, type="l")