Escolar Documentos
Profissional Documentos
Cultura Documentos
CENTRO DE CINCIAS
DEPARTAMENTO DE ESTATSTICA E MATEMTICA
APLICADA
CURSO DE R
Professora
Ana Maria Souza de Araujo
Aluno
Jos Roberto Silva dos Santos
Sumrio
1 Introduo
2 Tipos de Objetos
Vetores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data-frames . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Funes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Importao de dados . . . . . . . . . . . . . . . . . . . . . . .
2.7.1 A funo read.table() . . . . . . . . . . . . . . . . . . .
2.7.2 Importando planilhas do Microsoft Excel (Arquivos xls)
3 Estatstica Descritiva
4 Probabilidade e Inferncia
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
5
6
9
13
16
17
18
18
19
21
22
22
22
23
23
23
29
32
41
48
53
53
53
54
55
SUMRIO
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
UFC
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
56
57
60
61
63
67
69
72
72
75
79
84
89
94
95
Captulo 1
Introduo
R uma linguagem e tambm um ambiente para clculos estatsticos e grcos. Semelhante a linguagem e ambiente S, R oferece uma ampla variedade de
metodologias estatsticas (anlise descritiva, modelagem linear e no-linear,
testes estatsticos paramtricos e no-paramtricos, anlise de sries temporais,...) alm de um vasto ferramental grco. Este distribudo livremente
sob os termos da Free Software Foundation's GNU General Public License
em forma de cdigo fonte. Compila e executa em uma ampla variedade de
plataformas UNIX e sistemas similares (incluindo FreeBSD e Linux), Windows e MacOS.
CAPTULO 1.
INTRODUO
Captulo 2
Tipos de Objetos
No R, a manipulao de dados feita atravs de objetos, sob os quais esto
denidas uma srie de comandos que permitem, entre outras, operaes de
aritmtica, armazenamento de dados, descrio e anlise. Os objetos bsicos
do R so dos tipos: vetores, matrizes, arrays, data-frames, listas e funes. Os
quatro primeiros tipos, so objetos que armazenam dados diferindo apenas
pela forma de armazenamento e operao destes. J os objetos do tipo
funo, sempre recebem um "input" e produzem um "output".
2.1 Vetores
No R, a atribuio de um valor a um objeto feita utilizando o smbolo "=",
por exemplo:
> x1=2
>x1
[1] 2
CAPTULO 2.
TIPOS DE OBJETOS
> x2=c(1,2,3);x2
[1] 1 2 3
> x3=1:10;x3
[1] 1 2 3
6 7
9 10
> x4=seq(0,1,by=0.1);x4
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> x5=rep(1,3);x5
[1] 1 1 1
> x6=rep(c(1,2),c(3,5));x6
[1] 1 1 1 2 2 2 2 2
CAPTULO 2.
TIPOS DE OBJETOS
[1] 0.2
> x4[-3]
[1] 0.0 0.1 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> x4[1:3]
[1] 0.0 0.1 0.2
CAPTULO 2.
TIPOS DE OBJETOS
> x7=c("fulano","ciclano","beltrano");x7
[1] "fulano" "ciclano" "beltrano"
> x8=c("a",x2);x8
[1] "a" "1" "2" "3"
> is.numeric(x8)
[1] FALSE
> is.character(x8)
[1] TRUE
2.2 Matrizes
Matrizes so objetos que possuem as mesmas propriedades dos vetores, diferindo
apenas na dimenso. Uma das formas de criar uma matriz no R utilizando
a funo abaixo:
matrix(um vetor, nrow =nmero de linhas, ncol =nmero de colunas,
byrow = FALSE,...)
CAPTULO 2.
TIPOS DE OBJETOS
10
Veja que suciente escrever apenas as duas primeiras letras dos argumentos
(ao invs de ncol basta digitar nc) e tambm, basta informar o nmero de
linhas ou colunas, uma vez que estes devem ser sempre mltiplos do total de
elementos da matriz. Vamos agora denir uma outra matriz usando o mesmo
vetor que foi usado na anterior, porm, vamos agora orden-lo por linha.
> m2=matrix(1:9,nc=3,byrow=T);m2
[,1] [,2] [,3]
[1,]
1
2
3
[2,]
4
5
6
[3,]
7
8
9
Uma outra maneira de denir uma matriz usando a funo cbind, que serve
para concatenar vetores, por exemplo:
> m3=cbind(1:5,6:10,11:15);m3
[,1] [,2] [,3]
[1,]
1
6 11
[2,]
2
7 12
[3,]
3
8 13
[4,]
4
9 14
[5,]
5 10
15
a opo default, ou seja, se nada for especicado este ser a opo utilizada
CAPTULO 2.
TIPOS DE OBJETOS
11
> m3[1,2]
[1] 6
> m3[,2]
[1] 6 7
9 10
> m3[2,]
[1] 2 7 12
> m3[-2,]
[,1] [,2] [,3]
[1,]
1
6 11
[2,]
3
8 13
[3,]
4
9 14
[4,]
5 10
15
> m3[4:5,1:2]
[,1] [,2]
[1,]
4
9
[2,]
5 10
Operaes com matrizes: Existem vrias operaes denidas sob matrizes. Vejamos algumas atravs de exemplos.
> m1+m2
[,1] [,2] [,3]
[1,]
2
6 10
[2,]
6 10
14
[3,] 10
14 18
> m1*m2
[,1] [,2] [,3]
[1,]
1
8 21
[2,]
8 25
48
[3,] 21
48 81
CAPTULO 2.
TIPOS DE OBJETOS
12
> t(m3)
[,1] [,2] [,3] [,4] [,5]
[1,]
1
2
3
4
5
[2,]
6
7
8
9
10
[3,] 11
12 13
14 15
> m3%*%m2
[,1]
[1,] 102
[2,] 114
[3,] 126
[4,] 138
[5,] 150
[,2]
120
135
150
165
180
[,3]
138
156
174
192
210
> t(m2)%*%m2
[,1] [,2] [,3]
[1,] 66
78 90
[2,] 78
93 108
[3,] 90 108 126
Podemos destacar tambm as funes det(), solve() e eigen() que retornam, respectivamente, o determinante, a inversa e os auto-valores e autovetores de uma matriz. Vejamos um exemplo:
> m4=matrix(c(6,5,4,1,3,0,2,-1,1),nc=3);m4
[,1] [,2] [,3]
[1,]
6
1
2
[2,]
5
3 -1
CAPTULO 2.
[3,]
TIPOS DE OBJETOS
13
> det(m4)
[1] -15
> solve(m4)
[,1]
[,2]
[,3]
[1,] -0.2 0.06666667 0.4666667
[2,] 0.6 0.13333333 -1.0666667
[3,] 0.8 -0.26666667 -0.8666667
> eigen(m4)
$values
[1] 8.021597
2.676943 -0.698540
$vectors
[,1]
[,2]
[,3]
[1,] -0.6895898 0.1176905 -0.3086003
[2,] -0.6083940 -0.9525448 0.6136865
[3,] -0.3928393 0.2807263 0.7267425
2.3 Arrays
Array a generalizao de uma matriz, uma vez que neste tipo de objeto
podemos denir bem mais do que duas dimenses. No R denimos um array
usando a funo array() que tem a seguinte forma:
array(vetor_de_dados, vetor_de_dimenses) Por exemplo:
> ar1=array(1:20,c(3,3,2));ar1
, , 1
[,1] [,2] [,3]
[1,]
1
4
7
[2,]
2
5
8
[3,]
3
6
9
, , 2
[1,]
CAPTULO 2.
[2,]
[3,]
11
12
14
TIPOS DE OBJETOS
14
15
17
18
1 4 7
2 5 8
3 6 9
10 13 16
11 14 17
12 15 18
Vamos agora inserir mais uma dimenso neste array. Basta fazer:
> ar2=array(1:20,c(3,2,2,2));ar2
, , 1, 1
[,1] [,2]
[1,]
1
4
[2,]
2
5
[3,]
3
6
, , 2, 1
[1,]
[2,]
[3,]
[,1] [,2]
7 10
8 11
9 12
, , 1, 2
[,1] [,2]
[1,] 13
16
[2,] 14
17
[3,] 15
18
, , 2, 2
[,1] [,2]
[1,] 19
2
CAPTULO 2.
[2,]
[3,]
20
1
TIPOS DE OBJETOS
15
3
4
1 4 13 16
2 5 14 17
3 6 15 18
7 10 19 2
8 11 20 3
9 12 1 4
CAPTULO 2.
TIPOS DE OBJETOS
16
2.4 Data-frames
Data-frames so objetos que podem armazenar elementos de mais de um
tipo, diferentemente de vetores matrizes e arrays, que foram todos os seus
elementos a serem de um mesmo tipo. Sua estrutura semelhante a de uma
matriz, sendo que, aqui todas as colunas so tratadas individualmente. A
funo usada para criar data-frames data.frame(). Segue um exemplo:
> d1=data.frame(individuo=x7,altura=c(1.65,1.70,1.80));d1
individuo altura
1
fulano 1.65
2 ciclano
1.70
3 beltrano 1.80
Podemos ver que a primeira coluna de d1 formada por caracteres e a segunda constituda por valores numricos. Vale observar que, dentro de cada
coluna de um data-frame continua-se tendo a restrio dos elementos serem
do mesmo tipo. O tratamento individual apenas entre as colunas. Um data
frame pode ser tratado como uma matriz. Assim a seleo de elementos
feita da mesma forma. Por exemplo:
> d1[2,2]
[1] 1.7
> d1[,2]
[1] 1.65 1.70 1.80
"ciclano"
"beltrano"
CAPTULO 2.
TIPOS DE OBJETOS
17
2.5 Listas
Lista uma coleo de objetos, ou seja, podemos organizar vrios objetos de
tamanho e/ou tipos diferentes em uma lista. A funo usada para criar uma
lista list(). Vejamos um exemplo:
> l1=list(A=1:10,B="caractere",C=matrix(1:4,nc=2));l1
$A
[1] 1 2 3 4 5 6 7 8 9 10
$B
[1] "caractere"
$C
[,1] [,2]
[1,]
1
3
[2,]
2
4
Aqui temos uma lista formada por trs objetos de tipos e tamanhos diferentes.
Primeiro temos um vetor numrico, depois temos um caractere e por ltimo
temos uma matriz. H duas maneiras de selecionar elementos de uma lista.
A primeira usando colchetes simples [ ]. Neste caso o elemento selecionado
ainda ser uma lista. A segunda usando colchetes duplos [[ ]] e neste caso,
ser retornado o objeto que est na posio indicada da lista. Exemplo:
> l1[2]
$B
[1] "caractere"
>
> l1[[2]]
[1] "caractere"
>
> is.character(l1[2])
[1] FALSE
>
> is.character(l1[[2]])
[1] TRUE
CAPTULO 2.
TIPOS DE OBJETOS
18
2.6 Funes
Como j citado anteriormente, no R funes so tambm objetos. Estas
possuem uma lista de argumentos cujos valores, quando no padronizados,
devem ser informados pelo usurio (input). O retorno (output) fornecido
pelas funes pode ser um objeto de qualquer classe, ou um valor de qualquer
natureza ( caracter, numrico, etc). No R, a maioria das funes so escritas
com a prpria linguagem R. Para estas, possvel visualizar seu contedo
digitando o nome da funo desejada, por exemplo:
> matrix
function (data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
{
data <- as.vector(data)
if (missing(nrow))
nrow <- ceiling(length(data)/ncol)
else if (missing(ncol))
ncol <- ceiling(length(data)/nrow)
.Internal(matrix(data, nrow, ncol, byrow, dimnames))
}
<environment: namespace:base>
CAPTULO 2.
TIPOS DE OBJETOS
19
header: Se igual a TRUE a primeira linha do banco do dados ser assumida como rtulo das variveis. Se igual a FALSE os dados sero lidos
Exemplos:
1. Importando um banco de dados no formato txt, com rtulos
CAPTULO 2.
TIPOS DE OBJETOS
20
CAPTULO 2.
TIPOS DE OBJETOS
21
Captulo 3
Estatstica Descritiva
No R, temos um grande nmero de funes para a anlise descritiva de dados. Resumos estatsticos, bem como distribuies de frequncias, clculo de
correlaes etc, so facilmente obtidos com o uso dos comandos adequados.
Alm disso, tem-se aqui um vasto ferramental para a representao grca
de dados. As rotinas grcas de R, so um dos principais atrativos desse
software, por conta da grande exibilidade e versatilidade que estas oferecem
ao usurio. Portanto, antes de prosseguirmos com a anlise descritiva de
dados iremos apresentar as principais funes grcas disponveis no R, uma
vez que doravante neste texto, estas sero bastante utilizadas.
CAPTULO 3.
ESTATSTICA DESCRITIVA
23
CAPTULO 3.
ESTATSTICA DESCRITIVA
24
justicados.
bg: Especica a cor a ser usada no fundo dos grcos. Ver mais adiante
bty: Uma cadeia de caracteres que determina o tipo de caixa que ser
cex: Valor numrico que dene a scala do texto e dos smbolos grcos
CAPTULO 3.
ESTATSTICA DESCRITIVA
25
ao valor atual.
cores podem ser especicadas das seguintes formas: con uma cadeia
de caracteres dando o nome da cor (em ingls) entre aspas, por exemplo "blue". Uma lista de possveis cores pode ser obtida com a funo
colors. Outra maneira de especicar cores em termos de componentes RGB com uma cadeia da forma "#RRGGBB"onde cada um
dos pares RR, GG, BB consiste em dgitos hexadecimais com valores na
faixa 00 a FF. As cores tambm podem ser especicadas por um ndice
de uma pequena tabela de cores que compatvel com S. Tambm as
funes rgb, hsv, gray e rainbow proporcionam formas adicionais
de gerar cores.
X"e "Y".
rotacionados os caracteres individuais. Devem ser usados apenas valores mltiplos de 90.
CAPTULO 3.
ESTATSTICA DESCRITIVA
26
fg: Especica a cor a ser usada no primeiro plano dos grcos. Esta a
cor padro usada em objetos como eixos e caixas ao redor dos grcos.
fig: Um vetor numrico da forma c(x1, x2, y1, y2) que d as coorde-
de modo que:
-
1 corresponde a
2 corresponde a
3 corresponde a
4 corresponde a
texto simples
texto em negrito
texto em itlico e
texto em itlico-negrito
font.lab: Usado para especicar o tipo de letra a ser usada nos ttulos
dos eixos.
font.main: Tipo de letra a ser usada nos ttulos principais dos grcos.
font.sub: Especica o tipo de fonte a ser usada nos subttulos dos
grcos.
de notao dos eixos. Os valores de x e y especicam o nmero aproximado de marcas de escala nos eixos x e y, respectivamente, len especica o tamanho das notaes sobre os eixos, no entanto, atualmente
ainda no est implementado. O valor padro de lab c(5, 5, 7).
CAPTULO 3.
ESTATSTICA DESCRITIVA
27
padro 1.
ita) a partir do qual especicamos o nmero de linhas entre as margens do dispositivo grco e as margens da gura. O valor padro
c(5,4,4,2)+0.1.
"mex") dos ttulos dos eixos, notaes dos eixos e eixos, respectivamente, margem da gura. O valor padro c(3, 1, 0).
ignorado.
CAPTULO 3.
ESTATSTICA DESCRITIVA
28
margens a regio interna da gura em NDC (normalized device coordinates), isto , como frao (em [0,1]) da regio do dispositivo grco.
polegadas.
eixos.
a ser usada:
cteres.
plotado. Possveis valores deste argumento esto descritos no documento de ajuda da funo plot.
CAPTULO 3.
ESTATSTICA DESCRITIVA
29
usr: Um vetor da forma c(x1, x2, y1, y2) que d os extremos das co-
Observaes:
1. Argumentos R.O (Read-only) so usados apenas para consultas.
2. Os seguinte argumentos juntamente com os argumentos do tipo R.O,
s podem ser ajustados com a chamada de par():
"ask",
"g","n",
"lheight",
"mai", "mar", "mex", "mfcol", "mfrow", "mfg",
"new",
"oma", "omd", "omi",
"pin", "plt", "ps", "pty",
"usr",
"xlog", "ylog"
CAPTULO 3.
ESTATSTICA DESCRITIVA
30
quantitativas
- discretas
- contnuas
qualitativas
- ordinais
- nominais
Precisamos tambm do comando attach(PA) para trabalharmos com as colunas do objeto como variveis. Vamos examinar ento as seis primeiras
linhas do objeto PA:
> PA[1:6,]
Categoria Idade Peso Altura IMC Classe_IMC Cintura Quadril
RCQ Closse
1
Ativa
61 58.2
154 24.5
normal
87
109 0.80
MR
2 Sedentria
69 63.0
152 27.3 sobrepeso
89
104 0.86
GR
3 Sedentria
61 70.1
158 28.1 sobrepeso
106
123 0.86
GR
4 Sedentria
71 73.2
156 30.1 sobrepeso
110
122 0.90
GR
5
Ativa
63 58.6
152 25.4 sobrepeso
99
121 0.82
MR
6 Sedentria
71 77.0
160 30.1 sobrepeso
125
132 0.95
GR
Note que trocamos os nomes das variveis, isso porque espaos no so caracteres vlidos para nomear objetos, e alm disso, um objeto com o nome de
Altura(cm), por exemplo, seria entendido como funo. As variveis qualitativas devem ser do tipo fator. Devemos ento redenir estas variveis usando
a funo factor(). Por exemplo, para a varivel Categoria temos:
CAPTULO 3.
31
ESTATSTICA DESCRITIVA
Idade
Ativa
Sedentria
Sedentria
Sedentria
Ativa
Sedentria
Sedentria
Sedentria
Ativa
Sedentria
Sedentria
Sedentria
Sedentria
Sedentria
Sedentria
Ativa
Ativa
Ativa
Ativa
Ativa
Ativa
Ativa
Ativa
Ativa
Ativa
Ativa
Ativa
Ativa
Ativa
Ativa
Ativa
Ativa
Sedentria
Sedentria
Sedentria
Sedentria
Sedentria
Sedentria
Sedentria
Ativa
Sedentria
Sedentria
Sedentria
Sedentria
61
69
61
71
63
71
72
68
66
69
72
67
63
66
63
63
67
71
63
60
69
64
63
66
71
64
70
63
66
64
69
69
64
63
72
73
68
71
72
69
68
68
73
79
Peso
(Kg)
58,2
63,0
70,1
73,2
58,6
77,0
76,2
59,8
64,3
52,1
62,0
52,1
58,0
55,0
50,1
57,9
56,2
68,6
51,0
53,4
61,3
53,2
54,6
56,2
60,3
54,7
60,0
51,3
50,0
49,8
55,2
58,2
51,6
62,7
75,6
65,2
61,8
64,3
59,2
63,4
66,0
61,7
68,2
60,1
Altura
(cm)
154,0
152,0
158,0
156,0
152,0
160,0
165,0
160,0
155,0
151,0
156,0
151,0
157,0
154,0
157,0
160,0
152,0
159,0
150,0
150,0
154,0
158,0
150,0
152,0
156,0
158,0
160,0
154,0
153,0
150,0
156,0
160,0
156,5
153,0
165,0
154,0
152,0
150,0
153,0
163,0
160,0
158,0
155,0
160,0
IMC
24,5
27,3
28,1
30,1
25,4
30,1
28
23,4
26,8
22,8
25,5
22,8
23,5
23,2
20,3
22,6
24,3
27,1
22,7
23,7
25,8
21,3
24,3
24,3
24,8
21,9
23,4
21,6
21,4
22,1
22,7
22,7
21,1
26,8
27,8
27,5
26,7
28,6
25,3
23,9
25,8
24,7
28,4
23,5
Classe
IMC
normal
sobrepeso
sobrepeso
sobrepeso
sobrepeso
sobrepeso
sobrepeso
normal
sobrepeso
normal
sobrepeso
normal
normal
normal
normal
normal
normal
sobrepeso
normal
normal
sobrepeso
normal
normal
normal
normal
normal
normal
normal
normal
normal
normal
normal
normal
sobrepeso
sobrepeso
sobrepeso
sobrepeso
sobrepeso
sobrepeso
normal
sobrepeso
normal
sobrepeso
normal
Cintura
(cm)
87
89
106
110
99
125
115
85
100
74
90
76
80
78
72
78
76
106
71
76
89
73
80
84
82
76
81
76
76
72
81
78
76
90
98
96
82
78
73
93
90
90
107
92
Quadril
(cm)
109
104
123
122
121
132
125
103
120
83
111
90
102
96
81
90
95
117
83
89
106
86
108
110
99
95
104
89
87
106
98
90
87
103
110
110
93
89
82
120
117
116
120
110
RCQ
0,80
0,86
0,86
0,90
0,82
0,95
0,92
0,83
0,83
0,89
0,81
0,84
0,78
0,81
0,89
0,87
0,80
0,91
0,86
0,85
0,84
0,85
0,74
0,76
0,83
0,80
0,78
0,85
0,87
0,68
0,83
0,87
0,87
0,87
0,89
0,87
0,88
0,88
0,89
0,78
0,77
0,78
0,89
0,84
Classe RCQ
KCQ
MR
GR
GR
GR
MR
GR
GR
MR
MR
GR
MR
MR
MR
MR
GR
GR
MR
GR
GR
MR
MR
MR
PR
PR
MR
MR
MR
MR
GR
PR
MR
GR
GR
GR
GR
GR
GR
GR
GR
MR
PR
MR
GR
MR
CAPTULO 3.
ESTATSTICA DESCRITIVA
32
> Categoria=factor(Categoria)
> Categoria[1:10]
[1] Ativa Sedentria Sedentria Sedentria Ativa Sedentria
[7] Sedentria Sedentria Ativa Sedentria
Levels: Ativa Sedentria
Varivel qualitativa
Vamos escolher a varivel Categoria para ilustrao. Podemos obter uma
tabela de frequncias simples e relativas, um grco de setores ou de colunas e
a "moda"como medida resumo. As frequncias simples e relativas so obtidas
da seguinte forma:
> Cat.freq=table(Categoria)
> Cat.freq
Categoria
Ativa Sedentria
22
23
>Cat.prop=prop.table(Cat.freq)
>Cat.prop
Categoria
Ativa Sedentria
0.4888889 0.5111111
CAPTULO 3.
ESTATSTICA DESCRITIVA
33
Categoria
Ativa Sedentria
48.88889 51.11111
Neste mesmo pacote h uma funo que nos permite obter todas as informaes acima com um nico comando. Vejamos:
> describe.factor(Categoria)
Factor
Ativa Sedentria
x
22
23
Percent
48.89
51.11
mode = Sedentria Valid n = 45
Onde os valores de x so as frequncias simples, Percent retorna os percentuais e mode a moda. Vamos obter agora um grco de barras e um em
setores.
> barplot(Cat.freq)
> barplot(Cat.freq,col="blue",space=0.8,ylab="nmero de mulheres",ylim=c(0,25))
Veja que usamos a funo de baixo nvel text() combinada com a funo
interativa locator() para poder inserir os percentuais em cada setor do grco.
CAPTULO 3.
ESTATSTICA DESCRITIVA
34
73 79
2 1
64
66
67
0.08888889 0.08888889 0.04444444
71
72
73
0.11111111 0.08888889 0.04444444
CAPTULO 3.
ESTATSTICA DESCRITIVA
35
61
63
64
66
67
4.444444 17.777778 8.888889 8.888889 4.444444
70
71
72
73
79
2.222222 11.111111 8.888889 4.444444 2.222222
68
8.888889
Podemos obter vrias medidas resumo para esta varivel, abaixo segue algumas delas. Para os coecientes de assimetria e curtose necessrio instalar
o pacote agricolae:
> #Mdia
> Ida.media=mean(Idade);Ida.media
[1] 67.2
> #Mediana
> Ida.mediana=median(Idade);Ida.mediana
[1] 68
> #Moda
> Ida.mo=Mode(Idade);Ida.mo
[1] "63"
> #Decis
> Ida.decis=quantile(Idade,probs = seq(0, 1, 0.1));Ida.decis
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
60 63
63 64
66 68 69
69 71 72
79
> #Quartis
CAPTULO 3.
ESTATSTICA DESCRITIVA
36
CAPTULO 3.
37
ESTATSTICA DESCRITIVA
Max.
79.0
CAPTULO 3.
ESTATSTICA DESCRITIVA
38
Peso.freq=table(cut(Peso,seq(min(Peso),max(Peso),l=8)))
Peso.prop=prop.table(Peso.freq)
Peso.perc=100*Peso.prop
Peso.df=data.frame(Peso.freq,Peso.prop,Peso.perc)
Peso.cl=Peso.df[,-c(3,5)]
colnames(Peso.cl)=c("Peso","Freq simples","Freq relativa","Percentual")
Peso.cl
Peso Freq simples Freq relativa Percentual
(49.8,53.7]
9
0.20454545 20.454545
(53.7,57.6]
6
0.13636364 13.636364
(57.6,61.5]
12
0.27272727 27.272727
(61.5,65.3]
9
0.20454545 20.454545
(65.3,69.2]
3
0.06818182 6.818182
(69.2,73.1]
1
0.02272727 2.272727
(73.1,77]
4
0.09090909 9.090909
CAPTULO 3.
ESTATSTICA DESCRITIVA
39
[1] 59.99111
> #Mediana
> peso.mediana=median(Peso);peso.mediana
[1] 59.2
> #Moda
> peso.mo=Mode(Peso);peso.mo
[1] "58.2"
> #Decis
> peso.decis=quantile(Peso,probs = seq(0, 1, 0.1));peso.decis
0% 10%
20% 30%
40% 50% 60%
70% 80%
90% 100%
49.80 51.42 53.36 55.40 58.12 59.20 60.70 62.56 64.48 69.50 77.00
> #Quartis
> peso.quartis=quantile(Peso,probs = seq(0, 1, 0.25));peso.quartis
0% 25% 50% 75% 100%
49.8 54.7 59.2 63.4 77.0
> #Os dez primeiros percentis
> peso.percentis=quantile(Peso,probs = seq(0, 1, 0.01))
> peso.percentis[1:10]
0%
1%
2%
3%
4%
5%
6%
7%
8%
9%
49.800 49.888 49.976 50.032 50.076 50.280 50.676 51.024 51.156 51.288
> #Varincia
> peso.var=var(Peso);peso.var
[1] 51.15674
> #Desvio-padro
> peso.dp=sd(Peso);peso.dp
[1] 7.152394
> #Distncia interquartil
> peso.dq=peso.quartis[4]-peso.quartis[2];peso.dq
75%
8.7
> #Desvio mdio
> peso.dm=sum(abs(Peso-mean(Peso)))/length(Peso);peso.dm
[1] 5.563852
> #Coeficiente de variao
> peso.cv=peso.dp/peso.media;peso.cv
[1] 0.1192242
> #Assimetria
> require(agricolae)
> peso.ass=skewness(Peso);peso.ass
[1] 0.7067071
> # Distribuio assimtrica direita
CAPTULO 3.
40
ESTATSTICA DESCRITIVA
> #Curtose
> peso.cur=kurtosis(Peso);peso.cur
[1] 0.05477938
> #Distribuio leptocrtica
> summary(Peso)
Min. 1st Qu. Median
Mean 3rd Qu.
49.80 54.70
59.20 59.99
63.40
Max.
77.00
CAPTULO 3.
ESTATSTICA DESCRITIVA
41
> stem(IMC)
The decimal point is at the |
20
21
22
23
24
25
26
27
28
29
30
|
|
|
|
|
|
|
|
|
|
|
3
13469
1677788
24455799
333578
34588
788
1358
0146
11
Qualitativa vs Qualitativa
Neste caso a representao tabular ser feita por meio de uma tabela de
dupla entrada onde cada elemento desta representa a frequncia observada
das realizaes simultneas das duas variveis em estudo. Vamos tomar como
exemplo as variveis Categoria e Classe IMC. Como vimos no caso univariado
a tabela de frequncias absolutas dada pela funo table():
> cat.cimc.tab=table(Categoria,Classe_IMC);cat.cimc.tab
Classe_IMC
Categoria
normal sobrepeso
Ativa
18
4
Sedentria
9
14
CAPTULO 3.
ESTATSTICA DESCRITIVA
42
Primeiro dividimos cada elemento da tabela pelo total geral, obtendo assim a
primeira representao. Note que para obtermos as propores com relao s
linhas e colunas, foi utilizado o argumento mar=1 e mar=2, respectivamente.
A representao grca pode ser feita atravs de grcos de barras como
ilustra a gura 7.
> barplot(cat.cimc.tab,legend=T)
> barplot(cat.cimc.tab,legend=T,beside=T)
CAPTULO 3.
ESTATSTICA DESCRITIVA
43
k
X
(oi ei )2
i=1
ei
2
2 + n
T =
C
[(t 1)/t]2
CAPTULO 3.
ESTATSTICA DESCRITIVA
44
Quantitativa vs Qualitativa
Nesta situao comum analisarmos como se comporta a varivel quantitativa em cada nvel da varivel qualitativa. Vamos tomar ento as variveis
RCQ e Classe_RCQ para exemplicar este conceito. Inicialmente iremos obter
uma tabela de frequncias simples, para isso vamos agrupar a varivel RCQ
em trs classes:
>
>
>
>
CAPTULO 3.
ESTATSTICA DESCRITIVA
45
> prop.table(RCQ.CRCQ.tb,mar=1)
RCQ.cl
Classe_RCQ (0.68,0.77] (0.77,0.86] (0.86,0.95]
GR
0.00
0.15
0.85
MR
0.00
1.00
0.00
RCQ.cl
Classe_RCQ (0.68,0.77] (0.77,0.86] (0.86,0.95]
GR 0.0000000
0.1304348 1.0000000
MR 0.0000000
0.8695652 0.0000000
PR 1.0000000
0.0000000 0.0000000
CAPTULO 3.
ESTATSTICA DESCRITIVA
46
> #Medianas
> tapply(RCQ,Classe_RCQ,median)
GR
MR
PR
0.880 0.825 0.740
> #Quantis
> tapply(RCQ,Classe_RCQ,quantile)
$GR
0% 25% 50% 75% 100%
0.86 0.87 0.88 0.89 0.95
$MR
0% 25%
50% 75% 100%
0.780 0.800 0.825 0.840 0.850
$PR
0% 25% 50% 75% 100%
0.68 0.74 0.74 0.76 0.77
> #Varincias
> tapply(RCQ,Classe_RCQ,var)
GR
MR
PR
0.0005102632 0.0006302632 0.0012200000
> #Desvios-padro
> tapply(RCQ,Classe_RCQ,sd)
GR
MR
PR
0.02258901 0.02510504 0.03492850
Quantitativa vs Quantitativa
Quando as variveis envolvidas so ambas do tipo quantitativo, procedemos
de forma similar ao que havia sendo feito. Para obter uma tabela de frequncias, por exemplo, devemos agrupar as variveis em classes. Vejamos
um exemplo utilizando as variveis Peso e IMC. Vamos inicialmente agrupar
cada uma em duas classes.
>
>
>
>
>
CAPTULO 3.
ESTATSTICA DESCRITIVA
47
peso.cl
(20.3,25.2] (25.2,30.1]
(49.8,63.4]
25
7
(63.4,77]
0
11
CAPTULO 3.
ESTATSTICA DESCRITIVA
48
op=par()
#Criar a diviso desejada para o dispositivo
layout( matrix( c(2,1,0,3), 2, 2, byrow=T ),
c(1,6), c(4,1),
)
#Definir as margens da primeira figura
par(mar=c(1,1,5,2))
#Gerar o grfico de disperso
plot(Peso~IMC,
xlab='', ylab='',
las = 1)
CAPTULO 3.
>
>
>
>
>
>
>
>
>
>
>
>
ESTATSTICA DESCRITIVA
49
CAPTULO 3.
>
+
>
>
>
>
>
>
>
>
+
ESTATSTICA DESCRITIVA
50
CAPTULO 3.
ESTATSTICA DESCRITIVA
51
CAPTULO 3.
ESTATSTICA DESCRITIVA
52
Note que, nos histogramas marginais acrescentamos linhas como preenchimento. Isso foi feito utilizando o argumento density que dene o nmero de
linhas a serem plotadas e angle, que dene o anglo de inclinao das linhas.
Captulo 4
Probabilidade e Inferncia
O objetivo deste captulo mostrar de que forma podemos utilizar o R para
trabalhar com distribuies de probabilidade, gerar amostras aleatrias, estimar parmetros de uma populao, etc. conveniente, antes de iniciarmos
este estudo, aprendermos como denir nossas prprias funes. Note que, na
subseo 3.3.3 j utilizamos este recurso. Falaremos tambm sobre ordens de
controle, j que estas so habitualmente usadas na construo de funes.
53
CAPTULO 4.
PROBABILIDADE E INFERNCIA
54
1. Operadores Lgicos:
! : Indica negao
& e && : Indica o argumento lgico (AND ou E). O primeiro se
3. Operadores Aritmticos
+ : Soma
- : Diferena
* : Produto
/ : Diviso
x%%y : Indica o resto da diviso de x por y
x %/% y : Indica a diviso inteira de x por y
%*% : Multiplicao matricial
%x% : Produto de Kronecker
4.1.2 Ciclos
Ciclos no R so implementados com as ordens for(), repeat() e while().
Os ciclos do tipo for so da seguinte forma:
> for (nome in expres_1) expres_2
CAPTULO 4.
PROBABILIDADE E INFERNCIA
55
sub-expresses pode aparecer a varivel de controle; esta expresso calculada repetidamente medida que a varivel de controle nome percorre os
valores da expres_1. O exemplo a seguir ilustra este procedimento.
> a=c(1,2,3,4)
> b=c(5,6,7,8)
> c=numeric(length(a))
> for(i in 1:4){
+ c[i]=a[i]+b[i]
+ }
>
> c
[1] 6 8 10 12
CAPTULO 4.
PROBABILIDADE E INFERNCIA
56
e pode ser utilizada em qualquer altura do cdigo. Vamos ilustrar o uso deste
recurso atravs de um exemplo simples. Neste criamos a funo fatorial
que retorna o fatorial de um nmero natural.
> fatorial=function(n){
+ fat=1
+ {
+
if (n==0)
+
return(fat)
+
else{
+
for (i in 1:n){
+
fat=fat*(n-(n-i))
+
}
+
}
+ }
+
+ return(fat)
+ }
>
> fatorial(5)
[1] 120
CAPTULO 4.
PROBABILIDADE E INFERNCIA
57
CAPTULO 4.
PROBABILIDADE E INFERNCIA
58
#Funes densidade
curve(dnorm(x,100,50),-50,250,ylab="f(x)")
curve(dnorm(x,80,50),-50,250,ylab="f(x)",add=T,lty=2)
curve(dnorm(x,100,80),-50,250,ylab="f(x)",add=T,lty=3)
legend("topright",c("N(100,50)","N(80,50)","N(100,80)"),lty=1:3)
#Funes de distribuio
curve(pnorm(x,100,50),-50,250,ylab="F(x)")
curve(pnorm(x,80,50),-50,250,ylab="F(x)",add=T,lty=2)
curve(pnorm(x,100,80),-50,250,ylab="F(x)",add=T,lty=3)
legend("topleft",c("N(100,50)","N(80,50)","N(100,80)"),lty=1:3)
CAPTULO 4.
PROBABILIDADE E INFERNCIA
59
Moda_Normal=function(mu,dp){
fn=function(x){dnorm(x,mean=mu,sd=dp)}
op=optimize(fn,c(mu-3*dp,mu+3*dp),maximum=T)
return(round(op$maximum,1))
}
Esta funo recebe como argumentos a mdia (mu) e o desvio padro (dp) da
distribuio normal especicada. Vejamos ento alguns exemplos:
> Moda_Normal(0,1)
[1] 0
> Moda_Normal(10,1)
[1] 10
> Moda_Normal(100,10)
[1] 100
> Moda_Normal(200,40)
[1] 200
Como podemos ver a moda da distribuio normal coincide com a sua mdia.
O leitor pode conrmar, como exerccio, que os valores acima so tambm
as medianas destas normais.
CAPTULO 4.
PROBABILIDADE E INFERNCIA
60
O segundo argumento das funes especica o grau de liberdade da distribuio t. A distribuio t-Student se aproxima da distribuio normal
quando o grau de liberdade aumenta. Na Figura 16 ilustramos essa propriedade.
#Densidades t
curve(dnorm(x),-4,4,ylab="f(x)",lty=2)
curve(dt(x,1),-4,4,add=T,col=2)
curve(dt(x,3),-4,4,add=T,col=3)
curve(dt(x,8),-4,4,add=T,col=4)
curve(dt(x,15),-4,4,add=T,col=5)
legend("topleft",c("N (0,1)","t (1)","t (3)",
"t (8)","t (15)"),col=1:5,lty=c(2,1,1,1,1))
#Funes de distribuio t
curve(pnorm(x),-4,4,ylab="F(x)",lty=2)
curve(pt(x,1),-4,4,add=T,col=2)
curve(pt(x,3),-4,4,add=T,col=3)
curve(pt(x,8),-4,4,add=T,col=4)
curve(pt(x,15),-4,4,add=T,col=5)
legend("topleft",c("N (0,1)","t (1)",
"t (3)","t (8)","t (15)"),col=1:5,lty=c(2,1,1,1,1))
Da mesma forma que foi feito para a distribuio normal, vamos implementar
uma funo que retorne a moda distribuio t. Vamos chamar esta funo
de Moda_t().
CAPTULO 4.
PROBABILIDADE E INFERNCIA
61
4.2.3 F-Snedecor
A distribuio F-Snedecor referenciada por f e a descrio dos seus argumentos pode ser vista executando ?FDist. Vejamos ento alguns exemplos.
CAPTULO 4.
PROBABILIDADE E INFERNCIA
62
> df(3,1,2)
[1] 0.05163978
> pf(3,1,2)
[1] 0.7745967
> qf(0.5,1,2)
[1] 0.6666667
> set.seed(15)
> rf(10,1,2)
[1] 0.3860004526 2.4215853368 4.1941878357 0.5356487440 0.2069921455
[6] 0.4694068847 0.0003382301 2.9451130609 0.2473070646 0.3069481961
O segundo e terceiro argumentos das funes especicam os graus de liberdade da distribuio F. Na Figura 17 temos os grcos da funo de densidade
e da funo de distribuio para algumas combinaes de graus de liberdade.
>
>
>
>
>
>
>
+
>
>
>
>
>
>
>
+
#Densidades F
curve(df(x,1,2),0,10,ylab="f(x)")
curve(df(x,2,5),0,10,add=T,col=2)
curve(df(x,4,5),0,10,add=T,col=3)
curve(df(x,8,6),0,10,add=T,col=4)
curve(df(x,15,10),0,10,add=T,col=5)
legend("topright",c("F (1,2)","F (2,5)","F (4,5)",
"F (8,6)","F (15,10)"),col=1:5,lty=1)
#Funes de distribuio F
curve(pf(x,1,2),0,10,ylab="F(x)",ylim=c(0,1))
curve(pf(x,2,5),0,10,add=T,col=2)
curve(pf(x,4,5),0,10,add=T,col=3)
curve(pf(x,8,6),0,10,add=T,col=4)
curve(pf(x,15,10),0,10,add=T,col=5)
legend("bottomright",c("F (1,2)","F (2,5)","F (4,5)",
"F (8,6)","F (15,10)"),col=1:5,lty=1)
CAPTULO 4.
PROBABILIDADE E INFERNCIA
63
CAPTULO 4.
PROBABILIDADE E INFERNCIA
64
[1] 1.337030
> set.seed(16)
> rgamma(10,3,2)
[1] 1.6550091 1.1528434 0.8909968 2.3221277 0.9071140 1.6007216
[8] 0.7543756 1.7441700 3.1368359 1.3400572
1
()
x
x1 exp ( )1l(0,) (t)
onde, o parmetro de forma e o parmetro de escala so especicados, respectivamente pelos argumentos shape e scale. J na outra parametrizao,
que chamaremos de parametrizao 2, temos a seguinte funo de densidade:
f (x) =
1
()
curve(dgamma(x,shape=1,scale=2),0,20,ylab="f (x)",
main="Parametrizao 1")
curve(dgamma(x,shape=2,scale=2),0,20,add=T,col=2)
curve(dgamma(x,shape=5,scale=1),0,20,add=T,col=3)
curve(dgamma(x,shape=9,scale=0.5),0,20,add=T,col=4)
legend("topright",c("exp (1)","G (2, 1)","G (5, 1)",
"G (9, 0.5)"),col=1:4,lty=1)
curve(dgamma(x,shape=1,rate=2),0,6,ylab="f (x)",
main="Parametrizao 2")
curve(dgamma(x,shape=2,rate=2),0,6,add=T,col=2)
curve(dgamma(x,shape=5,rate=1),0,6,add=T,col=3)
curve(dgamma(x,shape=9,rate=0.5),0,6,add=T,col=4)
legend("topright",c("exp (1)","G (2, 1)","G (5, 1)",
"G (9, 0.5)"),col=1:4,lty=1)
CAPTULO 4.
PROBABILIDADE E INFERNCIA
65
curve(dgamma(x,shape=(3/2),scale=2),0,20,add=F,
col="#BFFFBF",lwd=5,ylab="f (x)")
curve(dchisq(x,3),0,20,add=T,lty=2)
legend("topright",c("G (1.5, 2)",expression(chi**2*(3))),
col=c(1,"#BFFFBF"),lty=c(2,1))
CAPTULO 4.
PROBABILIDADE E INFERNCIA
66
CAPTULO 4.
PROBABILIDADE E INFERNCIA
67
[1] 4
> Moda_gama(5,4,2)
[1] 1
Na Figura 20 temos a representao grca de algumas distribuies de probabilidade e distribuio de probabilidade acumulada da binomial.
>
>
+
>
>
#Distribuio de probabilidade
plot(dbinom(1:40,10,0.8),ty="p",pch=16,col=2,
ylab="P(X=x)",xlab="x")
points(dbinom(1:40,20,0.7),ty="p",pch=16,col=3)
points(dbinom(1:40,40,0.5),ty="p",pch=16,col=4)
CAPTULO 4.
>
+
>
>
+
>
>
>
>
>
>
+
PROBABILIDADE E INFERNCIA
68
Deixa-se ao leitor, como exerccio, construir uma funo que generalize este
procedimento.
CAPTULO 4.
PROBABILIDADE E INFERNCIA
69
#Distribuio de Probabilidade
plot(dpois(0:20,1),ty="p",pch=16,ylab="P(X=x)",xlab="x")
points(dpois(1:20,4),ty="p",pch=16,col=2)
points(dpois(1:20,10),ty="p",pch=16,col=3)
legend("topright",c("P(1)","P(4)","P(10)"),
col=1:3,bty="n",pch=16)
#Distribuio de probabilidade acumulada
plot(ppois(0:20,1),ty="S",pch=16,ylab=expression(P(X<=x)),
ylim=c(0,1),xlab="x")
points(ppois(1:20,4),ty="s",pch=16,col=2)
points(ppois(1:20,10),ty="s",pch=16,col=3)
points(ppois(1:20,1),ty="p",pch=16)
points(ppois(1:20,4),ty="p",pch=16,col=2)
points(ppois(1:20,10),ty="p",pch=16,col=3)
legend("bottomright",c("P(1)","P(4)","P(10)"),
col=1:3,bty="n",pch=16,lty=1)
CAPTULO 4.
PROBABILIDADE E INFERNCIA
70
CAPTULO 4.
PROBABILIDADE E INFERNCIA
71
> Moda_poisson=function(l){
+ if(l==trunc(l))
+ return(list(mo1=(l-1),mo2=l))
+ else
+ return(floor(l))
+ }
>
>
> Moda_poisson(1)
$mo1
[1] 0
$mo2
[1] 1
> Moda_poisson(3.3)
CAPTULO 4.
PROBABILIDADE E INFERNCIA
72
[1] 3
> Moda_poisson(5.6)
[1] 5
> Moda_poisson(10)
$mo1
[1] 9
$mo2
[1] 10
4.3 Inferncia
Nesta seo vamos utilizar o R para obter distribuies amostrais, ilustrar
propriedades de estimadores, teoremas, etc. Alm disso, mostraremos algumas funes que j prontas. Por exemplo, as funes t.test() e var.test()
que sero usadas na parte de testes de hipteses.
CAPTULO 4.
PROBABILIDADE E INFERNCIA
73
populao uniforme com mdia 0.5 e desvio padro 1/ 12. Alm disso, podemos indicar um vetor contendo tamanhos de amostras e tambm o nmero
de amostras simuladas. Esta funo retornar os histogramas da varivel Z
para cada tamanho de amostra especicado. So tambm traadas a curva
terica (linha pontilhada) e densidade simulada (linha vermelha).
> TCL=function(r=runif, m=0.5, s=1/sqrt(12),n=c(1,3,10,30), N=1000,par){
+
for (i in n) {
+
x=matrix(r(i*N),nc=i)
+
x=(apply(x, 1, sum) - i*m )/(sqrt(i)*s)
+
hist(x, col='light blue', probability=T, main=paste("n =",i),
+
ylim=c(0,max(0.4, density(x)$y)))
+
lines(density(x), col='red', lwd=3)
+
curve(dnorm(x), col='blue', lwd=3, lty=3, add=T)
+
if(N>100) {
+
rug(sample(x,100))
+
} else {
+
rug(x)
+
}
+ }
+ }
CAPTULO 4.
PROBABILIDADE E INFERNCIA
74
Figura 4.11: Ilustrao do TCL para amostras provenientes de uma populao exponencial com mdia 1 e desvio-padro 1
CAPTULO 4.
PROBABILIDADE E INFERNCIA
75
CAPTULO 4.
PROBABILIDADE E INFERNCIA
76
populacional.
Esperamos que a mdia das mdias amostrais seja igual a 100 e a varincia
seja igual a (10/20) = 0, 5. Como vemos, as estimativas obtidas pela simulao so bem prximas do esperado. A pequena discrepncia entre estes
valores devido estarmos trabalhando com um nmero nito de amostras. O
leitor poder tambm, ao repetir esse procedimento, obter estimativas diferentes dependendo do valor da semente aleatria xada. esperado tambm
que a distribuio das mdias amostrais sejam normalmente distribudas. Vamos ento completar a ilustrao fazendo um histograma com curva terica
para as mdias amostrais obtidas na simulao.
> hist(xbar,prob=T,main="",ylim=c(0,0.6),ylab="Densidade")
> curve(dnorm(x,100,sqrt(10/20)),add=T)
2
CAPTULO 4.
PROBABILIDADE E INFERNCIA
77
Figura 4.13: Histograma com curva terica para as mdias amostrais simuladas
Figura 4.14: Histograma com curva terica para as estatsticas P obtidas das
amostras simuladas
b 2)
As estimativas para a mdia e varincia de S 2 encontradas foram E(S
d 2 ) 10, 4338 esto bem prximas dos valores tericos E(S 2 ) =
9, 9675 e Var(S
2
10 e Var(S 2 ) = 2(10)
= 10, 5263. As distribuies das estatsticas X e
201
P de uma populao normal so facilmente obtidas analiticamente. Por
CAPTULO 4.
PROBABILIDADE E INFERNCIA
78
meio de simulao podemos investigar distribuies amostrais mais complicadas de serem obtidas analiticamente. Por exemplo, a distribuio de
S/X (coeciente de variao amostral). Considerando ainda a populao
X N (100, 10) vamos determinar a mdia e a varincia da estatstica
cv = S/X .
> set.seed(458)
> amos3=matrix(rnorm(10000*20, mean = 100, sd = sqrt(10)), nc = 10000)
> cv=apply(amos3,2,function(x){(sd(x)/mean(x))})
> mean(cv)
[1] 0.03122713
> var(cv)
[1] 2.589526e-05
b v ) 0, 031 e var(c
Temos ento as estimativas E(c
c v ) 0, 000. Tomemos
agora a populao Y U [0, 10]. Vamos ilustrar a distribuio da estatstica
Yn = max(Y). Sabemos que se Y possui distribuio uniforme no intervalo
[0, ] a densidade de Yn dada por:
fYn (y) =
n n1
y 1l(0,) (y)
n
(4.1)
n
n+1
Var(Yn ) =
n2
(n + 1)2 (n + 2)
Vamos inicialmente obter estimativas para mdia e varincia de Yn utilizando o mesmo procedimento anterior, agora considerando a populao
Y U [0, 10] e tomando N = 10000 e n = 20:
> set.seed(459)
> amos4=matrix(runif(10000*20,0,10), nc = 10000)
> yn=apply(amos4,2,max)
> mean(yn)
[1] 9.525264
> var(yn)
[1] 0.2026569
=
Os valores tericos obtidos atravs da densidade de Yn so E(Yn ) = 2010
21
20102
9, 5238 e Var(Yn ) = 212 22 = 0, 2061. Note que as estimativas obtidas atravs
da simulao esto bem prximas destas. Vamos agora gerar um histograma
para os mximos obtidos nas amostras simuladas e acrescentaremos neste a
curva terica 4.1.
CAPTULO 4.
>
+
+
>
>
PROBABILIDADE E INFERNCIA
79
fyn=function(x,n,theta){
(n/(theta^n))*(y^(n-1))
}
hist(yn,prob=T,main="",ylim=c(0,2),ylab="Densidade")
curve(fyn(x,20,10),0,10,add=T)
xi
l() = xi ln n
CAPTULO 4.
PROBABILIDADE E INFERNCIA
80
#Verossimilhana da Poisson
#Gerar amostra aleatria de uma P(2)
set.seed(165)
xnpos=rpois(20,2)
n=length(xnpos)
s=sum(xnpos)
L=function(lam){(lam^s)*exp(-n*lam)}
l=function(lam){log(lam)*s-n*lam}
op=par(mfrow=c(1,2))
#Grfico da Verossimilhana
curve(L,0,4,xlab=expression(lambda),ylab=expression(L(lambda)))
maxL=optimize(L,c(0,4),maximum=T)[[1]]
obL=optimize(L,c(0,4),maximum=T)[[2]]
lines(c(maxL,maxL),c(obL,-1),lty=2)
points(maxL,obL,pch=20)
#Grfico da Log-verossimilhana
curve(l,0,10,xlab=expression(lambda),ylab=expression(l(lambda)))
maxl=optimize(l,c(0,10),maximum=T)[[1]]
obl=optimize(l,c(0,10),maximum=T)[[2]]
lines(c(maxl,maxl),c(obl,-1000),lty=2)
points(maxl,obl,pch=20)
par(op)
De uma forma geral podemos resumir esse procedimento nos seguintes passos:
Escolher a populao de interesse e seus parmetros;
Escrever as funes L() e l();
Encontrar o mximo destas funes utilizando a funo optimize();
Plotar os grcos indicando o ponto de mximo. Isso pode ser feito
com as funes points() e lines().
CAPTULO 4.
PROBABILIDADE E INFERNCIA
81
f (y1 , y2 , . . . , y5 ) =
5
Y
ni
i=1
yi
pyi i (1 pi )ni yi
CAPTULO 4.
82
PROBABILIDADE E INFERNCIA
p
i
i=1
5
X
l(, ) =
yi ln
i=1
pi
+ ni ln(1 pi )
1 pi
l(, ) =
5
X
[yi ( + di ) + ni ln(1 pi )]
i=1
(yi i )
(yi i )di
I(, ) =
vi vi di
vi di vi d2i
Con=c(2.6,3.8,5.1,7.7,10.2)
n=c(50,48,46,49,50)
y=c(6,16,24,42,44)##nmero de insetos mortos(dose d_i)
d=log(Con)
CAPTULO 4.
>
>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
>
>
>
PROBABILIDADE E INFERNCIA
83
NR(c(-5,3),10^(-10))
Resultado do Processo iterativo
No de iteraes = 4
alfa esti.= -4.886912 , beta esti.= 3.103545
Log-verossimilhana= -119.8942
Obteve-se ento, ao nal de 4 iteraes, = 4, 8869 e = 3, 1035. Portanto, o modelo de dose resposta estimado
p = 1 (1 + e4,8869+3,1035d )1
Podemos utilizar tambm a funo fitdistr() da biblioteca MASS que utiliza o algoritmo BFGS (Broyden et.al., 1970) para estimao de parmetros.
Considere ento o seguinte exemplo:
CAPTULO 4.
17,88 28,92
68,64 68,64
PROBABILIDADE E INFERNCIA
84
De estudos anteriores admite-se que a resistncia apresenta aproximadamente uma distribuio de Weibull, cuja densidade dada por f (x; , ) =
x1 exp (x ), 0 < x < , onde > 0 e > 0. Nosso objetivo
com base na amostra observada.
determinar (
, )
Vamos ento aplicar a funo fitdistr().
>
+
+
>
>
>
IC.media=function(amos,nc=0.95){
xb=mean(amos4)
s=sd(amos4)
lim.inf=(xb-qt(0.5*(1+nc),length(amos4)-1)*(s/sqrt(length(amos4))))
lim.sup=(xb+qt(0.5*(1+nc),length(amos)-1)*(s/sqrt(length(amos))))
cat("\t","IC para a mdia de uma pop. normal com var. desconhecida","\n")
cat("IC a", nc*100,"%","\n")
ic=c(lim.inf,lim.sup)
names(ic)=c("lim.inf","lim.sup")
CAPTULO 4.
PROBABILIDADE E INFERNCIA
85
+ ic
+ }
Estes mesmos intervalos podem ser obtidos com a funo t.test() da seguinte
forma:
> t.test(amos4)$conf.int
[1] 16.14058 21.03455
attr(,"conf.level")
[1] 0.95
> t.test(amos4,conf.level=0.99)$conf.int
[1] 15.07220 22.10292
attr(,"conf.level")
[1] 0.99
CAPTULO 4.
PROBABILIDADE E INFERNCIA
86
+ }
+ return(cont/N)
+ }
Vamos aplicar para n = 10 e n = 30. Note que obtemos uma maior cobertura
com a maior amostra.
> set.seed(556)
> nivel.conf(N=1000,n=10,mu=20,sigma=4)
[1] 0.944
> set.seed(643)
> nivel.conf(N=1000,n=30,mu=20,sigma=4)
[1] 0.963
require(animation)
oopt=ani.options(interval = 0.1, nmax = 100)
set.seed(900)
conf.int(size=20,main="Demostrao de Intervalo de Confiana")
ani.options(oopt)
n(
p p)
p
N (0, 1)
p(1 p)
Podemos calcular,
P {z/2
n(
p p)
p
z/2 } = 1
p(1 p)
CAPTULO 4.
PROBABILIDADE E INFERNCIA
87
p(1 p)
n
CAPTULO 4.
PROBABILIDADE E INFERNCIA
88
Gerando uma amostra de uma populao de Bernoulli com p = 0, 6 e aplicando a funo IC.prop() obtemos os seguinte resultados:
> set.seed(7856)
> amos5=rbinom(10,1,0.6);amos5
[1] 0 1 1 0 1 1 1 1 1 1
> IC.prop(amos5)
IC para proporo
IC a 95 %
lim.inf lim.sup
0.552082 1.047918
1 2
z
2n 1/2
q
z1/2
1+
p(1
p)
n
2
z1/2
4n2
1 2
z
n 1/2
CAPTULO 4.
PROBABILIDADE E INFERNCIA
89
Deseja-se testar:
H0 : = 30
H1 : 6= 30
Sabendo que:
T =
n(X 0 )
t(n1)
S
CAPTULO 4.
>
>
>
+
>
+
>
>
PROBABILIDADE E INFERNCIA
90
#Regio crtica
curve(dt(x,n-1),-4,4,ylab="f (x)")
polygon(c(-Tt,seq(-Tt,-4,l=30),-4),
c(0,dt(seq(-Tt,-4,l=30),n-1),0),density=10)
polygon(c(Tt,seq(Tt,4,l=30),4),
c(0,dt(seq(Tt,4,l=30),n-1),0),density=10)
text(0,0.2,"AC. Ho",font=2)
text(c(-3.2,3.2),c(0.05,0.05),c("Rej. Ho","Rej. Ho"),font=2)
CAPTULO 4.
PROBABILIDADE E INFERNCIA
91
CAPTULO 4.
PROBABILIDADE E INFERNCIA
92
29.70386
H0 : = 10
H1 : 6= 10
+ P Z > z/2 +
P Z > z/2 +
/ n
/ n
#poder do teste
set.seed(89081)
amos7=rnorm(9,10,4)
#valores alternativos para mdia
mus=seq(7,13,0.1)
# poder do teste para n=9
pt1=pnorm(1.96+((mean(amos7)-mus)/sqrt(4/9)),lower.tail=F)+pnorm(-1.96+((mean(amos7)-mus)/sqrt(4/9)))
#poder do teste para n=20
pt2=pnorm(1.96+((mean(amos7)-mus)/sqrt(4/20)),lower.tail=F)+pnorm(-1.96+((mean(amos7)-mus)/sqrt(4/20)))
#poder do teste para n=30
pt3=pnorm(1.96+((mean(amos7)-mus)/sqrt(4/30)),lower.tail=F)+pnorm(-1.96+((mean(amos7)-mus)/sqrt(4/30)))
#plotando em um nico grfico
plot(pt1,ty="l",ylab=expression(pi(mu)))
points(pt2,ty="l",col=2)
points(pt3,ty="l",col=3)
legend("bottomleft",c("n=9","n=20","n=30"),col=1:3,lty=1,bty="n")
CAPTULO 4.
PROBABILIDADE E INFERNCIA
93
populaes normais
t.test(x,...)
t.test(x,y,...)
t.test(x,y,paried=T)
t.test(x,y,var.equal=T)
prop.test()
var.test()
CAPTULO 4.
PROBABILIDADE E INFERNCIA
94
Disciplina
Estatstica Descritiva
Probabilidade e
Inferncia
stats
Mtodos NoParamtricos
stats
Anlise de
Regresso
Planejamento de
Experimentos
Controle estatstico
da Qualidade
epitools
stats
stats
MASS
qcc
summary(), hist(),
table()
pie(), barplot()
Mode()
pnorm(), rnorm()
pbinom(), rbinom()
t.test()
shapiro.test()
wilcox.test()
binom.exact()
lm()
anova()
residuals()
predict()
aov()
bartlett.test()
TukeyHSD()
boxcox()
qcc()
Anlise fatorial
Componentes principais
Anlise Multivariada
Anlise de agrupamento
MASS
Anlise discriminante linear
energy
Teste de normalidade
Multivariada
chisq.test()
Testes de
fisher.test()
associao
Biometria
stats
mantelhaen.test()
Teste Cochran-Mantel-Haenszel
glm()
Regresso logstica
ts()
Denir a srie
Sries
filter()
Filtros lineares
Temporis
stats
acf()
Correlograma
arima()
Ajusta modelos autoregressivos
tsdiag()
Diagnstico do ajuste
(*): Estas bibliotecas no fazem parte do conjunto de bibliotecas padro do R, e devem ser instaladas
posteriormente.
stats
factanal()
princomp()
hclust()
lda()
mvnorm.etest()
Referncias Bibliogrcas
[1] Bussab, W. de O. e Morettin, P. A. (2003). Estatstica Bsica. 5 ed.
So Paulo: Editora Saraiva.
[2] Pinheiro J. I. D. et al. (2008). Estatstica bsica: A arte de trabalhar
com dados. 1 ed. Rio de Janeiro: Campus.
[3] James, B. R. (1981). Probabilidade: Um Curso em Nvel Intermedirio.
Projeto Euclides, Impa, Rio de Janeiro.
[4] Kalbeisch, J. G. (1985). Probability and Statistical Inference, 2d edition.
Springer-Verlag, New York.
[5] R Development Core Team (2005). R: A language and environment for
statistical computing. R Foundation for Statistical Computing, Vienna,
Austria, URL http://www.R-project.org.
[6] Wilson, E. B. (1927). Probable inference, the law of succession, and
statistical inference. Journal of the American Statistical Association 22:
209-212.
95