Buscar

apostila R

Prévia do material em texto

UNIOESTE – UNIVERSIDADE ESTADUAL DO OESTE DO 
PARANÁ
 Profª. Drª. Luciana P. Guedes
Eng. Agric. Denise M. Grzegozewski
APOSTILA:
 INTRODUÇÃO AO 
SOFTWARE R
O QUE É O SOFTWARE R?
O R é uma linguagem e ambiente para computação estatística e para gráficos. Trata-
se de um conjunto integrado de facilidades de software para manipulação de dados, cálculo 
e visualização gráfica. É um projeto disponível como Software Livre sob os termos da 
Licença Pública Geral GNU da Free Software Foundation na forma de código fonte. Ou seja, 
um projeto com o objetivo de criar um sistema computacional totalmente livre, que qualquer 
pessoa teria direito de usar, modificar e redistribuir o programa, ou seu código fonte, desde 
que garantindo para todos os mesmos direitos.
Sendo um Software Livre, os códigos fontes do R estão disponíveis na internet no 
website do CRAN – que é o The Comprehensive R Archive Network ou “Rede Completa de 
Arquivos do R”, no endereço (http://http://cran.r-project.org ). 
No software R são disponibilizados módulos ou pacotes (packages) que fornecem 
métodos estatísticos como: análise exploratória de dados, modelos lineares e não lineares, 
testes de hipóteses, técnicas gráficas e outros. Um dos pontos fortes é a facilidade e alta 
qualidade para impressão dos gráficos gerados, podendo ser produzidos com a 
possibilidade da inclusão de fórmulas e símbolos matemáticos.
INSTALAÇÃO DO SOFTWARE R
1º ACESSAR INTERNET
Acessar o endereço eletrônico (http://http://cran.r-project.org) e escolher o sistema 
operacional:
Clicar no sistema operacional 
escolhido
http://http://cran.r-project.org
http://cran.r-project.org/
http://cran.r-project.org/
http://http://cran.r-project.org
http://cran.r-project.org/
http://cran.r-project.org/
http://cran.r-project.org/
http://cran.r-project.org/
http://cran.r-project.org/
http://cran.r-project.org/
http://cran.r-project.org/
2º DOWNLOAD DO SOFTWARE R
Ao fazer o download do R 2.13.1 ou versão mais atualizada, este será salvo na pasta 
direcionada a downloads do computador com nome de R 2.13.1-win.exe.
3º EXECUTAR APLICATIVO R-2.13.1-win.exe
Encontrar o aplicativo do download e executar.
4º SELECIONE O IDIOMA PARA INSTALAÇÃO
Clicar para começar o 
download
Clicar em 
aplicativo
Executar aplicativo
5º PROGRAMA DE INSTALAÇÃO DO SOFTWARE R (clicar em avançar)
1 2
3 4
7
5 6
9
8
INSTALAÇÃO DOS PACOTES
Para instalar pacotes temos duas maneiras diferentes, citamos para o primeiro 
exemplo o pacote geoR e para segundo exemplo o pacote classInt:
i) Baixar arquivo .zip, salvar no computador e depois instalar:
1º Acessar o endereço eletrônico ( http://http://cran.r-project.org) 
2º Pacotes em ordem alfabética
Clicar em packages para baixar pacotes
Selecionar pacotes por ordem alfabética
http://http://cran.r-project.org
http://cran.r-project.org/
3º Escolha do pacote, Ex: geoR 
O pacote geoR é utilizado para análise geoestatística incluindo as tradicionais, os 
métodos baseados em probabilidade e Bayesian. 
4º Baixar arquivo .zip
Depois de baixar o arquivo geoR_1.6-35.zip, para o sistema operacional escolhido, 
este deve estar salvo em uma pasta para localização dos arquivos zipados para instalação.
Pacote 
escolhido
Escolher de acordo com o sistema operacional
5º Abrir o software R
6º Instalação dos pacotes
7º Localizar do pacote geoR.zip
Clicar em Packages 
“Pacotes” → Install 
package(s) from local zip 
files “Instalar pacote(s) a 
partir de arquivos zip 
locais...”
Encontrar o pacote geoR1.6-
35.zip, baixado e abrir.
8º Carregando o pacote geoR
ii) Outra forma de baixar pacotes diretamente da internet, como exemplo iremos baixar o 
pacote classInt idicado para para a escolha de intervalos de classe univariada para fins de 
mapeamento ou outros elementos gráficos. 
1º Abrir o software R
2º Packages ''Pacotes'' → Install package(s)... ''Instalar pacotes''
Para carregar o pacote instalado, 
digita-se “require(geoR)” no R 
Console.
Para carregar o pacote instalado 
digita-se ''require(geoR)'' no R 
Console e enter.
3º Abrindo a tela CRAN Mirror escolher a opção → Brazil PR → OK
4º Abrindo a tela Packages, escolher o pacote classInt (ou pacote desejado)→ OK
SALVAR DIRETÓRIO
Toda vez que abrirmos o software R e necessitamos inserir um conjunto de dados 
necessitamos salvar o diretório: File → Change dir... → encontrar a pasta de destino a ser 
trabalhado. 
Encontrar a pasta de destino 
SCRIPT (ROTEIRO)
Podemos realizar as operações matemáticas diretamente no R console, apenas 
digitando a operação, ou digitar no roteiro e enviar a linha de comando com Ctrl+r.
Script (roteiro) são as linhas de comandos utilizadas nas análises.
A seguir, dois exemplos de como montar um script.
i) Pode-se simplesmente utilizar um editor de texto (como Word ou Bloco de Notas) e digitar 
nele as linhas de comandos. Desta forma, basta copiar estas linhas de comandos e colar no 
“R Console” ;
ii) Uma outra forma de montar um script (roteiro)
Clicar em “File” → “New script” automaticamente abrirá uma janela, clicar em “File” 
→ “Save as...” e atribua um nome ao seu script (ex: Script.R), mas lembre de acrescentar a 
extensão do R (.R) ao final do nome. Confira as ilustrações abaixo, salvando todas as linhas 
de comandos utilizadas nas análises, isso evita que da próxima vez que precisar seja 
necessário digitar tudo novamente. 
1º “File” → “New script” (abrirá a janela do script)
2º “File” → “Save as...” 
Na ilustração seguinte veremos que o nome dado ao roteiro ficará salvo, mas ao final 
do trabalho, antes de fechar o script devemos salvar os dados digitados. 
Antes de salvar
Para enviar uma linha de comando do roteiro para o “R Console” basta 
posicionar o cursor sobre a linha do script e pressionar as teclas Ctrl+R . 
Alguns cuidados podem evitar o surgimento de erros, pois se deseja trabalhar no R 
por meio de linhas de comandos, portanto, é necessário ter atenção na hora de digitá-las. 
Esquecer de fechar um parêntesis, trocar vírgula por ponto ou letra maiúscula por 
minúscula, por exemplo, gera um erro.
COMANDOS NO R
Observações: 
i) # serve para inserir um comentário, que não influencia no comando;
ii) <- equivale ao sinal de igual (=);
iii) Nesta apostila, o que estiver escrito em VERMELHO são linhas de comandos da forma 
que o software as lê, e em AZUL o resultado. E o que estiver escrito após o sinal # refere-se 
aos comentários.
iv) Para visualizar todos os argumentos que uma função comporta e explicações sobre eles, 
basta colocar o símbolo ? antes do nome da função.
 Somente os parênteses podem ser utilizados nas expressões matemáticas. As 
