Baixe o app para aproveitar ainda mais
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)
Compartilhar