Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introduc¸a˜o ao Ambiente Computacional R Renato Nunes Pereira1 Setembro de 2014 Suma´rio 1 Instalando o R 2 2 Iniciando o R 2 2.1 Comando de ajuda no R . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.3 Entrada de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4 Operac¸o˜es aritme´ticas . . . . . . . . . . . . . . . . . . . . . . . . 8 2.5 Operac¸o˜es com vetores e matrizes . . . . . . . . . . . . . . . . . . 9 3 Estat´ıstica descritiva 10 3.1 Medidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2 Func¸o˜es gra´ficas no R . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2.1 A func¸a˜o plot() . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2.2 Gra´fico de Barras: func¸a˜o barplot() . . . . . . . . . . . 13 3.2.3 Histograma: a func¸a˜o hist() . . . . . . . . . . . . . . . . 16 3.2.4 Entrando com os dados no R . . . . . . . . . . . . . . . . 17 3.3 Explorando o histograma . . . . . . . . . . . . . . . . . . . . . . 18 3.4 Boxplot: func¸a˜o boxplot() . . . . . . . . . . . . . . . . . . . . . 20 4 Exerc´ıcos utilizando o R 21 4.1 Exerc´ıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5 Distribuic¸o˜es de probabilidade 24 5.1 Distribuic¸a˜o Binomial . . . . . . . . . . . . . . . . . . . . . . . . 25 5.2 Distribuic¸a˜o Normal . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.2.1 Probabilidade . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.3 Exerc´ıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6 Ana´lise de frequeˆncias usando tabelas de contingeˆncia 29 6.1 Exerc´ıcio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 7 Noc¸a˜o ba´sica de programac¸a˜o no R 31 7.1 Comandos de lo´gica . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.1.1 Which . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.1.2 if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 7.1.3 if else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 7.1.4 ifelse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 7.2 Looping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 7.2.1 O loop for . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 7.2.2 O loop while . . . . . . . . . . . . . . . . . . . . . . . . . 34 1Departamento de Matema´tica, Instituto de Cieˆncias Exatas Rural do Rio de Janeiro, Campus de Serope´dica. E-mail: rnpmoc@gmail.com 1 7.2.3 O loop repeat . . . . . . . . . . . . . . . . . . . . . . . . 35 7.3 Exerc´ıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 1 Instalando o R O programa esta´ dispon´ıvel em: www.r-project.org PASSOS 1. Apo´s entrar neste site, clique em CRAN. 2. Em seguida, escolha um espelho perto de voceˆ, por exemplo, o espelho da Universidade de Sa˜o Paulo, Piracicaba: http://brieger.esalq.usp.br/CRAN/ 3. Escolha seu sistema operacional, por exemplo, Windows. 4. Escolha o arquivo executa´vel, por exemplo, R-2.15.1-win.exe. Pronto! E´ so´ baixar e executar. 2 Iniciando o R Para a utilizac¸a˜o do R, basta seguir os seguintes passos: 1. inicie o R em seu computador; 2. voceˆ vera´ uma janela com uma barra de menu, algumas mensagens ba´sicas e o s´ımbolo > em vermelho, que e´ o prompt do R indicando que o sistema esta´ pronto para receber seus comandos. 2.1 Comando de ajuda no R help.start() inicia documentac¸a˜o na forma de arquivos html visualizados no seu browser. help(to´pico) ou ?(to´pico) iniciam uma janela de ajuda sobre to´pico. 2.2 Objetos O R e´ uma linguagem orientada a objetos (varia´veis, dados, matrizes, ar- rays, data-frames, listas, func¸o˜es etc) que sa˜o armazenados na memo´ria ativa do computador e a partir da´ı todas as operac¸o˜es matema´ticas podem ser feitas usando esses objetos. Veja como se deve proceder para criar um objeto: 1) Escolher um nome para o objeto, x, por exemplo; 2) Atribuir um valor a esse nome; 3) A atribuic¸a˜o de um valor a um nome pode ser feita, basicamente, de duas maneiras. Usando o sinal de igualdade (=) ou uma seta formada pela junc¸a˜o do sinal menor que (<) e o sinal de menos -, ou seja <-. Veja a seguir alguns tipos de armazenamentos. No R ha´ uma distinc¸a˜o entre letras minu´sculas e MAIU´SCULAS. 2 1) Nu´mero: e´ poss´ıvel atribuir um u´nico nu´mero ao objeto. Exemplo: atribuir o nu´mero 10 ao objeto x e o nu´mero 2 ao ob- jeto y. > x <- 10 # x recebe 10 > x # Para verificar quanto vale o objeto x. [1] 10 > y <- 2 # y recebe 2 > y # Para verificar quanto vale o objeto y. [1] 2 Observac¸~ao importante: o sinal # que aparece acima e´ utilizado para fa- zer comenta´rios. Tudo que for escrito depois desse sinal sera´ entendido como comenta´rio e na˜o sera´ interpretado como comando. 2) Vetor: para atribuir um conjunto de valores a um objeto pode-se usar o comando c(), em que os valores vem separados por v´ırgulas, dentro do pareˆnteses. > x <- c(2,3,5,7,11) # os 5 primeiros nu´meros primos > x [1] 2 3 5 7 11 > y <- c(x,13,17,19,23) # adicionando mais quatro nu´meros primos > y[7] # vetor que ocupa a se´tima posic¸~ao. [1] 17 3) Sequeˆncia: uma sequeˆncia pode ser atribu´ıda a um objeto da seguinte forma. > x<-1:20 # sequ¨e^ncia de 1 a 20 > x [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 > seq(1,20,1) # a mesma seque^ncia anterior [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 > seq(1,20,2) # de 2 em 2 [1] 1 3 5 7 9 11 13 15 17 19 > y <- 20:1 # sequ¨e^ncia decrescente de 20 a 1 > y [1] 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 > rep(1,5) # repetir o nu´mero 1, 5 vezes. 3 [1] 1 1 1 1 1 > rep(c(1,2),10) # repetir o vetor 10 vezes [1] 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 > c(rep(0,10),rep(1,5)) # repetir o 0, 10 vezes e o 1, 5 vezes. [1] 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 > paste("tr",1:5,sep="") [1] "tr1" "tr2" "tr3" "tr4" "tr5" 4) Matriz: uma matriz e´ atribu´ıda a um objeto pela func¸a˜o matrix(). > X<-matrix(c(5,5,6,1,2,4,5,6,7,10,2,4),3,4) > X [,1] [,2] [,3] [,4] [1,] 5 1 5 10 [2,] 5 2 6 2 [3,] 6 4 7 4 > Y<-matrix(c(5,5,6,1,2,4,5,6,7,10,2,4),ncol=4) > Y # A mesma matriz anterior, pore´m especificando apenas o nu´mero de colunas. [,1] [,2] [,3] [,4] [1,] 5 1 5 10 [2,] 5 2 6 2 [3,] 6 4 7 4 Indices das matrizes > X[3,2] # elemento da matriz X na linha 3 e coluna 2. [1] 4 > X[,3] # extraindo a terceira coluna [1] 5 6 7 > X[2,] # extraindo a segunda linha [1] 5 2 6 2 > X[c(1,2),] # extraindo duas linhas [,1] [,2] [,3] [,4] [1,] 5 1 5 10 [2,] 5 2 6 2 > X[,1:3] # extraindo tre^s colunas 4 [,1] [,2] [,3] [1,] 5 1 5 [2,] 5 2 6 [3,] 6 4 7 5) Arrays: o array representa uma hipermatriz, ou seja, um conjunto de nu´- meros arranjados em mais de 2 dimenso˜es. O comando usado e´ o array(). Obs: A primeira posic¸a˜o da func¸a˜o array() se refere aos argumentos das matrizes e a segunda posic¸a˜o se refere a`s dimenso˜es do mesmo. > Z<-array(0,c(2,2,2)) # array de zeros > Z , , 1 [,1] [,2] [1,] 0 0 [2,] 0 0 , , 2 [,1] [,2] [1,] 0 0 [2,] 0 0 > M<-array(c(1,2,3,4,5,6,7,8), c(2,2,2)) > M , , 1 [,1] [,2] [1,] 1 3 [2,] 2 4 , , 2 [,1] [,2] [1,] 5 7 [2,] 6 8 6) Data frame: essa estrutura de dados e´ uma espe´cie de tabela, de estru- tura bidimensional de dados. Sua func¸a˜o e´ data.frame(). > K<-data.frame("Dia´rias" = c("Hotel 1", "Hotel 2", "Hotel 3"), + "Prec¸o" = c(175, 200, 250) ) > K Dia´rias Prec¸o 1 Hotel 1 175 2 Hotel 2 200 3 Hotel 3 250 5 > L3 <- LETTERS[1:3] > d <- data.frame(cbind(x=1, y=1:10), fac=sample(L3, 10, repl=TRUE)) > d x y fac 1 1 1 B 2 1 2 C 3 1 3 B 4 1 4 C 51 5 A 6 1 6 B 7 1 7 C 8 1 8 A 9 1 9 B 10 1 10 A 2.3 Entrada de dados Pode-se entrar com dados no R de diferentes formas. Veja a seguir algumas delas. 1. Criac¸a˜o de vetores, matrizes, data frames, listas etc. Nota: essas formas s~ao adequadas para entrada de dados direta- mente no R. 2. O R pode ler arquivos de estruturas simples como as extenso˜es .txt e .r. Tambe´m e´ poss´ıvel importar outros tipos de arquivos mais complexos, como os .csv. Veja os procedimentos para leitura dos dados com essas extenso˜es: Passo 1) Mudar o direto´rio: Clique em R console => Arquivo => Mudar o direto´rio => localizar a pasta de trabalho. Passo 2) Depende da extensa˜o do arquivo. • Se a extensa˜o do seu arquivo for .txt. sintaxe: dados < − read.table("Nome−do−arquivo.txt", opc¸~oes) opc¸~oes: header: TRUE, assume que a primeira linha da tabela conte´m ro´tulos das varia´veis. FALSE, assume que os dados se iniciam na primeira li- nha. Exemplo: Importar os dados provenientes do arquivo altura.txt, disponibilizado no curso do professor Renato, e amarzenar no objeto de nome Altura: > Altura<-read.table("altura.txt",header=TRUE) 6 Visualiza os dados obtidos e armazenados no objeto Altura: > Altura Aluno Altura 1 Pedro 1.86 2 Augusto 1.89 3 Ana 1.55 4 Fernanda 1.63 5 Gustavo 1.80 • Se a extensa˜o do seu arquivo for .r. sintaxe: dados < − read.table("Nome−do−arquivo.r", opc¸~oes) opc¸o˜es: header: TRUE, assume que a primeira linha da tabela conte´m ro´tulos das varia´veis. FALSE, assume que os dados se iniciam na primeira li- nha. • Se a extensa˜o do seu arquivo for .csv. Para importar dados a partir de uma planilha do Microsoft Excel, e´ necessa´rio antes salvar essa planilha no formato .CSV (valores separados por v´ırgula). Para salva´-la nesse formato, clique em Arquivo do menu, em seguida Salvar como.... Na parte inferior da caixa de dia´logo, clique sobre as opc¸o˜es de Salvar como tipo e selecione CSV (separado por v´ırgulas). Agora basta escolher a pasta de destino e clicar no bota˜o Salvar. Surgira˜o algumas mensagens indicando a incompatibilidade de alguns recursos do Microsoft Excel com esse formato, mas como o que nos interessa sa˜o apenas os dados, clique em OK e em seguida em SIM. • Lendo arquivos do tipo CSV (separado por vı´rgulas) Podemos usar o comando read.csv para armazenar os dados desse ar- quivo em um objeto do R chamado dados: sintaxe: dados < − read.csv("nome−do−arquivo.csv", opc¸~oes) opc¸~oes: sep: caractere utilizado para separac¸~ao dos campos e valores. Nor- malmente e´ utilizado o ponto e vı´rgula (;) dec: caractere utilizado para separar as casas decimais. Normalmente ponto (.) ou vı´rgula (,). header: TRUE, assume que a primeira linha da tabela conte´m ro´tulos das varia´veis. FALSE, assume que os dados se iniciam na primeira li- nha. Exemplo: 7 Importar os dados provenientes do arquivo altura.csv, disponibilizado no curso do professor Renato, com v´ırgula como sinal decimal, ponto e v´ırgula como separador de campos e valores e armazena no objeto de nome Altura: > Altura <- read.csv("altura.csv", sep=";", dec=",", header=TRUE) Visualiza os dados obtidos e armazenados no objeto Altura: > Altura Aluno Altura 1 Pedro 1.86 2 Augusto 1.89 3 Ana 1.55 4 Fernanda 1.63 5 Gustavo 1.80 2.4 Operac¸o˜es aritme´ticas O R pode ser usado como uma calculadora, sendo u´til para realizac¸a˜o dos mais diversos ca´lculos. > x<- 8 > y<- 6 > x + y # Soma [1] 14 > x - y # Subtrac¸~ao [1] 2 > x*y # Produto de escalares [1] 48 > x/y # divis~ao [1] 1.3333 > x^y # Potenciac¸~ao [1] 262144 > sqrt(x^y) # Raiz quadrada [1] 512 > k <- x*y/(y^2) > k [1] 1.3333 A seguir, temos uma lista de algumas func¸o˜es aritme´ticas no R: 8 Func¸a˜o Significado sqrt(x) Raiz quadrada de x abs(x) Valor absoluto de x (postivo) sin(x), cos(x), tan(x) Func¸o˜es trigonome´tricas de x asin(x), acos(x), atan(x) Func¸o˜es trigonome´tricas inversas de x sinh(x), cosh(x), tanh(x) Func¸o˜es hiperbo´licas de x asinh(x), acosh(x), atanh(x) Func¸o˜es hiperbo´licas inversas de x exp(x) Antilogar´ıtmo de x (ex) log(x) Logar´ıtmo de base e de x log10(x) Logar´ıtmo base 10 de x log(x,n) Logar´ıtmo de base n de x choose(n,x) n!(x!(n-x)!) 2.5 Operac¸o˜es com vetores e matrizes > A<-c(1,2,3,4) # Vetor A > A [1] 1 2 3 4 > t(A)%*%A # A'A (A transposto "vezes" A). [,1] [1,] 30 > X<- matrix(c(3,2,1,1,2,6,5,4,4),3,3) # Matrix com 3 linhas e 3 colunas. > X [,1] [,2] [,3] [1,] 3 1 5 [2,] 2 2 4 [3,] 1 6 4 > Y<-t(X)%*%X # X'X (X transposta "vezes" X) > Y [,1] [,2] [,3] [1,] 14 13 27 [2,] 13 41 37 [3,] 27 37 57 > Xinv<-solve(X) # Inversa da matriz X > Xinv [,1] [,2] [,3] [1,] 8 -13.0 3 [2,] 2 -3.5 1 [3,] -5 8.5 -2 9 3 Estat´ıstica descritiva 3.1 Medidas Nesta sec¸a˜o sera˜o apresentadas algumas estat´ısticas descritivas e gra´ficos fre- quentemente utilizados em diversas a´reas. A seguir, temos uma lista de algumas func¸o˜es estat´ısticas no R: Func¸a˜o Significado max(x) Ma´ximo da amostra x min(x) Mı´nimo da amostra x mean(x) Me´dia da amostra x median(x) Mediana da amostra x quantile(x) Quartis da amostra x var(x) Variaˆncia amostral de x sd(x) Desvio padra˜o amostral de x cov(x,y) Covariaˆncia entre x e y cor(x,y) Correlac¸a˜o entre conjuntos x e y Como exemplo, considere os dados dos vetores X e Y, no R: > X <- c(12,10,9,8,7,6,15,19,17,18) > Y <- c(20,18,16,17,12,11,24,25,30,35) Pode-se calcular a me´dia de Y, assim como a me´dia de X, da seguinte forma: > mean(X) [1] 12.1 > mean(Y) [1] 20.8 A mediana de Y e´ dada por: > median(Y) [1] 19 Os percentis, que por padra˜o no R sa˜o calculados os P0, P25, P50, P75 e P100, sa˜o obtidos por meio de: > quantile(Y) 0% 25% 50% 75% 100% 11.00 16.25 19.00 24.75 35.00 O mı´nimo e ma´ximo de Y sa˜o calculados da seguinte maneira: > min(Y) [1] 11 > max(Y) 10 [1] 35 No R, existe o comando summary capaz de resumir todas as medidas que falamos anteriormente, como por exemplo: > summary(Y) Min. 1st Qu. Median Mean 3rd Qu. Max. 11.0 16.2 19.0 20.8 24.8 35.0 As medidas de dispersa˜o variaˆncia e desvio padra˜o, da varia´vel em estudo, sa˜o calculadas, repectivamente, por: > var(Y) [1] 59.289 > sd(Y) [1] 7.6999 Ale´m das medidas mostradas anteriormente, podemos calcular a correlac¸a˜o e a convariaˆncia, respectivamente, entre as varia´veis X e Y. > cor(X,Y) [1] 0.92311 > cov(X,Y) [1] 34.244 3.2 Func¸o˜es gra´ficas no R Para um boa abordagem estat´ıstica e´ importante que o pesquisador fac¸a inicialmente uma ana´lise preliminar nos seus dados e uma forma seria por meio de uma inspec¸a˜o gra´fica. 11 3.2.1 A func¸a˜o plot() A func¸a˜o gra´fica geral mais utilizada e flexivel do R e´ a plot(). Quando trabalhamos com vetores nume´ricos, como as varia´veis X e Y do exemplo a seguir, o resultado sera´ um diagrama de dispersa˜o para as duas coordenadas. > x <- seq(1,20,2) #uma seque^ncia de 1 a 20, de dois em dois. > x [1] 1 3 5 7 9 11 13 15 17 19 > y<- x^3 # x ao cubo > plot(x,y) l l l l l l l l l l 5 10 15 0 20 00 40 00 60 00 x y Ha´ va´rias outras opc¸o˜es para os gra´ficos. Basta entrar com o seguinte comando no R: ?plot. Podemos adicionar ao gra´fico um t´ıtulo, informar do que se trata o eixo X e o eixo Y, ale´m de mudar a cor do gra´fico. > x <- seq(1,20,2) #uma seque^ncia de 1 a 20, de dois em dois. > x [1] 1 3 5 7 9 11 13 15 17 19 > y<- x^3 # x ao cubo 12 > x <- seq(1,20,2) #uma seque^ncia de 1 a 20, de dois em dois. > x [1] 1 3 5 7 9 11 13 15 17 19 > y<- x^3 # x ao cubo > plot(x,y,type="l", main = "Tı´tulo" ,xlab="Eixo X aqui",ylab="EixoY aqui",col="blue" ) 5 10 15 0 20 00 40 00 60 00 Título Eixo X aqui Ei xo Y a qu i 3.2.2 Gra´fico de Barras: func¸a˜o barplot() Para entender como sa˜o feitos os gra´ficos de barras, considere o exemplo a seguir: Exemplo 1: A tabela abaixo representa a distribuic¸a˜o de frequeˆncia dos da- dos referentes a matr´ıculas de professores e alunos em escolas do munic´ıpio de Nitero´i em 2009. Escola de Ensino Fundamental Matr´ıculas de professores Matr´ıcula de alunos Privada 1751 25280 Pu´blica Estadual 1186 21328 Pu´blica Municipal 947 18432 Pu´blica Federal 29 280 Total 3.913 65.320 Tabela 1: matr´ıculas de professores e alunos 13 > #Gra´fico de barras vertical ou gra´fico de colunas > prof<-c(1751,1186,947,29) > escola<-c("privada","estadual","municipal","federal") > names(prof)<-c("privada","estadual","municipal","federal") > barplot(prof, names.arg=escola, main="Distribuic¸~ao dos professores", + col=c(2,3,4,5),xlab="tipo de escola",ylab="nº de matrı´culas") privada estadual municipal federal Distribuição dos professores tipo de escola n º de m at ríc ul as 0 50 0 10 00 15 00 14 > #Gra´fico de barras > prof<-c( 29 ,947, 1186 , 1751) > escola<-c("Federal" ,"Municipal","Estadual","Privada") > names(prof)<-c("federal" ,"municipal","estadual","privada") > barplot(prof, names.arg=escola, main="Distribuic¸~ao dos professores", + col=c(5,4,3,2),xlab="nº de matrı´culas",ylab="tipo de escola", + horiz=TRUE,angle=45) > Fe de ra l M un ic ip al Es ta du al Pr iva da Distribuição dos professores nº de matrículas tip o de e sc ol a 0 500 1000 1500 15 > #Gra´fico de barras alunos e professores > alunosprof<- matrix(c(1751,1186,947,29,25280,21328,18432,280), nrow=4, ncol=2, + dimnames=list(c("privada", "estadual", "municipal", "federal"), + c("professores", "alunos"))) > barplot(alunosprof[,2:1],beside=TRUE, ylab="n. de matrı´culas", + xlab="matrı´cula",col=c("blue","red","green","orange"), + main="Distribuic¸~ao de professores e alunos") > alunos professores Distribuição de professores e alunos matrícula n . de m at ríc ul as 0 50 00 10 00 0 15 00 0 20 00 0 25 00 0 3.2.3 Histograma: a func¸a˜o hist() A func¸a˜o hist() calcula uma distribuic¸a˜o de frequeˆncia para varia´veis con- t´ınuas e gera um histograma de um conjunto de dados. Paraˆmetros adicionais permitem a determinac¸a˜o da escala a ser utilizada no eixo vertical (frequeˆncias absolutas ou relativas) e o nu´mero de intervalos. Exemplo 2. Para se estudar o comportamento de uma planta t´ıpica de du- nas, a Hydrocotille sp, quanto ao seu desenvolvimento, mediu-se o tamanho de pec´ıolo (cm), em duas a´reas: seca e u´mida. Selecionou-se de cada uma dessas a´reas amostras aleato´rias de plantas e mediu-se o tamanho dos pec´ıolos. Os dados sa˜o fornecidos na tabela a seguir. 16 A´rea u´mida (X) 13,8 14,3 14,5 15,0 15,0 15,5 15,5 15,5 15,6 15,6 15,8 15,8 15,8 15,8 16,0 16,0 16,0 16,1 16,1 16,3 16,3 16,3 16,3 16,5 16,5 16,6 16,6 16,6 16,8 16,8 16,9 17,0 17,0 17,2 17,4 A´rea Seca (Y) 7,3 7,6 7,8 7,8 8,0 8,2 8,2 8,3 8,3 8,4 8,4 8,4 8,6 8,6 8,6 8,6 9,0 9,0 9,0 9,0 9,3 9,3 9,3 9,6 9,6 9,8 9,8 10,4 10,4 10,9 10,9 11,7 11,7 12,0 3.2.4 Entrando com os dados no R > y <-c(13.8,14.3,14.5,15.0,15.0,15.5,15.5,15.5,15.6, + 15.6,15.8,15.8,15.8,15.8,16.0,16.0,16.0,16.1, + 16.1,16.3,16.3,16.3,16.3,16.5,16.5,16.6,16.6, + 16.6,16.8,16.8,16.9,17.0,17.0,17.2,17.4,7.3, + 7.6,7.8,7.8,8.0,8.2,8.2,8.3,8.3, + 8.4,8.4,8.4,8.6,8.6,8.6,8.6,9.0,9.0, + 9.0,9.0,9.3,9.3,9.3,9.6,9.6,9.8,9.8, + 10.4,10.4,10.9,10.9,11.7,11.7,12.0) > dados <- data.frame(Areas = factor(rep(c("Area_Umida","Area_Seca"), + times=c(35,34))),Tamanho=y) Ha´ um mecanismo no R de “anexar” objetos ao caminho de procura que permite economizar um pouco de digitac¸a˜o. Veja os comandos abaixo. > #attach(dados) > # detach(precipitac¸~ao) para retirar o objeto Areas do > # caminho de procura > head(dados) # mostra as 6 primeiras linhas dos seus dados. Areas Tamanho 1 Area_Umida 13.8 2 Area_Umida 14.3 3 Area_Umida 14.5 4 Area_Umida 15.0 5 Area_Umida 15.0 6 Area_Umida 15.5 Apo´s isso podemos fazer os diferentes tipos de gra´ficos que o sistema R dis- ponibiliza para cada uma das varia´veis. Com esse comando attach(), agora, precisamos digitar somente Areas ao inve´s de dados$Areas. Vamos prosseguir com a ana´lise explorato´ria, obtendo algumas medidas e gra´ficos. 17 > par(mfrow=c(1,2)) > hist(dados[1:35,2],xlab="Tamanho (cm)",ylab="Freque^ncia Absoluta", + main="Area U´mida", col="red") > hist(dados[36:69,2],xlab="Tamanho (cm)",ylab="Freque^ncia Absoluta", + main=" Area Seca",col="blue") Area Úmida Tamanho (cm) Fr eq uê nc ia A bs ol ut a 14 15 16 17 0 2 4 6 8 Area Seca Tamanho (cm) Fr eq uê nc ia A bs ol ut a 7 8 9 10 11 12 0 2 4 6 8 3.3 Explorando o histograma Para explorar o histograma, vamos gerar um conjunto de dados utilizando a func¸a˜o rnorm(). > par(mfrow=c(1,1)) > set.seed(12) > dad<-rnorm(100) Podemos gerar e gravar a distribuic¸a˜o de frequeˆncia com o comando: > dadhist<-hist(dad) > dadhist $breaks [1] -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 $counts [1] 1 2 11 14 26 20 15 6 2 3 $intensities 18 [1] 0.02 0.04 0.22 0.28 0.52 0.40 0.30 0.12 0.04 0.06 $density [1] 0.02 0.04 0.22 0.28 0.52 0.40 0.30 0.12 0.04 0.06 $mids [1] -2.25 -1.75 -1.25 -0.75 -0.25 0.25 0.75 1.25 1.75 2.25 $xname [1] "dad" $equidist [1] TRUE attr(,"class") [1] "histogram" Ao executar a func¸a˜o hist() criamos um objeto de classe histogram, que e´ uma list com os componentes listados acima. breaks: e´ um vetor com os limites dos intervalos. counts: E´ um vetor com as freque^ncias absolutas. density: Conte´m as freque^ncias relativas Podemos modificar o eixo vertical de frequeˆncias absolutas par relativas uti- lizando o paraˆmetro “freq=FALSE” e o nu´mero de intervalos com os paraˆmetros “breaks. Uma alternativa ao histograma e´ o gra´fico de densidades, que e´ mais apropriado a` visualizac¸a˜o de distribuic¸o˜es cont´ınuas, visto que torna desneces- sa´ria a divisa˜o das varia´veis cont´ınuas em intervalos discretos, o que minimiza a perda de informac¸a˜o. Para comparar o histograma com o gra´fico de densidades, podemos utilizar a func¸a˜o “density()” para criar um objeto da classe density contendo as estimativas do nu´cleo para as densidades (frequeˆncias relativas) ao longo da varia´vel. > hist(dad,freq=F,col="red", xlab="dados gerados", ylab="Densidade", + main="Histograma com sua densidade") > lines(density(dad)) 19 Histograma com sua densidade dados gerados D en si da de −2 −1 0 1 2 0. 0 0. 1 0. 2 0. 3 0. 4 0. 5 3.4 Boxplot: func¸a˜o boxplot() Quando o propo´sito do gra´fico e´ comparar a distribuic¸a˜o de dois ou mais gru- pos diferentes para uma mesma varia´vel, podemos utilizar a func¸a˜o boxplot(). > boxplot(Tamanho~Areas, xlab="A´reas", + ylab="Tamanho do pecı´olo (cm)") 20 l Area_Seca Area_Umida 8 10 12 14 16 Áreas Ta m a n ho d o pe cí ol o (cm ) 4 Exerc´ıcos utilizando o R 4.1 Exerc´ıcios 1. Um agricultor instalou um pluvio´metro para medir a precipitac¸a˜o num dado terreno. Durante um ano, obteve os seguintes totais mensais (em mm): Janeiro Fevereiro Marc¸o Abril Maio Junho 101,1 60,7 75,1 19,9 26,7 10,5 Julho Agosto Setembro Outubro Novembro Dezembro 2,5 39,8 5,7 51,7 50,1 170,6 Utilizando o pacote estat´ıstico R, responda a`s seguintes al´ıneas: (a) Crieum vector com os 12 totais mensais indicados. Designe o objeto criado por precip. (b) Crie o vector meses com o nome dos 12 meses do ano. (c) Associe a cada medic¸a˜o o nome do respectivo meˆs, utilizando o comando names do R. (d) Calcule, com a ajuda dos comandos estat´ısticos elementares de que o R dispo˜e, as seguintes quantidades: i. A precipitac¸a˜o total anual; ii. A precipitac¸a˜o mensal me´dia; 21 iii. A precipitac¸a˜o mensal mediana; iv. A variaˆncia das precipitac¸o˜es mensais; v. O desvio padra˜o das precipitac¸o˜es mensais; vi. A precipitac¸a˜o mensal mı´nima; vii. A precipitac¸a˜o mensal ma´xima. (e) Selecione o subvector i. da precipitac¸a˜o no meˆs de Outubro; ii. das precipitac¸o˜es nos meses de Junho a Setembro (inclusive); (f) Seleccione o subvector dos meses com precipitac¸a˜o i. superior a 50 mm; ii. acima da me´dia. (i) Execute os comandos plot(precip, type="l") plot(precip, type="h") 2. Duas varia´veis, X e Y, assumem os valores: Calcular: X 4 3 2 6 8 10 8 9 11 13 15 15 Y 40 33 28 56 78 90 89 92 101 98 102 105 (a) ∑n i=1Xi; (b) ∑n i=1 Yi; (c) ∑n i=1XiYi; (d) ∑n i=1XiY 2 i ; (e) ∑n i=1(Xi + Yi)(Xi − Yi); 3. Lendo dados utilizando o read.table e inspecionando seu conteu´do. > dados<-read.table("dados.txt",h=T) > dados Borda_da_Mata Mata_Fechada 1 0.2145 0.5521 2 0.2540 0.5841 3 0.2592 0.6284 4 0.2891 0.6357 5 0.2971 0.6489 6 0.3013 0.6570 7 0.3279 0.6704 8 0.3458 0.6780 9 0.3482 0.6842 22 10 0.3487 0.6898 11 0.3490 0.6945 12 0.3547 0.6950 13 0.3574 0.6970 14 0.3648 0.7125 15 0.3796 0.7126 16 0.3815 0.7154 17 0.3874 0.7179 18 0.3924 0.7256 19 0.3931 0.7321 20 0.3971 0.7783 21 0.4015 0.7884 22 0.4125 0.7894 23 0.4142 0.7912 24 0.4182 0.8023 25 0.4326 0.8046 26 0.4358 0.8451 27 0.4573 0.8467 28 0.4582 0.8468 29 0.4657 0.8564 30 0.4670 0.8654 31 0.4823 0.8665 32 0.4862 0.9214 33 0.4921 0.9421 34 0.5010 0.9573 35 0.5231 0.9689 Esses dados sa˜o relativos a` variac¸a˜o de luz no crescimento das plantas, medida atrave´s da a´rea foliar espec´ıfica apo´s 60 dias, da espe´cie Cecropia glazioui, em amostras situadas em borda de mata e mata fechada, com intensidade de luz me´dia de 10,6% e 0,87%, respectivamente. A espe´cie C. glazioui, conhecida po- pularmente por embau´ba, e´ uma planta pioneira, helio´fita, perinifolia, seletiva higro´fila, ocorrendo preferencialmente em capoeiras e capoeiro˜es de derrubadas recentes. Compare as duas amostras por meio de me´dia, desvio padra˜o, coefici- ente de variac¸a˜o e pelo boxplot. 4 Em um experimento de competic¸a˜o de variedades de batatinhas, um pes- quisador obteve as seguintes produc¸o˜es em t/ha, resultados de 18 repetic¸o˜es: 20,1 21,1 27,0 26,4 25,4 22,3 26,1 24,0 23,2 Huinkul 27,0 25,2 24,6 26,5 22,5 25,8 27,1 26,2 24,1 22,6 29,9 24,2 20,6 25,1 23,5 20,2 21,0 20,5 S. Rafaela 22,1 21,3 22,1 22,6 20,7 20,3 21,5 21,0 24,1 Para cada uma das variedades: (a) calcule a me´dia, mediana e o desvio padra˜o; (b) construa desenhos esquema´ticos (”box-plot”), usando a mesma escala para 23 as duas variedades; (c)com base nos resultados obtidos em a) e b), voceˆ diria que uma das varieda- des e´ superior a outra?Por que? 5 Distribuic¸o˜es de probabilidade Encontra-se no programa R uma se´rie de distribuic¸o˜es teo´ricas de probabi- lidades prontas. Para cada distribuic¸a˜o ha´ 4 operac¸o˜es ba´sicas indicadas pelas letras: d: calcula a densidade de probabilidade f(x) no ponto. p: calcula a func¸~ao de probabilidade acumulada F(x) no ponto. q: calcula o quantil correspondente a uma dada probabilidade. r: retira uma amostra da distribuic¸~ao. Para usar os func¸o˜es deve-se combinar uma das letras acima com uma abre- viatura do nome da distribuic¸a˜o, por exemplo para calcular probabilidades usa- mos: pnorm para normal, pexp para exponencial, pbinom para binomial e assim por diante. Algumas distribuic¸o˜es existentes no R sa˜o: Distribuic¸a˜o Func¸a˜o Beta beta Binomial binom Cauchy cauchy Qui-quadrado chisq Exponencial exp F f Gamma gamma Geome´trica geom Hypergeome´trica hyper Log-normal lnorm Log´ıstica logis Binomial Negativa nbinom Normal norm Poisson pois t de Student t Uniforme unif Weibull weibull Para conhecer os paraˆmetros necessa´rios em cada distribuic¸a˜o, use na linha de comando, por exemplo, ?rbinom. Aparecera´ um menu de ajuda completo. Vamos explorar a partir de agora as distribuic¸o˜es binomial e normal. 24 5.1 Distribuic¸a˜o Binomial Para os ca´lculos de distribuic¸a˜o binomial usamos a func¸a˜o dbinom. Exemplo 3. Seja X uma varia´vel aleato´ria com distribuic¸a˜o binomial com n = 20 e p = 0.6. Vamos estudar no R os comandos para: a) Fazer o gra´fico para a func¸a˜o de probabilidade. b) Fazer o gra´fico para a func¸a˜o de probabilidade acumulada. c) Calcular P(x=3). d) Calcular P(X<2). e) gerar 12 nu´meros desta distribuic¸a˜o. > x<-1:20 > fx<-dbinom(x,20,0.6) > fx [1] 3.2985e-07 4.7004e-06 4.2304e-05 2.6969e-04 1.2945e-03 4.8544e-03 [7] 1.4563e-02 3.5497e-02 7.0995e-02 1.1714e-01 1.5974e-01 1.7971e-01 [13] 1.6588e-01 1.2441e-01 7.4647e-02 3.4991e-02 1.2350e-02 3.0874e-03 [19] 4.8749e-04 3.6562e-05 > plot(x,fx) l l l l l l l l l l l l l l l l l l l l 5 10 15 20 0. 00 0. 05 0. 10 0. 15 x fx 25 > Fx<-pbinom(x, 20,0.6) > plot(x,Fx) l l l l l l l l l l l l l l l l l l l l 5 10 15 20 0. 0 0. 2 0. 4 0. 6 0. 8 1. 0 x Fx > dbinom(3,20,0.60) [1] 4.2304e-05 > pbinom(2,20,0.6) [1] 5.0413e-06 > rbinom(12,20,0.60) [1] 8 14 12 10 8 11 13 16 12 13 10 18 5.2 Distribuic¸a˜o Normal 5.2.1 Probabilidade A probabilidade de um evento em uma distribuic¸a˜o cont´ınua e´ uma a´rea sob a curva da distribuic¸a˜o. Seja X uma varia´vel aleato´ria com distribuic¸a˜o N(100,100). Para calcular a probabilidade P[X < 95] usamos o comando: 26 > pnorm(95, 100, 10) [1] 0.30854 em que no nosso exemplo temos: pnorm(x = 95, me´dia = 100, desvio padr~ao = √ 100) Vamos agora “esquecer” o comando pnorm() e ver uma outra forma de re- solver usando integrac¸a˜o nume´rica. Lembrando que a normal tem a func¸a˜o de densidade dada por f(x) = 1√ 2piσ2 exp{− 1 2σ2 (x− µ)2} em que −∞ < x <∞, −∞ < µ <∞ e σ2 > 0 vamos definir uma func¸a˜o no R para a densidade normal deste problema: > fn <- function(x) { + fx <- (1/sqrt(2 * pi * 100)) * exp((-1/200) * (x - 100)^2) + return(fx) + } Para calcular a a´rea pedida sem usar a func¸a˜o pnorm() podemos usar a fun- c¸a˜o de integrac¸a˜o nume´rica. Note que esta func¸a˜o, diferentemente da pnorm() reporta ainda o erro de aproximac¸a˜o nume´rica. > integrate(fn, -Inf, 95) 0.30854 with absolute error < 2.1e-06 Para obter o gra´fico desta distribuic¸a˜oo usamos o fato que a maior parte da func¸a˜o esta´ no intervalo [X¯ − 3σ; X¯ + 3σ], portanto entre 70 e 130. Podemos enta˜o fazer como nos comandos que se seguem. Para marcar no gra´fico a a´rea que corresponde a probabilidade pedida criamos um pol´ıgono com coordenadas ax e ay definindo o per´ımetro desta a´rea. 27 > x <- seq(70, 130, l = 200) > fx <- fn(x) > plot(x, fx, type = "l") > ax <- c(70, 70, x[x < 95], 95, 95) > ay <- c(0, fn(70), fx[x < 95], fn(95), 0) > polygon(ax, ay, dens = 10) 70 80 90 100 110 120 130 0. 00 0. 01 0. 02 0. 03 0. 04 x fx 5.3 Exerc´ıcios Utilizando os conceitos apresentados acima, resolva os exerc´ıcios abaixo uti- lizando a func¸a˜o pnorm(), o me´todo de integrac¸a˜o e utilizando tabela padro nizada. 1. O peso me´dio de 500 estudantes do sexo masculino, de uma determinada universidade, e´ 75,5 kg e o desviopadra˜o e´ 7,5 kg. Admitindo-se que os pesos esta˜o distribu´ıdos normalmente, determinar quantos estudantes pesam: (a) entre 60 e 77,5 kg; R.: 292, 87 ' 293 (b) mais do que 92,5 kg; R.: 6 2. O peso me´dio das reses que se encontram num curral de uma determinada fazenda e´ 200kg, e o desvio padra˜o e´ de 10 kg. Em 120 animais retirados ao acaso do curral, quantos pesara˜o mais de 185 kg? Vamos considerar que o peso das reses tenha distribuic¸a˜o normal. R.: 111,984 ou seja 112 animais. 28 6 Ana´lise de frequeˆncias usando tabelas de con- tingeˆncia Em duas amostras tiradas de solos diferentes foram encontradas duas espe´- cies de tatuzinho: Tabela 2: Distribuic¸a˜o conjunta das varia´veis espe´cies e tipo de solos Espe´cies Tipos de solos Oniscus Armadilidium TOTAL Solo argiloso 14 6 20 Solo calca´reo 22 46 68 TOTAL 36 52 88 Coloque os dados numa matriz e verifique a matriz x. > x<-matrix(c(14,22,6,46),nc=2) > x [,1] [,2] [1,] 14 6 [2,] 22 46 Rode o qui-quadrado com a correc¸a˜o de Yates, mesmo se voceˆ esquecer, ele vai fazer a correc¸a˜o automaticamente. > chisq.test(x, correct=TRUE) Pearson's Chi-squared test with Yates' continuity correction data: x X-squared = 7.5706, df = 1, p-value = 0.005933 Ha´ uma associac¸a˜o significativa entre as varia´veis. 29 > barplot(x, names=c("Oniscus","Armadilidium"), + col=c(2,7),font=3,beside=TRUE) > legend(1,30,c("Argiloso","Calca´reo"),fill=c(2,7)) > Oniscus Armadilidium 0 10 20 30 40 Argiloso Calcáreo 6.1 Exerc´ıcio 1. Um produtor de iogurte solicitou uma pesquisa a um estat´ıstico com o intuito avaliar as prefereˆncias em relac¸a˜o aos iogurtes A e B dispon´ıveis no mercado. O estat´ıstico solicitou ao seu estagia´rio que entrevistasse 2.000 consumidores: 1.000 homens e 1.000 mulheres. Os resultados sa˜o mostrados na Tabela 3. Ha´ associac¸a˜o entre o sexo e tipo de iogurte? Tabela 3: Distribuic¸a˜o conjunta das varia´veis sexo e tipo de iogurte Prefereˆncias Tipos Homens Mulheres TOTAL A 670 530 1200 B 330 470 800 TOTAL 1000 1000 2000 30 7 Noc¸a˜o ba´sica de programac¸a˜o no R 7.1 Comandos de lo´gica Primeiro vamos ver o significado de alguns comandos: > maior que >= maior que ou igual a < menor que <= menor que ou igual a == igualdade ! = diferenc¸a > X<-c(5,6,8,11,15,20,26,33) > Y<-c(6,8,10,12,14,16,18,20) > X>Y # Retorna TRUE para os maiores e FALSE para os menores [1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE > X>=Y [1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE > X<Y [1] TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE > X==Y # Retorna TRUE para os X que s~ao iguais a Y [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE > X!=Y # Retorna TRUE para os X que s~ao diferentes de Y [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE Agora vamos selecionar partes dos dados que obedecem a algum crite´rio de selec¸a˜o. 7.1.1 Which A func¸a˜o which funciona como se fosse a pergunta: Quais? > a<-c(1,4,9,16,25,36,49,64,81,100) > a>10 # Retorna um vetor contendo TRUE se for maior e FALSE se for menor [1] FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE > which(a>10) # Equivale a pergunta: "Quais valores de a s~ao maiores que 10?". [1] 4 5 6 7 8 9 10 > #Observe que a resposta e´ a posic¸~ao dos valores (o quarto, o quinto...) > # e n~ao os valores que s~ao maiores que 10. > a[4] # selecionamos o quarto valor de a 31 [1] 16 > a[c(4:10)] # selecionamos do quarto ao de´cimo valor [1] 16 25 36 49 64 81 100 > a[which(a>=25)] [1] 25 36 49 64 81 100 7.1.2 if O comando condicional if tem a seguinte sintaxe: Sintaxe: If (condic¸~ao1){tarefa a ser realizada se condic¸~ao1=TRUE}. Programa 1 Execute o Programa 1, para ver mais aplicac¸o˜es. # Dado o nu´mero x , encontrar o mo´dulo de x , |x| x1 <- 2 if (x1 >= 0) x = x1 x x1 <- -3 if (x1 < 0) x = -x1 x > x1 <- 2 > if (x1 >= 0) x = x1 > x [1] 2 > x1 <- -3 > if (x1 < 0) x = -x1 > x [1] 3 7.1.3 if else A estrutura de decisa˜o if else, dispon´ıvel no R tem a seguinte sintaxe: if (condic¸~ao) express~ao-1 else express~ao-2 Se a condic¸a˜o e´ verdadeira executa a expressa˜o-1, caso contra´rio executa a expressa˜o-2. Programa 2 > x <- 12 > x 32 # Avalia dois nu´mero "x"e "y" x <- 12 x y <- 13 y if(x > y) z = x else z = y y [1] 12 > y <- 13 > y [1] 13 > if(x > y) z = x else z = y > y [1] 13 7.1.4 ifelse O comando ifelse e´ uma versa˜o vetorizada do comando if else. Sintaxe: ifelse(condic¸~ao, express~ao-1, express~ao-2) Este comando avalia as expresso˜es 1 e 2 e retorna ao valor apropriado para cada uma, baseada na condic¸a˜o. Programa 3 # Dado um vetor x encontrar o mo´dulo dos elementos de x x <- -5:5 # Vers~ao vetorizada do if else y <- ifelse(x >=0, x, -x) y > x <- -5:5 > y <- ifelse(x >=0, x, -x) > y [1] 5 4 3 2 1 0 1 2 3 4 5 7.2 Looping Voceˆ pode querer fazer uma se´rie de tarefas dentro de um bloco de comandos, ou ate´ mesmo fora dele. As tarefas iterativas (loops) podem ser feitas atrave´s dos comandos, for, while e repeat. Os loops sa˜o geralmente empregados nos programas, com as seguintes func¸o˜es: a) Para repetir a mesma transformac¸a˜o (ou computac¸a˜o) sobre os elementos de um vetor ou matriz. 33 b) Para formar somas, tais como, a`quelas associadas a variaˆncia amostral, ou expansa˜o de se´ries de poteˆncias. c) Para implementar me´todos iterativo 7.2.1 O loop for O comando for funciona da seguinte maneira: Sintaxe: for(i in 1:n) comandos Isso quer dizer que: para cada valor i o R vai calcular os comandos que est~ao entre as cha- ves {comandos}. O "i in 1:n"indica que os valores de i ser~ao i = 1 ate´ 1 = n. Ou seja, na primeira rodada do for o i sera´ igual a 1, na segunda i = 2, e assim por diante ate´ i = n. Programa 4 Executando # Vamos usar o for para elevar i valores ao quadrado: for(i in 1:5) { x[i]<-i ∧ 2 } x o programa: > w<-NULL > for(i in 1:5){ + w[i]<-i^2 + } > w [1] 1 4 9 16 25 7.2.2 O loop while O comando while permite que uma ac¸a˜o seja repetida ate´ que uma condic¸a˜o seja verdadeira. No mometo que a condic¸a˜o deixar de ser verdadeira, isto e´, passar a ser falsa, a ac¸a˜o na˜o mais se realiza. Sintaxe: while(condic¸~ao...) {ac¸~ao... } Programa 5 Executando o programa: > x=2 > while(x<=10) + { + print(x) + x = x + 3 + } 34 # Dado os nu´meros de 2 a 12 imprimir esta seque^ncia x=2 while(x<=10) { print(x) x = x + 3 } [1] 2 [1] 5 [1] 8 7.2.3 O loop repeat Na˜o existe muita diferenc¸a entre o comando repeat e o comando while, exceto que precisamos do comando break dentro do looping. Sintaxe: repeat { express~ao } express~ao = uma express~ao matema´tica. 7.3 Exerc´ıcios 1 Fazer um algoritmo para calcular e imprimir as 10 primeiras poteˆncias de 3. 2 Usar o comando for para calcular a soma de 20 termos de ex = ∞∑ i=0 xi i! = 1 + x+ x2 2 + x3 3! + ... dica: de^ um valor para x. 3 Escreva uma func¸a˜o para calcular f(x) = x2 − 3x+ 2 Atribua uma sequencia de 100 valores e fac¸a o gra´fico desta func¸a˜o. 4 Escreva uma func¸a˜o que calcula o valor de pi = √√√√ ∞∑ i=0 6 i2 5 Gerar um co´digo que escolhe nu´meros para a mega sena. (a) use esse co´digo para gerar um jogo; (b) use esse co´digo para gerar 20 jogos; (c) use esse co´digo para gerar 100 jogos; 35 6 Entendendo o conceito de intervalo de confianc¸a: Passo 1: Fixar uma semente para gerar sempre os mesmos valores. Passo 2: Gerar 1000 valores de uma populac¸a˜o Normal. Passo 3: Sortear 100 amostras de tamanho 50 e para cada uma delas calcular o intervalo de confianc¸a para a me´dia e verificar em quantosdesses intervalos a me´dia populacional pertence. Atenc¸a˜o: Este tutorial foi montado com base nas refereˆncias bibliogra´ficas a seguir. Refereˆncias [1] BEASLEY; C, R. Bioestat´ıstica usando o R: Apostila de exemplos para o bio´logo. Braganc¸a, 2004. [2] RIBEIRO JUNIOR, J. I. Apostila: curso sobre o programa computa- cional R - 2005. [3] CARVALHO, S. P.; TANDEL, M.C.F.F. Apostila: Introduc¸a˜o ao am- biente computacional R - 2006. [4] BOTTER,D.A., SANDOVAL, M.C., ITANO, F., SANTOS, S.M. To´picos de Estat´ıstica utilizando R. 36
Compartilhar