chaves (”{}”) e os colchetes (”[]”) têm outras funções no R e causa erro. 
## OPERAÇÕES MATEMÁTICAS ##
 Apresentamos um exemplo copiado do R console e a forma como ele é 
apresentado no software. O roteiro apresenta operações matemáticas de soma, subtração, 
multiplicação, divisão, potenciação, raiz quadrada e operação algébrica:
Depois de salvar
Como em outros programas, por exemplo, o Excel, os operadores matemáticos sim-
ples são “+”, “-”, “*”, “/” e “^” – este último para potenciação.
## soma
2+3 
[1] 5
## subtração 
2-6
[1] -4
## multiplicação 
8*7 
[1] 56
## divisão 
2/10
[1] 0.2
##potenciação
10^3
[1] 1000
## raíz quadrada
sqrt(64)
[1] 8
## raiz quadrada 
64^0.5 
[1] 8
##operação algébrica
#Ex1:
(4 + 5 ) * 7 - (36/18)^3
[1] 55
#Ex2:
(2 * { 2 * [ 2 * (3-4)]})
Error: unexpected '[' in "(2 * { 2 * ["
Na sequência do roteiro apresentamos cálculo de exponencial, logaritmo, seno, 
cosseno e tangente de um ângulo, verificamos na ilustração a seguir.
Vamos aproveitar esse exemplo para explicar algumas características básicas das 
funções disponíveis no R. Todas têm a forma:
função (argumento(s) obrigatório(s), argumento(s)opcional (is))
Sendo que os argumentos opcionais podem ter um valor padrão pré-estabelecido ou 
não. Os argumentos estarão sempre entre parênteses sendo separados por vírgula. Se você 
deixar o primeiro argumento em branco, vai receber uma mensagem de erro:
log (, base=2)
Error in log (, base = 2) : Argument "x" is missing, with no default
Repare que o programa já indica que o argumento (que ele chama de “x”) obrigatório 
não foi fornecido e que não existe nenhum padrão (default). Agora, deixe o segundo argu-
mento em branco:
log (2,)
[1] 0.4931472
Objeto para o R significa tanto um banco de dados quanto à saída de uma função ou 
até mesmo uma fórmula. Para criar um objeto no R, seja ele qual for você deverá sempre 
usar o operador de asignment (<-), apontando para o nome de um objeto. Portanto podemos 
inserir objetos usando operações matemáticas, fazer operações com estes objetos e ainda 
armazenar palavras:
Adicionando sequências de valores ou vetores, um objeto vai receber uma sequência 
de valores variando de 1 em 1, ou com espaçamentos que determinamos. Também 
podemos encontrar o comprimento e operacionalizar vetores com mesma dimensão, como é 
o caso dos exemplos apresentados abaixo:
Podemos fazer operações com vetores pré-definidos, determinada posição e 
repetições do elemento, soma dos dados, média, variância, mínimo, máximo e quartis.
Outra facilidade oferecida pelo R é a capacidade de selecionar valores armazenados 
em posições específicas dentro de um vetor (na verdade, como veremos adiante, essa ca-
pacidade se estende para outros objetos do R como matrizes e data frames). Repare que 
para selecionar uma posição específica dentro de um vetor, usamos o nome do vetor segui-
do de um número entre colchetes. Esse número corresponde à posição do elemento nesse 
vetor.
Quando trabalhamos com matrizes podemos determinar o número de elementos, 
números de colunas e linhas, encontrando os elementos na posição desejada, dimensão da 
matriz, veja na ilustração abaixo:
Também podemos obter o determinante de uma matriz e sua matriz inversa:
Data frames é um banco de dados ou tabela de dados, na ilustração abaixo 
mostraremos um banco de dados disponível no R, chamado de (íris), teremos mais 
informações deste banco de dados quando digitamos help (iris) quando se abre uma página 
na internet. Este conjunto de dados dá o comprimento e largura em centímetros da variável 
sépala, largura e comprimento da pétala, por 50 flores de cada uma das três espécies de 
íris. As espécies são iris setosa, versicolor, e virginica.
Apresentamos na próxima ilustração abaixo parte do conjunto de dados iris, onde 
apresentamos o tamanho e largura da sépala, tamanho e largura da pétala e a espécie em 
determinada posição.
Na ilustração a seguir mostramos a seleção de uma variável em determinada 
posição. Também temos uma seleção de amostras em determinada posição, de amostras 
do comprimentos de sépalas maiores que 7.
Outra forma de utilizar conjunto de dados é salvar o conjunto de dados em arquivo 
.txt, sendo salvo na mesma pasta onde salvamos o diretório. Os dados devem estar dispos-
tos em colunas e acima de cada coluna pode constar (opcional) a descrição. Vejamos na 
próxima ilustração que chamamos o arquivo pelo nome de dados_aula, e pedimos para ler 
dadosaula1.txt com header = T indicando que na 1ª linha o arquivo contém os nomes. Ao 
dar o comando ctrl+r, no nome dado aos dados dados_aula apresentamos o que contém no 
conjunto de dados inserido. Podemos então ler só a coluna de notas, obter a média de cada 
coluna.
Usando outro conjunto de dados do R mtcars, que tem como descrição dados 
extraídos da revista Motor Trend EUA 1974, e compreende o consumo de combustível, 10 
aspectos do design de automóveis e de desempenho para 32 automóveis (modelos 1973-
1974), apresentamos a tabela de dados na ilustração abaixo:
Na próxima ilustração mt assume o nome do conjunto de dados, em que temos a 
dimensão de 32 linhas por 11 colunas
Dando sequência nas analises do conjunto de dados, analisamos o conjunto de 
dados cyl, onde avalia a quantidade de cilindros de cada carro, colocando em tabela a 
quantidade existente de cilindros, e depois transformando em %.
Vamos ver agora algumas funções no R para a geração de gráficos para as variáveis 
qualitativas e quantitativas discretas. O primeiro gráfico plotado é o barplot, apresenta 
gráfico em colunas.
O próximo gráfico plotado é o de barras, pizza e linhas, para a mesma frequência do 
número de cilindros.
Apresentamos a seguir gráficos para variáveis quantitativas contínuas, gráfico 
histograma para a variável mpg.
Também podemos plotar o gráfico histograma pré definindo os intervalos, obtemos 
boxplot que é um gráfico interessante principalmente para analisar a dispersão dos dados e 
para detectar a presença de pontos discrepantes.
Também podemos analisar duas variáveis em conjunto, plotando o gráficos destas 
juntos, citamos gráfico de frequência em colunas, e dispersão.
O símbolo ~ (til) na função boxplot () funciona como o peso estratificado pela variável mar-
cha versus o rendimento. As marchas, automática e manual tem rendimentos bastante dife-
rentes. Suas medianas e distribuições interquartis são bem diferentes.
Nas medidas de posição para a variável obtemos a média, o valor mínimo, valor má-
ximo, mediana, os quartis, quantis. 
Na próxima ilustração verificamos o resumo estatístico geral, através da ferramenta 
summary, encontramos os valores de mínimo, 1º quartil, mediana, 3º quartil e valor máximo 
chamando apenas uma função. Também podemos chamar uma função, por exemplo, a mé-
dia para todas as variáveis.
Na ilustração a seguir chamamos a função summary para todas as variáveis do 
conjunto de dados, e o software nos apresenta os valores mínimos, 1º e 3º quartis, mediana, 
média e valor máximo para todas as variáveis.
Nossa próxima ilustração apresenta a função densidade de probabilidade (fdp), que 
apresenta a f(x) no deful a média = 0 e desvio padrão = 1.
Outro exemplo apresentado, x recebe uma sequência de dados de 80 até 120 
espaçados em 0,1. A f(x) recebe a função de densidade com média = 100 e desvio padrão = 
6. Em seguida mostramos o gráfico da função.
 
