Professional Documents
Culture Documents
Disciplina: M
etodos Computacionais para Estatstica II
Professor: Jony Arrais Pinto Junior
Departamento de Estatstica
Universidade Federal Fluminense
Curso R
UFF 2011
1 / 61
Sobre o Software R
Curso R
UFF 2011
2 / 61
Principais Caractersticas
gratuito.
E
Diversas funcoes estatsicas disponveis na versao basica.
Grande variedade de pacotes/bibliotecas com funcoes especficas
disponveis.
Software open.
Curso R
UFF 2011
3 / 61
Curso R
UFF 2011
4 / 61
Conhecendo o RStudio
Curso R
UFF 2011
5 / 61
Conhecendo o RStudio
Curso R
UFF 2011
6 / 61
Exemplo
Alguns comandos u
teis.
Funcao
setwd( )
getwd()
ls()
dir()
search()
rm()
rm(list=ls(all=TRUE))
attach()
detach()
Descricao
muda o diret
orio do trabalho
mostra o diret
orio do trabalho
lista o nome dos objetos criados na sessao atual
lista todos os arquivos na pasta de trabalho atual
lista todos os pacotes carregados
remove o objeto entre parenteses
remone todos os objetos, limpando a memoria
reconhece os objetos dentro de um data frame
funcao que desfaz o attach
Curso R
UFF 2011
7 / 61
Exemplo
Operadores matematicos u
teis.
Funcao
sqrt()
abs()
exp()
log()
log10()
gamma(a)
beta(a, b)
choose(n, k)
Descricao
raiz quadrada
valor absoluto
exponencial
logaritmo na base e
logaritmo na base 10
funcao gama de a: (a) = (a 1)!
funcao beta (a)(b)/(a + b)
n!/(k!(n k)!)
Calcule: (5)1/2 e 3 .
Curso R
UFF 2011
8 / 61
Objetos
Vetores: conjunto de elementos de uma mesma natureza.
Matrizes: conjunto de elementos de uma mesma natureza
organizado em linhas e colunas.
Array: generaliza a ideia de matriz. Enquanto em uma matriz os
elementos sao organizados em duas dimens
oes (linhas e colunas), em
um array os elementos podem ser organizados em um n
umero
arbitrario de dimensoes.
Data frames: similar como matrizes, porem diferentes colunas
podem possuir elementos de natureza diferentes.
Listas: generalizacoes de vetores, representa uma colecao de objetos.
Valores faltantes e especiais:
c(-1,0,1,NA)/0
NA (Not available) e NaN (Not a Number)
-Inf e Inf: menos e mais infinito
Jony Arrais (UFF)
Curso R
UFF 2011
9 / 61
Criando Vetores
c() - concatenacao. Ex: c(-1,0,1)
seq() - sequencia.
seq(0, 1, length.out=11)
seq(1, 9, by = 2)
seq(10) # e o mesmo que 1:10
rep() - replicacao.
rep(1:4, 2)
rep(1:4, each = 2) # diferente do anterior.
rep(1:4, c(2,2,2,2)) # mesmo que o secundo.
rep(1:4, c(2,1,2,1))
rep(1:4, each = 2, len = 4) # somente os 4 primeiros.
rep(1:4, each = 2, len = 10) # 8 primeiros + os 2 primeiros
repetidos.
rep(1:4, each = 2, times = 3) # 3 replicac
oes completas.
Jony Arrais (UFF)
Curso R
UFF 2011
10 / 61
Criando Matrizes
matrix()
matrix(data = 1:6, nrow = 2, ncol = 3, byrow = FALSE,
dimnames = NULL)
matrix(1:6,2,3, byrow = TRUE,
dimnames = list(c(L1,L2),c(C1,C2,C3)))
rbind(),cbind() - junta linhas/colunas a matrizes ja existentes.
Curso R
UFF 2011
11 / 61
Curso R
UFF 2011
12 / 61
Curso R
UFF 2011
13 / 61
Curso R
UFF 2011
14 / 61
Curso R
UFF 2011
15 / 61
Curso R
UFF 2011
16 / 61
Criando Listas
list()
lista = list(x = sample(1:5, 20, rep=T),y = rep(letters[1:5], 3),
z = sample(c(0,1,2), 20, rep=T))
acessando os elementos da lista
lista[[x]]
lista[[1]]
lista$x
Curso R
UFF 2011
17 / 61
Manipulando listas
length(lista) - n
umero de objeto na lista.
names(lista) - retorna os nomes dos objetos na lista e serve para
renomear os objetos.
c(lista1,lista2) - concatena duas listas.
append(lista1,lista2,after=2) - acrescenta o conte
udo da lista2
apos a segunda componente da lista1
Curso R
UFF 2011
18 / 61
Curso R
UFF 2011
19 / 61
Pacote foreign:
read.dta - leitura de arquivos em STATA
read.spss - leitura de arquivos em SPSS
Ler arquivo minitab, SAS, Systat, dBase entre outros!
write.dta - escreve arquivos em STATA
write.table - escreve arquivos em txt
write.csv - escrevearquivos em csv.
Curso R
UFF 2011
20 / 61
dad1=read.table(banco1.txt)
dad1=read.table(banco1.txt,header=TRUE)
str(dad1)
dad1=read.table(banco1.txt,header=TRUE,dec=,)
str(dad1)
dad2=read.dta(basemae.dta)
str(dad)
dad3=read.spss(Dados.sav,to.data.frame = TRUE)
str(dad2)
Curso R
UFF 2011
21 / 61
Curso R
UFF 2011
22 / 61
Renomeando variaveis
# Pacote - reshape
rename(dados,c(x1=y1))
dados=rename(dados,c(x1=y1,x2=y2))
Curso R
UFF 2011
23 / 61
Pacote plyr:
ddply - aplica func
oes segundo criterios, combinando os resultados em
um data frame.
Curso R
UFF 2011
24 / 61
Loopings e Condicionamento
if else ou ifelse
ifelse(condicao,tarefa1,tarefa2).
Ex: ifelse(aux>100,0,aux)
if(condicao1 & ... & condicaoN){
conjunto de tarefas
}else{
conjunto de tarefas}.
Ex: aux=100;b=10
if(aux>100 & b!= 10){
d=10
}else{
d=20
}
Jony Arrais (UFF)
Curso R
UFF 2011
25 / 61
Loopings e Condicionamento
if else ou ifelse
if(condicao1 | ... | condicaoN ){
conjunto de tarefas
}else{
conjunto de tarefas
}
for
for(i in 1:N){
conjunto de tarefas
}
while
while(condicao satisfeita){
conjunto de tarefas
}
Jony Arrais (UFF)
Curso R
UFF 2011
26 / 61
Criar uma variavel chamada ano.2000 que assume 1 se ano for igual a
2000 e 0 caso contrario.
if else ou ifelse
ano.2000=ifelse(dad2$ano,1,0).
O que os comandos abaixo fazem??
if(a>0 & b>10 ){
d=a+b ; k=a-b
}else{
k=a+b
}.
Curso R
UFF 2011
27 / 61
Curso R
UFF 2011
28 / 61
Criando Funcoes
Curso R
UFF 2011
29 / 61
funcao.teste=function(x,y ,z){
x + y + z2
}.
Curso R
UFF 2011
30 / 61
Curso R
UFF 2011
31 / 61
fun.teste=function(x){
if(is.vector(x)){
val1=sum(x)
val2=prod(x)
cat(soma =, val1, \n, produt
orio =, val2, \n)
}else{
print(A funcao so pode ser aplicada em um vetor)
}
}
Curso R
UFF 2011
32 / 61
Funcoes Graficas
Principal funcao grafica: plot.
Argumentos
type
main
sub
xlab, ylab
xlim, ylim
col
lwd
lty
cex
pch
Descricao
tipo de plot que deve ser feito (linha, pontos)
ttulo do grafico
subttulo para o grafico
ttulo para o eixo x e y
dimensiona os eixos x e y
cor do grafico
largura da linha
tipo de linha (pontilhada, contnua)
dimensiona o tamanho do smbolo
define o tipo de smbolo a ser utilizado no grafico
Curso R
UFF 2011
33 / 61
Tipos de Graficos
Curso R
UFF 2011
34 / 61
Exemplos de Graficos
plot(x,y)
Exemplo 1:
y=c(10,8,4,0,4,8,10)
x=-3:3
plot(x,y,pch=20,col=1:7,cex=4)
palette()
Exemplo 2:
palette(rainbow(10))
palette()
plot(x,y,pch=20,col=1:7,cex=4)
Exemplo 3:
plot(3:4,col=c(rgb(69,139,0,maxColorValue=255),
rgb(139,62,47,maxColorValue=255)),pch=20,cex=2)
Jony Arrais (UFF)
Curso R
UFF 2011
35 / 61
Exemplos de Graficos
hist
x=c(seq(10),rep(2:5,3),rep(1:4,by=2))
hist(x,main=Histograma de x)
hist(x, breaks=seq(0,10,by=5), main=Histograma de x)
hist(x, breaks=c(0,1,5,8,10), main=Histograma de x)
barplot
a=c(rep(1,5),rep(2,11))
s=rep(1:2, each = 2, times = 4)
barplot(table(a))
barplot(prop.table(table(a))*100)
barplot(prop.table(table(a))*100,ylab=Porcentagem,
names=c(Homem,Mulher),xlab=Genero,col=red)
Curso R
UFF 2011
36 / 61
Exemplos de Graficos
barplot
barplot(table(a,s))
barplot(table(a,s),legend.text=c(Trabalha,Nao
Trabalha),names=c(Homem,Mulher))
barplot(table(a,s),legend.text=c(Trabalha,Nao Trabalha),
names=c(Homem,Mulher),ylim=c(0,11),col=c(blue,red))
pie
a=c(rep(1,5),rep(2,11))
pie(a)
pie(table(a),labels=c(A,B),col=c(dark blue,magenta))
Curso R
UFF 2011
37 / 61
Exemplos de Graficos
boxplot
a=c(1,2,3,4,3,3,3,2,2,1,2,1,2,2,10,2,3,5,3,1)
b=c(rep(A,10),rep(B,10))
dad=as.data.frame(cbind(a,b))
boxplot(ab,col=2,main=Boxplot)
boxplot(ab,col=2,horizontal=TRUE,ylab=Idade)
ts.plot
ts.plot(a,xlab=Idade)
plot(a,type=l,xlab=Idade)
Curso R
UFF 2011
38 / 61
Exemplos de Graficos
stem
a=c(0,0.6,0,1,1.7,1,2,3.2,3,3.7,3,3.2,3,3,3,3,3,4.3,4,5,5,5.5,5.6,5,5)
stem(a)
stem(a,scale=2)
Gr
afico de uma func
ao criada
Crie a funcao: f (x) =
e (x3)
2
a=seq(2,8,by=0.1)
plot(a,funcao.teste(a),type=l)
curve(funcao.teste,2,8) # Mesmo efeito que o comando anterior
Curso R
UFF 2011
39 / 61
Exemplos de Graficos
Curso R
UFF 2011
40 / 61
Curso R
UFF 2011
41 / 61
Curso R
UFF 2011
42 / 61
Curso R
UFF 2011
43 / 61
Distribuicoes de probabilidade
Curso R
UFF 2011
44 / 61
Distribuicao normal
dnorm(-2)
dnorm(2)
pnorm(2)
qnorm(0,975)
qnorm(0,5)
rnorm(10)
args(rnorm)
rnorm(20,mean=25,sd=5)
Curso R
UFF 2011
45 / 61
Distribuicao normal
Seja X N(25, 32). Calcule:
P(15 < X < 21)
P(X < 21)
P(X > 24)
Gere uma amostra de tamanho 200 de uma normal com = 10 e
2 = 15.
Faca um histograma da amostra gerada.
Faca um grafico da distribuicao N(10, 15) e plote no mesmo grafico
que o histograma.
Como fazer o grafico da distribuicao acumulada da N(0,1)?
Curso R
UFF 2011
46 / 61
Distribuicao binomial
args(dbinom)
dbinom(2,10,.22)
Seja X Binomial(20; 0, 8). Calcule: P(X = 7)
P(X < 8)
P(X 8)
P(7 < X 15)
Gere uma amostra de tamanho 50 de uma Binomial com n = 50 e
p = 0, 5.
Faca um grafico apropriado para a amostra obtida no item anterior.
Como fazer o grafico da distribuicao acumulada de uma binomial?
Curso R
UFF 2011
47 / 61
Outras distribuicoes
Curso R
UFF 2011
48 / 61
QQplot
obter os dados,
Curso R
UFF 2011
49 / 61
QQplot
qqnorm
1
qqplot
1
Curso R
UFF 2011
50 / 61
3 < x < 5.
Curso R
UFF 2011
51 / 61
Curso R
UFF 2011
52 / 61
fx2=function(x,lambda){
exp(-length(x)*lambda)*lambda{sum(x)}*prod(1/factorial(x))
}
dados=c(2,3,1,2,3,4,5,3,3,1)
curve(fx2(c(2,3,1,2,3,4,5,3,3,1),x),0,10) # lembrar que no curve x e o que
varia!!!
optimise(fx2,c(0,10),maximum=T,x=c(2,3,1,2,3,4,5,3,3,1))
Curso R
UFF 2011
53 / 61
Curso R
UFF 2011
54 / 61
Curso R
UFF 2011
55 / 61
Curso R
UFF 2011
56 / 61
n=10
normal=rnorm(n)
qui=rchisq(n,10)
t=normal/sqrt(qui/10)
hist(t,freq=FALSE,main=Amostra de uma t)
curve(dt(x,10),add=TRUE)
Curso R
UFF 2011
57 / 61
par(mfrow=c(2,2))
for(n in c(5,10,50,1000)){
normal=rnorm(n)
qui=rchisq(n,10)
t=normal/sqrt(qui/10)
titulo=paste(n =,n)
hist(t,freq=FALSE,main=titulo)
curve(dt(x,10),add=TRUE)
}
par(mfrow=c(1,1))
Curso R
UFF 2011
58 / 61
Curso R
UFF 2011
59 / 61
num.amostra=1000
n=2
a=matrix(NA,ncol=num.amostra,nrow=n)
for(i in 1:num.amostra){
a[,i]=sample(c(1,3,5,5,7),n,rep=T)
}
resultado=apply(a,2,mean)
hist(resultado,freq=F)
curve(dnorm(x,mean=4.2,sd=2.28/sqrt(n)),add=T)
abline(v=mean(resultado),col=red)
abline(v=4.2,col=blue)
Repita o que foi feito variando o valor de n, use 3, 4, 20, 200 e 400.
Curso R
UFF 2011
60 / 61
Curso R
UFF 2011
61 / 61