Utilizando o R. Técnicas para Predição de Dados 2 17/8/2008 Introdução ao R R é um linguagem...
Transcript of Utilizando o R. Técnicas para Predição de Dados 2 17/8/2008 Introdução ao R R é um linguagem...
Utilizando o R
Técnicas para Predição de Dados 2 17/8/2008
Introdução ao R
R é um linguagem (ambiente) de programação para computação estatística e gráficaBaseada na linguagem S (S-Plus)
O ambiente R é flexível Pode ser estendido através de pacotesOpen source e gratuito
Técnicas para Predição de Dados 3 17/8/2008
Introdução ao R
Desenvolva um pacote e torne-se um colaborador do projeto
Homepage do projetohttp://cran.r-project.org/
O R é atualizado pelo menos a cada 6 mesesR version 2.9.0 has been released on 2009-
12-14.
Técnicas para Predição de Dados 4 17/8/2008
Introdução ao R
Códigos desenvolvidos em versões anteriores podem não funcionar em versões mais recentes
Existem ferramentas GUI para o Rhttp://www.sciviews.org/Tinn-R/index.html
Técnicas para Predição de Dados 5 17/8/2008
Instalando o R
O pacote R e os principais manuais podem ser obtidos a partir http://cran.r-project.org/ou em um mirror
Siga as instruções para instalar o pacote base do RNão esqueça de instalar os manuais on-line
Técnicas para Predição de Dados 6 17/8/2008
Instalando o R
Instalando pacotes de dados Do livro “Introdutory Statistics with R”
chooseCRANmirror() install.packages(“ISwR", dependencies = TRUE) library (ISwR)
Do livro “Data Analysis and Graphics Using R” install.packages(“DAAG", dependencies = TRUE) library (DAAG)
Técnicas para Predição de Dados 7 17/8/2008
Primeiros passos
Somando dois valores 2 + 2
Atribuindo uma operação a uma variável a = 2 + 2 a <- 2 + 2
Para ver o resultado, digite a variável a [1] 4
ou print (a)
Técnicas para Predição de Dados 8 17/8/2008
Primeiros passos
Entrando com dados com “c”oncatenate valores = c (6,7,4,3,2,0,0,6) valores
OBS 1: Dados são armazenados no “R” como um vetor a=4 a[1]
OBS 2: O índice da primeira posição do vetor é 1 OBS 3: Comentários devem ser precedidos por # Aplicando funções a um conjunto de dados
length (valores) min (valores) max (valores)
Técnicas para Predição de Dados 9 17/8/2008
Primeiros passos
Para sair>q ()
Para ajuda>help (<nome do comando>)
Se não sabe o nome corretamente>help.search (“<parte do comando>”)>apropos(“parte do nome do comando”)
Técnicas para Predição de Dados 10 17/8/2008
Gerando valores
vetor <- c(1:9) vetor = (1:9)vetor = (9:1)seq(1, 9, by = 2) seq(1, 9, by = pi )seq(1, 9, by = 0.5) rep(1,10)rep(vetor,5)rep (vetor, each = 5)
Técnicas para Predição de Dados 11 17/8/2008
Matrizes
m <- matrix(c(1,2,3,11,12,13), nrow = 2,
ncol=3, byrow=TRUE, dimnames =
list(c(“linha1", “linha2"), c(“col1”,”col2”,”col3”)))
>m Experimente retirar a cláusula byrow
Técnicas para Predição de Dados 12 17/8/2008
Matrizes
x <- matrix(1:9,nrow=3)
x
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
Técnicas para Predição de Dados 13 17/8/2008
Operações matemáticas
entre números (incluindo constantes e variáveis simples)soma: +subtração: -produto: *divisão: /potência: ^divisão inteira: % / %mod: %%
Técnicas para Predição de Dados 14 17/8/2008
Operações matemáticas
entre matrizes e números: se x é uma matriz, temos:
soma: x + 2subtração: x - 2produto: x * 2divisão: x / 2potência: x ^ 2divisão inteira: x % / % 2mod: x %% 2
Técnicas para Predição de Dados 15 17/8/2008
Operações matemáticas
entre matrizes: se x e y são matrizes, temos:
soma: x + ysubtração: x - yproduto: x %*% y
Técnicas para Predição de Dados 16 17/8/2008
Operadores lógicos
maior que: > , >= menor que: < , <= igual a: == diferente de: != para expressões:
and: &or: |not: !
Técnicas para Predição de Dados 17 17/8/2008
Exemplo
peso = c (60, 72, 57, 90, 95, 72) altura= c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91) nome=c(“jó”, “josé”,“joão”, “zé”, “noé”, “mané”) peso > 70 peso (peso > 70) nome [(peso > 70)] nome [(peso > 70) & (peso < 80)] IMC = peso / altura ^ 2 nome [IMC > 25]
Técnicas para Predição de Dados 18 17/8/2008
Operações básicas com vetores
Somatóriosum(<nome do vetor>)
Produtórioprod(<nome do vetor>)
Tamanho do vetor length(<nome do vetor>)
Ordenaçãosort(<nome do vetor>)
Técnicas para Predição de Dados 19 17/8/2008
Operações básicas
Valor absolutoabs(<nome da variável ou vetor>)
Raíz quadradasqrt(<nome da variável ou do vetor>)
Técnicas para Predição de Dados 20 17/8/2008
Operações estatísticas
Média aritméticamean(<nome do vetor>)
Medianamedian(<nome do vetor>)
Desvio padrãosd(<nome do vetor>)
Técnicas para Predição de Dados 21 17/8/2008
Exemplos
Média aritmética mean(peso) ou Media = sum (peso) / length (peso)
Mediana median(<nome do vetor>) ou hist (peso)
Desvio padrão sd(peso) ou mediaPeso= sum (peso) / length (peso) sqrt (sum((peso - mediaPeso) ^ 2)/ (length (peso) - 1))
Técnicas para Predição de Dados 22 17/8/2008
Operações estatísticas
Variânciavar (<nome do vetor>)
Covariânciacov(<nome do vetor 1>, <nome do vetor 2>)
Correlaçãocor(<nome do vetor 1>, <nome do vetor 2>)
Regressão simples lm (y~x)
Técnicas para Predição de Dados 23 17/8/2008
Missing values
Algumas operações podem retornar resultados “inexistentes”, chamados “missing values” Inf: infinito positivo-Inf: infinito negativoNaN: “Not a Number”NA: “Not Available”
Técnicas para Predição de Dados 24 17/8/2008
Missing values
Existem funções para testar se algum desses valores foi retornado is.finite(x) is.infinite(x) is.nan(x)
onde x pode ser um vetor
Técnicas para Predição de Dados 25 17/8/2008
exemplos
is.finite (peso[5]) is.finite (peso[5]/0) is.na (peso[10]) onde x pode ser um vetor
Técnicas para Predição de Dados 26 17/8/2008
Geração de números
Uniformesrunif(n, min, max)
Normaisrnorm(n, média, desvio padrão)
t-Studentrt(n, graus de liberdade)
Qui-Quadradorchisq(n, graus de liberdade)
Técnicas para Predição de Dados 27 17/8/2008
Geração de gráficos
x=c(1:9) y=c(1:9) plot(x,y) plot(x,y,xlab=“valores de x”, ylab=“valores
de y”) plot(x,y,type=“l”)
Técnicas para Predição de Dados 28 17/8/2008
Geração de gráficos
x=rnorm(500,0,1) mean(x) median(x) sd(x) var(x) hist(x)
Técnicas para Predição de Dados 29 17/8/2008
Lendo arquivos de dados
O arquivo datafile.dat é composto pelos seguintes dados:
Tamanho lote de terra homens/hora necessários para uma determinada atividade (arar, limpar, colher, plantar)
30 7320 5060 12880 17040 8750 10860 13530 6970 14860 132
Técnicas para Predição de Dados 30 17/8/2008
Lendo arquivos de dados
Ajustando o diretório de trabalho setwd(“c:/temp”)
Para ler arquivos com nomes de colunas na primeira linha, use dataset <- read.table (“datafile.dat”, header=TRUE)
Para obter os vetores dataset$tamanho_lote dataset$homens_hora
Técnicas para Predição de Dados 31 17/8/2008
Lendo arquivos – parte II
Ajustando o diretório de trabalho setwd(“c:/temp”)
Para ler arquivos sem nomes de colunas na primeira linha, use dataset <- scan (“datafile2.dat”, what=list (x=0,y=0))
Para obter os vetores dataset$x dataset$y
Técnicas para Predição de Dados 32 17/8/2008
Lendo dados – parte III
stack.dat<-scan(what=list(tamanho_lote=0,homens_hora=0))30 7320 5060 12880 17040 8750 10860 135attach (stack.dat)stack.dat$tamanho_lotestack dat$homens_hora
Os comandos acima podem ser inseridos em um arquivo ou diretamente a partir da linha de comando do R
Técnicas para Predição de Dados 33 17/8/2008
Lendo arquivos de dados
O arquivo datafile3.dat é composto por dados que representam o nome do aluno e a natureza do ensino de nível médio
joao publicomario privadocristiano privadomaria publicotalita privadomariana privadoadelia publicomonique publicocarlos privadobruno privado
Técnicas para Predição de Dados 34 17/8/2008
Lendo arquivos – parte IV
Ajustando o diretório de trabalho setwd(“c:/temp”)
Para ler arquivos com nomes de colunas na primeira linha, use dataset <- scan (“datafile3.dat”, what=list (x=“”,y=“”))
Para obter os vetores dataset$x dataset$y
Técnicas para Predição de Dados 35 17/8/2008
Lendo arquivos – parte V
Para ler arquivos separados por vírgula ou ponto e vírgula, use dados <-read.csv(“dados.csv", sep=";",
dec=",",header=FALSE)
Para obter os vetoresdados$xdados$y
Técnicas para Predição de Dados 36 17/8/2008
Entrando com dados no R
Usando a função edit()
dados <- edit(data.frame())
Técnicas para Predição de Dados 37 17/8/2008
O pacote Rcmdr
> library(Rcmdr)
Técnicas para Predição de Dados 38 17/8/2008
Usando pacotes
Carregando um pacote no workspace library (<nome do pacote>)
Site com pacotes de colaboradoreshttp://cran.r-project.org/web/packages/
Instalando pacotesoptions (CRAN="http://cran.r-project.org") Install.packages (“<nome do pacote>”)
Técnicas para Predição de Dados 39 17/8/2008
Conselhos úteis
Ler os manuais no site do projeto CRAN Usar a página wiki do projeto CRAN
http://wiki.r-project.org/ Usar http://www.rseek.org/ ao invés do google Aprender com os errros ?lm dá uma ajuda sobre a função lm. Ler arquivos de
help pode ajudar bastante Assine a lista do R
(https://stat.ethz.ch/mailman/listinfo/r-help) Crie seu script personalizado de bibliotecas
Técnicas para Predição de Dados 40 17/8/2008
Exercício 1
setwd(c:/temp) trabalho=scan(“datafile2.dat”, what=list (x=0,y=0)) attach (trabalho) x=trabalho$x y=trabalho$y plot (x,y, xlab=“valores de x”, ylab=”valores de y”) ajuste=lm(y~x) summary (ajuste) abline (ajuste)
Técnicas para Predição de Dados 41 17/8/2008
Exercício 2 (montgomery)
Um motor de foguete é fabricado unindo um propelente de ignição a um propelente para manter o foguete em vôo. O poder da força da junção dos propelentes é uma característica de qualidade importante. Suspeita-se que o “poder” dessa força está relacionado com a “idade” do recipiente do propelente. O arquivo de dados datafile4.dat contém os dados relativos a 20 observações da força da junção comparados com a idade do recipiente do propelente.
Técnicas para Predição de Dados 42 17/8/2008
Exercício 2 (montgomery)
Plote o gráfico de dispersão. Encontre covariância entre os dois vetores de dados Encontre a correlação entre os dois vetores de dados Encontre a média dos dois vetores de dados Encontre os valores de Sxx e Sxy
Encontre os estimadores β0 e β1
Dado o modelo y = β0 + β1x, encontre os valores ajustados para a variável resposta para cada observação da variável explicativa
Encontre o resíduo ei e verifique se ∑ ei = 0 Finalmente, aplique os métodos do exercício 1 ao arquivo
datafile4.dat e compare os resultados. A tabela 2.2 do livro do montgomery apresenta os resultados acima.
Utilizando o R