Através da função densidade de probabilidade e assumindo que z tem distribuição 
normal de probabilidade, para valores de z variando de -3 à 3, calcula-se seus respectivos 
valores de f(z) e contrói-se o gráfico da normal apresentado na ilustração abaixo.
No próximo exemplo assumimos X com distribuição normal, com média 100 e desvio 
padrão 6, analisamos qual é a probabilidade de X ser menor ou igual a 80, e qual é a 
probabilidade de X ser maior ou igual a 80 através da função pnorm.
Agora analisamos qual é a probabilidade de X ser maior que 108, e qual é a 
probabilidade de X ser maior que 80 e menor que 108 através da função pnorm.
Também podemos fazer a comparação da distribuição do conjunto de dados 
amostral mtcars utliizado nos itens anteriores com a normal.
Para obtermos o gráfico Q-Q Plot normal, obtemos a sequência dos quantis da 
variável que queremos calcular, ou ainda podemos obter o gráfico de probabilidade normal 
pronto.
Podemos analisar o teste de normalidade dos dados, pelo teste de shapiro wilk, 
carregando o pacote nordest podemos realizar também os testes de Anderson-Darling, 
Lilliefors (Kolmogorov-Smirnov) e também teste Qui-quadrado de Pearson.
Apresentamos agora o roteiro utilizado nesta apostila
## OPERAÇÕES MATEMÁTICAS ##
##soma
2+3
##subtração
2-6
##multiplicação
8*7
##divisão
20/10
## potenciação
10^3
## raíz quadrada
sqrt(64)
## raiz quadrada 
64^0.5 
##operação algébrica
#Ex1:
(4 + 5 ) * 7 - (36/18)^3
#Ex2:
(2 * { 2 * [ 2 * (3-4)]})
 
## OPERAÇÕES MATEMÁTICAS 
## exponencialexp(1) 
## logaritmo natural 
log(2) 
## logaritmo na base 10 
log10(100) 
## logaritmo na base 2
log2(8) 
## logaritmo com qualquer base, ou log(27,3)
log(27, base = 3) 
## seno, cosseno e tangente de um ângulo, em radianos (não em graus) 
sin(pi/2) 
cos(pi/2)
tan(pi)
## OBJETOS
## colocou-se nº 10 num objeto chamado 
## de s, usando o operador <- 
s <- 10 
s
a <- 2*9
a
##vai haver um erro, p/ armazenar palavras,
##devemos colocá-las entre " "
x <- banana 
x
x <- "banana"
x
## operações entre dois (ou mais) objetos 
a + s 
## SEQUENCIAS DE VALORES: VETORES
## sequência de valores inteiros, do 1 ao 10, variando de 1 em 1
a <- 1:10 
a
b <- -5:5
b
c <- 5:-5
c
## dimensão (comprimento) de um vetor 
length(c)
## podemos operacionalizar vetores com mesma dimensão 
b + (2*c) 
## comando sequencia com espaçamento 2
d <- seq(0,20, by = 2) 
d
e <- seq(0,20, by = 0.5)
e
## sequencia com 8 elementos 
f <- seq(0,20, length.out = 8) 
f
### vetor com elementos pré-definidos ##
## que podem ser números
x <- c(1,0,-2,3,4,6,10) 
x
## ou palavras 
d <- c("Ana", "Carlos", "Juliana") 
d
### seleção de elementos de um vetor, com uma determinada posição 
## qual é o 2º elemento do vetor x? 
x[2] 
x9 <- c(1,0,-2,3,4,6,10,45,57,70,77)
x9
sum(x9)
mean(x9)
var(x9)
min(x9)
max(x9)
summary(1:10)
x10 <- x9[x9 > 76]
x10
## qual é o vetor de elementos do vetor x, do 1º ao 4º? 
x[1:4] 
x[c(1,4)]
## REPETIÇÕES
## repetição do nº 2, 20 vezes
a <- rep(2,20) 
a
## repetição de 26 células, sem nenhum elemento
b <- rep(NA, 26)
b
## repetição da sequência de nº's 1,2,3,4, cada nº sendo repetido 2 vezes 
rep(1:4, each = 2)
## repetição da sequência de nº's 1,2,3,4, duas vezes 
rep(1:4, 2)
## repetição da sequência de nº's 1,2,3,4, cada nº sendo repetido 2 vezes
## e essa repetição, realizada 3 vezes 
rep(1:4, each = 2, 3)
## MATRIZES 
k <- 1:16
k
## matriz com os elementos de k, com 4 colunas e linhas 
z <- matrix(k, ncol = 4, nrow = 4)
z
## matriz com os elementos de k, com 4 colunas e linhas 
## sendo que os elementos são distribuídos por linhas 
w <- matrix(k, ncol = 4, nrow = 4, byrow = T)
w
## seleção de um elemento na matrix w 
w[1,3] ## na posição: 1ª linha, 3ª coluna 
w[2,] ## elementos da 2ª linha 
w[,4] ## elementos da 4ª coluna
## dimensão de uma matriz 
dim(w)
## determinante de uma matriz ##
c <- matrix(c(2,4,6,8), ncol = 2, nrow = 2)
c
det(c)
## matriz inversa ##
solve(c)
## DATA FRAMES - TABELA DE DADOS OU BANCO DE DADOS
## banco de dados disponível no R 
## "chama" o banco dados (150 dados)
data(iris) 
iris
## informações sobre esse banco de dados
help(iris)
## parte do banco de dados (iris) 
dados1 <- iris[1:4,] 
dados1
dados2 <- iris[50:54,] 
dados2
dados3 <- iris[100:104,] 
dados3
## nome das variáveis
names(dados1) 
## seleção de uma variável
dados1[,3]
## escolha de uma variável
dados1$Petal.Length 
## seleção de amostras com uma determinada condição
## amostras c/ tamanho de sépala maior que 7 
iris[iris$Sepal.Length > 7,] 
## amostras da espécie virginica 
iris[iris$Species == "virginica",] 
## criar um banco de dados em bloco de notas ##
## header = T indica que na 1ª linha o arquivo contém os nomes das colunas ##
dados_aula <- read.table("dadosaula1.txt", header = T) ## lendo um conjunto de dados em 
txt ##
dados_aula
dados_aula[2]
mean(dados_aula[2],header = T)
mean(dados_aula[3],header = T)
mean(dados_aula[4],header = T)
## TABELAS 
data(mtcars)
help(mtcars)
mtcars
names(mtcars)
mt <- mtcars
mt
dim(mt)
mt$cyl
## contagem do nº de carros em cada nº de cilindros
table(mt$cyl)
## idem anterior, em % 
propcyl <- (table(mt$cyl)/length(mt$cyl))*100 
propcyl
## GRÁFICOS PARA VARIÁVEIS: 
##QUALITATIVAS E QUANTITATIVAS DISCRETAS
tc <- table(mt$cyl)
tc
## gráfico em colunas 
## já devemos fornecer ao R, o cj. de dados agrupados em frequências ou %
barplot(tc, xlab = "Número de cilindros", ylab = "Frequência")
barplot(propcyl, xlab = "Número de cilindros", ylab = "Porcentagem")
## gráfico em barras 
## já devemos fornecer ao R, o cj. de dados agrupados em frequências ou % 
barplot(tc, ylab = "Número de cilindros", xlab = "Frequência", horiz=T)
barplot(propcyl, ylab = "Número de cilindros", xlab = "Porcentagem", horiz=T)
## gráfico em pizza 
## já devemos fornecer ao R, o cj. de dados agrupados em frequências ou %
pie(tc, main = "")
pie(tc, main = "gráfico do número de cilindros")
## gráfico de linha 
## já devemos fornecer ao R, o cj. de dados agrupados em frequências ou % 
plot(tc)
### GRÁFICO PARA VARIÁVEL QUANTITATIVA CONTÍNUA
## gráfico histograma 
hist(mt$mpg)
hist(mt$mpg, xlab = "rendimento", ylab = "Frequência", main = "")
## gráfico histograma pré definindo os intervalos
hist(mt$mpg, xlab = "rendimento", ylab = "Frequência", main = "")
hist(mt$mpg, xlab = "rendimento", ylab = "Frequência", main = "", breaks = c(10,20,30,40))
## gráfico boxplot 
boxplot(mt$mpg)
boxplot(mt$mpg, ylab = "Rendimento (Milhas/Galão)")
### ANÁLISE GRÁFICA BIVARIADA 
## am: tipo de marcha, 0: automática, 1: manual
## tabelas de dupla entrada
table(mt$am, mt$cyl)
prop.table(table(mt$am, mt$cyl))*100
## gráfico em colunas considerando a contagem em relação a 2 variáveis
barplot(table(mt$am, mt$cyl))
barplot(table(mt$am, mt$cyl), leg = T, beside = T) ## com legenda e lado a lado
## gráfico de dispersão 
plot(mt$cyl, mt$mpg)
### boxplot bivariado
## boxplot do rendimento, p/ os carros divididos em tipo de marcha
boxplot(mt$mpg ~ mt$am, xlab = "Marcha", ylab = "Rendimento")
boxplot(mt$mpg ~ mt$am, xlab = "Marcha", ylab = "Rendimento", names = c("Automática", 
"Manual"))
### MEDIDAS DE POSIÇÃO 
## média aritmética
mean(mt$mpg) 
## mínimo
min(mt$mpg) 
## máximo
max(mt$mpg) 
## mediana
median(mt$mpg) 
## quartis 
quantile(mt$mpg) 
## quantis 10% e 90% ##
quantile(mt$mpg, c(0.1,0.9)) 
## resumo estatístico geral
summary(mt$mpg) 
## média
mean(mt)
summary(mt)
### MEDIDAS DE DISPERSÃO 
## variância amostral 
var(mt$mpg) 
## desvio padrão amostral
sd(mt$mpg) 
## coeficiente de variação amostral
cv <- (sd(mt$mpg)/mean(mt$mpg))*100 
cv
## desvio padrão amostral
sd(mt) 
## coeficiente de variação amostral 
cv <- (sd(mt)/mean(mt))*100 
cv
help(dnorm)
## função densidade de probabilidade f(x) 
## default: média = 0; desvio padrão = 1 
## dnorm(x, mean = 0, sd = 1, log = FALSE)
## exemplo: X~N(100,36) 
x <- seq(80,120, by = 0.1)
fx <- dnorm(x, mean = 100, sd = 6, log = F)
help(by)
cbind(x,fx)
plot(x,fx)
plot(x,fx,type = "l")
## FUNÇÃO DENSIDADE DE PROBABILIDADE fdp 
## Assumindo que z tem distribuição normal de probabilidade:
## Para valores de z variando de -3 à 3, calcula-se seus respectivos valores
## de f(z) e contrói-se o gráfico da normal
z <- seq(-3,3, length.out = 101)
fdp <- dnorm(z, log = F)
cbind(z,fdp)
plot(z,fdp)
plot(z,fdp, type = "l")
## Ou simplesmente: ##
curve(dnorm, from = -3, to = 3)
## FUNÇÃO DISTRIBUIÇÃO (ou ACUMULADA) F(x) = P(X <= x) 
## pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE) ##
## gráfico da dist. normal acumulada
x<-seq(-3,3,0.01)
plot(x, pnorm(x), type="l")
## Seja X com dist. normal, com média 100 e desvio 6 
## Qual é a probabilidade de X ser menor ou igual a 80? 
## Ou seja: lower.tail = T (default) == P(X<=80) = F(80)
pnorm(80, mean = 100, sd = 6)
## Qual é a probabilidade de X ser maior ou igual a 80?
## Se lower.tail = F == P(X > 80) 
pnorm(80, mean = 100, sd = 6, lower.tail = F)
## Qual é a probabilidade de X ser maior que 108?
pnorm(108, mean = 100, sd = 6, lower.tail = F)
1-pnorm(108, mean = 100, sd = 6)
## Qual é a probabilidade de X ser maior que 80 e menor que 108 (está entre 80 e 108)? ##
pnorm(108, mean = 100, sd = 6) - pnorm(80, mean = 100, sd = 6)
## FUNÇÃO QUANTIL ##
## qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)##
## Quantil de 0.5: qual é o valor de x, tal que P(X<=x)=0.5 ##
qnorm(0.5)
## COMPARAÇÃO DA DIST DO CJ. DE DADOS AMOSTRAL COM UMA NORMAL ##
data(mtcars)
mt <- mtcars
mt
mean(mt$mpg)
sd(mt$mpg)
x <- seq(10, 40, length.out = 101)
d <- dnorm(x, mean = mean(mt$mpg), sd = sd(mt$mpg))
par(mfrow=c(1,2))
hist(mt$mpg, xlab = "rendimento", ylab = "Frequência", main = "", breaks = seq(10,40, by = 
3))
plot(x,d, type = "l", col = "blue")
## GRÁFICO Q-Q PLOT NORMAL 
## sequência dos quantis que queremos calcular
quantis <- seq(0,1,length.out = length(mt$mpg)) 
## quantis amostrais para a sequência de quantis acima 
q_emp <- quantile(mt$mpg, quantis) 
q_teo <- qnorm(quantis)
plot(q_teo,q_emp)
## ou ainda: (gráfico de probabilidade normal pronto)
qqnorm(mt$mpg)
## comparação dos dois gráficos anteriores
par(mfrow=c(1,2))
plot(q_teo,q_emp)
qqnorm(mt$mpg)
#TESTE DE NORMALIDADE
#Teste shapiro wilk
shapiro.test(mt$mpg)
require(nortest)
#Anderson-Darling
ad.test(mt$mpg)
#Realiza o teste de Lilliefors (Kolmogorov-Smirnov) para normalidade
lillie.test(mt$mpg)
#teste Qui-quadrado de Pearson
pearson.test(mt$mpg)

Continue navegando