You are on page 1of 43

Questo 02

Dados da questo:

Quad. 1 114,7 144,7 119,1 113,7 108,9 96,7 87,6 132,4


Quad. 2 144, 173,4 154,2 154,7 125,9 119,5 155,7 213,9 156,2 159,0
7
Quad.3 153, 192,5 145,5 168,8 141,5 141,2 189,6 178,4 208,6
1
Letra a) Comandos do R:
> q1 <- c(114.7, 144.7, 119.1, 113.7, 108.9, 96.7, 87.6, 132.4)
> q2 <- c(144.7, 173.4, 154.2, 154.7, 125.9, 119.5, 155.7, 213.9, 156.2, 159)
> q3 <- c(153.1, 192.5, 145.5, 168.8, 141.5, 141.2, 189.6, 178.4, 208.6)
> boxplot(q1, q2, q3, xlab = "quadrimestre", ylab = "ndice")

Resultado obtido:

Comentrio(s):

Dos 3 quadrimestres observados o 3 deles foi o que mostrou maior volume de


vendas e uma maior variao nas mesmas enquanto que o 1 foi o que teve o menor
nmero de vendas e tambm menor variao.

Letra b) Comandos do R:
> q1.m <- c(mean(q1), sd(q1), 100 * sd(q1)/mean(q1))
> q2.m <- c(mean(q2), sd(q2), 100 * sd(q2)/mean(q2))
> q3.m <- c(mean(q3), sd(q3), 100 * sd(q3)/mean(q3))
> names(q1.m) <- names(q2.m) <- names(q3.m) <- c("Mdia", "Desvio padro", "CV")

Resultados obtidos:

> q1.m
Mdia
114.72500

Desvio padro
18.22751

CV
15.88800

Mdia
155.72000

Desvio padro
25.89379

CV
16.62843

Mdia
168.80000

Desvio padro
24.91726

CV
14.76141

> q2.m
> q3.m

Comentrio(s):
A mdia de vendas do 1 Quadrimestre a menor entre os 3, assim como seu
desvio padro. O 2 Quadrimestre o que possui maiores desvio padro e coeficiente
de variao. E o 3 Quadrimestre o que apresenta maior mdia e menor coeficiente de
variao.

Questo 03
Letra a) Dados para a questo:
Matriz fornecida:

1
3
5
7

2
4
6
8

10
20
30
40

Comandos, resultados e comentrios:

> dadosmat<-matrix(scan("matriz_exemplo.txt"),nrow=4,ncol=3,byrow=T)
Read 12 items
> dadosmat
[,1]
[,2]
[,3]
[1,]
1
2
10
[2,]
3
4
20
[3,]
5
6
30
[4,]
7
8
40
Esses comandos lem e imprimem a matriz exemplo, contendo 3 colunas e 4
linhas.
> apply(dadosmat,1,mean)
[1]
4.333333
9.000000

13.666667

18.333333

Calcula e imprime a mdia das linhas 1,2,3 e 4 respectivamente.


> apply(dadosmat,2,mean)
[1]
4
5
25
Calcula e imprime a mdia das colunas 1,2 e 3 respectivamente.
> apply(dadosmat,1,sd)
[1]
4.932883
9.539392

14.153916

18.770544

Calcula e imprime o desvio padro das linhas 1,2,3 e 4 respectivamente.


> apply(dadosmat,2,sd)
[1] 2.581989 2.581989 12.909944
Calcula e imprime o desvio padro das colunas 1,2 e 3 respectivamente.
Diferena entre apply e tapply: enquanto o comando apply aplica uma funo
a um determinado vetor, o tapply, constri uma tabela relacionando o clculo da funo
escolhida com uma outra varivel.

Letra b) Comandos e resultados:


> sample(x=1:5, size=4, replace = FALSE)
[1]
1
4
2
3
> sample(x=1:60, size=6, replace = FALSE)
[1]
51
15
59
11
16
13

Comentrio(s):

A primeira linha de comandos sorteia 4 nmeros aleatoriamente entre 1 e 5,


neste caso o nmero 5 no foi sorteado.
A segunda linha de comandos sorteia aleatoriamente 6 nmeros entre 1 e 60.

Dados para a questo:


Lado A:
Lado B:

>choose(60,6)
[1] 50063860
>choose(6,6)*1.75
[1] 1.75
>choose(7,6)*1.75
[1] 12.25
>choose(8,6)*1.75
[1] 49
>choose(9,6)*1.75
[1] 147
>choose(10,6)*1.75
[1] 367.5

>choose(11,6)*1.75
[1] 808.5
>choose(12,6)*1.75
[1] 1617
>choose(13,6)*1.75
[1] 3003
>choose(14,6)*1.75
[1] 5255.25
>choose(15,6)*1.75
[1] 8758.75

Comentrio(s): O lado A representa a quantidade de combinaes possveis


quando se tem 60 valores e escolhe-se, aleatoriamente, 6 valores; o lado B por
sua vez representa a quantidade de combinaes possveis entre valores que
variam de 6 a 15 elementos tomados de 6 a 6 multiplicados por 1.75.

Questo 04

Dados para a questo: arquivo fornecido pelo professor exemplo_milsa.txt.

Letra a)Comandos, resultados e comentrios:

> milsa <- read.table("exemplo_milsa.txt",header=T)


> milsa
ID
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

Civil
1
2
2
1
1
2
1
1
2
1
2
1
1
2
2
1
2
2
1
1
2
1
1
2
2
2
1
2
2
2
1
2
2
1
2
2

Instrucao
1
1
1
2
1
1
1
1
2
2
2
1
2
1
2
2
2
1
3
2
2
2
1
3
2
2
1
2
2
2
3
2
3
3
2
3

Filhos
NA
1
2
NA
NA
0
NA
NA
1
NA
2
NA
NA
3
0
NA
1
2
NA
NA
1
NA
NA
0
2
2
NA
0
5
2
NA
1
3
NA
2
3

Salrio
4.00
4.56
5.25
5.73
6.26
6.66
6.86
7.39
7.59
7.44
8.12
8.46
8.74
8.95
9.13
9.35
9.77
9.80
10.53
10.76
11.06
11.59
12.00
12.79
13.23
13.60
13.85
14.69
14.71
15.99
16.22
16.61
17.26
18.75
19.40
23.30

Ano
26
32
36
20
40
28
41
43
34
23
33
27
37
44
30
38
31
39
25
37
30
34
41
26
32
35
46
29
40
35
31
36
43
33
48
42

Mes
3
10
5
10
7
0
0
4
10
6
6
11
5
2
5
8
7
7
8
4
9
2
0
1
5
0
7
8
6
10
5
4
7
7
11
2

Regiao
1
2
2
3
3
1
1
2
2
3
1
2
3
3
1
3
2
3
1
1
3
2
3
3
1
3
3
1
1
2
3
1
2
2
2
1

As duas linhas de comando lem e imprimem o contedo do arquivo


exemplo_milsa.txt sem fazer alterao ao arquivo ou qualquer tipo de clculo.
> milsa$civil <- factor(milsa$civil, label=c("Solteiro", "Casado"), levels=1:2)
> milsa$instrucao <- factor(milsa$instrucao, label=c("1oGrau", "2oGrau", "Superior"),
lev=1:3)
> milsa$regiao <- factor(milsa$regiao, label=c("Capital", "Interior", "Outro"),
lev=c(2,1,3))
> milsa
ID
Civil
Instrucao
Filhos Salrio
Ano Mes Regiao
1
Solteiro
1oGrau
NA
4.00
26
3
Interior
2
Casado
1oGrau
1
4.56
32
10
Capital
3
Casado
1oGrau
2
5.25
36
5
Capital
4
Solteiro
2oGrau
NA
5.73
20
10
Outro
5
Solteiro
1oGrau
NA
6.26
40
7
Outro
6
Casado
1oGrau
0
6.66
28
0
Interior
7
Solteiro
1oGrau
NA
6.86
41
0
Interior
8
Solteiro
1oGrau
NA
7.39
43
4
Capital
9
Casado
2oGrau
1
7.59
34
10
Capital
10
Solteiro
2oGrau
NA
7.44
23
6
Outro
11
Casado
2oGrau
2
8.12
33
6
Interior
12
Solteiro
1oGrau
NA
8.46
27
11
Capital
13
Solteiro
2oGrau
NA
8.74
37
5
Outro
14
Casado
1oGrau
3
8.95
44
2
Outro
15
Casado
2oGrau
0
9.13
30
5
Interior
16
Solteiro
2oGrau
NA
9.35
38
8
Outro
17
Casado
2oGrau
1
9.77
31
7
Capital
18
Casado
1oGrau
2
9.80
39
7
Outro
19
Solteiro
Superior
NA
10.53
25
8
Interior
20
Solteiro
2oGrau
NA
10.76
37
4
Interior
21
Casado
2oGrau
1
11.06
30
9
Outro
22
Solteiro
2oGrau
NA
11.59
34
2
Capital
23
Solteiro
1oGrau
NA
12.00
41
0
Outro
24
Casado
Superior
0
12.79
26
1
Outro
25
Casado
2oGrau
2
13.23
32
5
Interior
26
Casado
2oGrau
2
13.60
35
0
Outro
27
Solteiro
1oGrau
NA
13.85
46
7
Outro
28
Casado
2oGrau
0
14.69
29
8
Interior
29
Casado
2oGrau
5
14.71
40
6
Interior
30
Casado
2oGrau
2
15.99
35
10
Capital
31
Solteiro
Superior
NA
16.22
31
5
Outro
32
Casado
2oGrau
1
16.61
36
4
Interior
33
Casado
Superior
3
17.26
43
7
Capital
34
Solteiro
Superior
NA
18.75
33
7
Capital
35
Casado
2oGrau
2
19.40
48
11
Capital
36
Casado
Superior
3
23.30
42
2
Interior
Por meio de tabulao possvel codificar respostas para informaes
qualitativas (nominal ou ordinal) transformando-as em quantitativas. As linhas de

comando acima retornam ao arquivo milsa e atribui significados aos cdigos utilizados
no armazenamento dos dados e os imprime. Em Civil trocou-se 1 e 2 por Solteiro
e Casado, respectivamente; da mesma forma em Instruo 1,2 e 3 foram
substitudos por 1oGrau, 2oGrau e Superior; por fim em Regiao, Interior,
Capital e Outro substituram, respectivamente, 1,2 e 3.

Letra b)Comandos, resultados e comentrios:

> tabela1=table(milsa$civil)
> tabela1
Solteiro
16

Casado
20

Agrupamento dos dados de Civil em uma tabela simples com o nmero de


solteiros e casados.
> tabela2=table(milsa$civil, milsa$instrucao)
> tabela2
Solteiro
Casado

1oGrau
7
5

2oGrau
6
12

Superior
3
3

Com os dados agrupados do nmero de solteiros e casados, os comandos em


questo relacionam duas informaes, neste caso Civil e Instruo.
> tabela3=tabela2/sum(tabela2)*100
> tabela3
Solteiro
Casado

1oGrau
19.444444
13.888889

2oGrau
16.666667
33.333333

Superior
8.333333
8.333333

Utilizando as informaes reorganizadas da tabela2, esses comandos calculam


e imprimem a percentagem equivalente de cada valor encontrado, levando em
considerao o total de entrevistados.
> tabela3=tabela2/as.vector(table(milsa$civil))*100
> tabela3
Solteiro
Casado

1oGrau
43.75
25.00

2oGrau
37.50
60.00

Superior
18.75
15.00

Ainda com informaes da tabela2, os comandos em questo calculam e


imprimem a porcentagem linha a linha, s que dessa vez considerou-se o total oferecido
pela tabela1.

> nl=nrow(tabela2)
> nc=ncol(tabela2)
> somcol=apply(tabela2, 2, sum)
> auxtab2=matrix(somcol, nrow=nl, ncol=nc, byrow=T)
> tabela4=tabela2/auxtab2*100
> tabela4
Solteiro
Casado

1oGrau
58.33333
41.66667

2oGrau
33.33333
66.66667

Superior
50.00000
50.00000

Tendo como tabela auxiliar a tabela 2, esses comandos calculam porcentagem


dos elementos coluna a coluna.
> tabela5=tapply(milsa$salario, milsa$instrucao, mean)
> tabela6=tapply(milsa$salario, milsa$instrucao, sd)
> tabela7=tabela6/tabela5*100
> tabela5
1oGrau
7.836667

2oGrau
11.528333

Superior
16.475000

Clculo e impresso da mdia de salrio de acordo com o grau de instruo.


> tabela6
1oGrau
2.956464

2oGrau
3.715144

Superior
4.502438

Clculo e impresso do desvio padro dos valores da tabela5.


> tabela7
1oGrau
37.72604

2oGrau
32.22620

Superior
27.32891

Clculo e impresso do coeficiente de variao do salrio de acordo com a


instruo. Embora no tenha sido usada a funo pr-determinada para desviopadro, observando a linha de comando da tabela7, pode-se concluir qual o clculo
realizado.
Como visto anteriormente (questo 3, item A), o comando tapply retoma os
valores das clulas selecionadas e aplica a cada uma delas (no-vazias) a funo prdeterminada.
Letra c) Comandos, resultados e comentrios:
> dados=read.delim(file="base_mg.txt", header=TRUE,sep="\t",quote="\"",dec=".")
> res2=dados

> res3=cbind(res2,denpop=res2[,4]/res2[,3])
> res4=aggregate(res3$denpop, by=list(RegiaoPlanejamento=dados$nomeregiao),
FUN="mean")
> res5=aggregate(res3$idh2000, by=list(RegiaoPlanejamento=dados$nomeregiao),
FUN="mean")
> nomes=as.character(res4[,1])
> res6=cbind(res4[,1],DENPOP=res4[,2],IDHM=res5[,2])
> res6
[1,]
[2,]
[3,]
[4,]
[5,]
[6,]
[7,]
[8,]
[9,]
[10,]

1
2
3
4
5
6
7
8
9
10

DENPOP
15.233441
169.229456
33.308768
17.102590
44.364799
5.269267
13.353231
50.655959
48.471937
18.141374

IDHM
0.8349677
0.8256646
0.8202857
0.7019242
0.7915986
0.8195263
0.7291348
0.7529608
0.8198258
0.8372571

Tendo como base os dados do arquivo base_mg.txt essas linhas de comando


calculam e exibem as densidades populacionais e o IDH de cada regio.
> REPLAN=factor(res6[,1],label=nomes,levels=1:10)
> res6=data.frame(REPLAN,res6[,c(2,3)])
> res6
1
2
3
4
5
6
7
8
9
10

REPLAN
Alto Parnaiba
Central
Centro Oeste de Minas
Jequitinhonha/Mucuri
Mata
Noroeste de Minas
Norte de Minas
Rio Doce
Sul de Minas
Tringulo

DENPOP
15.233441
169.229456
33.308768
17.102590
44.364799
5.269267
13.353231
50.655959
48.471937
18.141374

IDHM
0.8349677
0.8256646
0.8202857
0.7019242
0.7915986
0.8195263
0.7291348
0.7529608
0.8198258
0.8372571

Esses comandos exibem as densidades populacionais e o IDH por regio, e


atribuem nomes s mesmas.

Letra e) Comandos, resultados e comentrios:


> posrow=barplot(VADeaths,beside=T)

Cria um grfico de barras.

>barplot(VADeaths,plot=T,beside=T,ylim=c(0,100),col=c("#4
C4C4C","#888888","#AEAEAE","#CCCCCC","#E6E6E6")
)text(posrow,c(VADeaths[,1]+0.05*50,VADeaths[,2]+0.05*50,V
ADeaths[,3]+0.05*50,VADeaths[,4]+0.05*50),labels=round(VA
Deaths,digits=0),cex=0.8)
legend("topright",bty="n",rownames(VADeaths),fill=c("#4C
4C4C","#888888","#AEAEAE","#CCCCCC","#E6E6E6"))
abline(h=0)
Cria o mesmo grfico anterior.

# Fazendo um grfico de setores simples:


> torcidas=c(0.45, 0.41, 0.07, 0.05,0.02)
> names(torcidas)=c("Atltico","Cruzeiro","Amrica","Ipatinga","Outras")
> pie(torcidas) # cores padres

Cria um grfico de setores utilizando cores padronizadas para cada time.


# Formatando o grfico de setores:
> cores=gray(0:25/25)
> escol5=c(1,11,18,22,25)
> cores5=cores[escol5]
> nomes=c("Atltico","Cruzeiro","Amrica","Ipatinga","Outras")
> nomes<-paste(nomes," (",round(torcidas*100,digits=0), "%",")", sep="")
> pie(torcidas,col=cores5,cex=0.8,labels=nomes)

Cria o mesmo grfico anterior, porm com cores em escala de cinza.


Questo 05

Dados para a questo: arquivo fornecido pelo professor altura_peso.txt.

Comandos, resultados e comentrios:

> dados<-read.table(file="altura_peso.txt",header=T)
> dados
Altura
Peso
1
1.60
60.5
2
1.69
55.0
3
1.85
72.8
4
1.85
80.9
5
1.58
55.0
6
1.76
60.0
7
1.60
58.0
8
1.64
47.0
9
1.62
57.8
10
1.64
58.0
11
1.72
70.0
12
1.66
54.0
13
1.70
58.0
14
1.78
68.5
15
1.65
63.5
16
1.63
47.4
17
1.82
66.0
18
1.80
85.2
19
1.60
54.5
20
1.68
52.5
21
1.70
60.0
22
1.65
58.5
23
1.57
49.2
24
1.55
48.0
25
1.69
51.6

26
27
28
29
30

1.54
1.62
1.62
1.57
1.65

57.0
63.0
52.0
49.0
59.0

Imprime as informaes contidas no arquivo altura_peso.txt.

> plot(dados$Altura,dados$Peso)

Grfico de disperso altura x peso.


> plot(dados$Altura,dados$Peso,pch=19,col="blue")

Mesmo grfico, porm com os pontos azuis.

> plot(dados$Altura,dados$Peso,pch=22,col="blue")

Comparando com o primeiro grfico da questo, as bolinhas mudaram de cor,


foram de pretas para azuis.

Questo 06

Dados para a questo:


Durao
(dias)

Abaixo de 35 anos
Feminino Masculino

1-7
8-30
Mais de 30

36
48
30

48
42
43

Acima de 35 anos
Feminino Masculino
44
38
42

43
49
36

Comandos e resultado:

> freqs=c(36, 48, 48, 42, 30, 43, 44, 43, 38, 49, 42, 36)
> data=array(freqs, dim = c(2, 3, 2))
> dimnames(data)=list(c("F", "M"), c("1-7", "8-30", ">30"), c("<35", ">35"))
> data
, , <35
F
M

1-7
36
48

8-30
48
42

>30
30
43

, , >35
F
M

1-7
44
43

8-30
38
49

>30
42
36

Comentrio(s): Imprime duas matrizes indicando as tabelas de freqncia em


classes dos trabalhadores desempregados, divididos por sexo, e o perodo de
desemprego, uma para menores de 35 anos e uma para maiores de 35 anos.

Mudanas: comandos, resultados e comentrios:

> data[, , 1]
F
M

1-7
36
48

8-30
48
42

>30
30
43

Imprime a matriz que indica a distribuio de freqncias para menores de 35


anos.
> data[, 1, ]
F
M

<35
36
48

>35
44
43

Imprime somente a primeira coluna de cada matriz, ou seja, somente as


distribuies de freqncia para faixa de durao de desemprego de 1 a 7 dias.
> data[1, , ]
1-7
8-30
>30

<35
36
48
30

>35
44
38
42

Imprime uma matriz que indica a distribuio de freqncia para


desempregados do sexo feminino.
> data[,1,1]
F
36

M
48

Imprime uma matriz que indica somente a distribuio de freqncia para


desempregados com menos de 35 anos e com perodo de 1 a 7 dias.

> data[1, ,1]


1-7
36

8-30
48

>30
30

Imprime uma matriz que indica a distribuio de freqncia para


desempregados do sexo feminino com menos de 35 anos.
> data[1,1, ]
<35
36

>35
44

Imprime uma matriz indicando somente a distribuio de freqncia para


desempregados do sexo feminino com perodo entre 1 a 7 dias.

Perguntas:
a)- Qual a diferena entre os comandos data[, , 1], data[, 1 ,] e data[1, , ]?
b)- Qual a diferena entre os comandos data[, 1, 1], data[1, ,1] e data[1,1,]?

c)- Encontre o nmero total de pessoas em cada faixa etria.


> apply(data,3,sum)
<35
247

>35
249

O comando calcula e imprime o que foi solicitado.


d)- Encontre a proporo de homens e mulheres que ficaram desempregados por
mais de 30 dias.
> round(100*apply(data[,3,],1,sum)/apply(data,1,sum),dig=1)
F
28.7

M
34.2

O comando calcula e imprime o que foi solicitado.


e)- Encontre a probabilidade de uma pessoa sorteada ao acaso deste grupo ter
menos de 35 anos e ser do sexo masculino.
> sum(data[2,,1])/sum(data)

[1]

0.2681452

O comando calcula e imprime o que foi solicitado.

Questo 07

Dados para questo:


Peso
Sexo

Baixo

Normal

Alto

Masculino

136

92

248

Feminino

102

195

62

Comandos, resultados e comentrios:


Letra a)-

> freq=c(136, 102, 92, 195, 248, 62)


> Sexo=rep(rep(c("Homens", "Mulheres"), 3), freq)
> Peso=rep(rep(c("Baixo", "Normal", "Alto"), each = 2),freq)
> tab=data.frame(Sexo, Peso)
> with(tab, table(Sexo, Peso))

Sexo
Homens
Mulheres

Alto
248
62

Peso
Baixo Normal
136 92
102 195

Os Comandos imprimem uma tabela com a freqncia e classificao dos pesos


entre homens e mulheres num hospital.

Perguntas: sorteando-se ao acaso uma dessas pessoas, qual a probabilidade de:


Letra b)- Uma mulher ter peso alto?

> mulheres.inter.alto=with(tab, (length(Sexo[Peso == "Alto" & Sexo == "Mulheres"])))


> total=length(tab[, 1])
> mulheres.inter.alto/total
[1] 0.0742515
A probabilidade de uma mulher ter peso alto de 0.0742515 ou 7,452515%
Letra c)- A pessoa selecionada ter peso baixo?
> n.baixo=with(tab, (length(Peso[Peso == "Baixo"])))
> total=length(tab[, 1])
> n.baixo/total
[1] 0.2850299
A probabilidade de uma pessoa escolhida ao acaso ter peso baixo de
0.2850299 ou 29,50299%
Letra d)- Um homem ser selecionado ou a pessoa selecionada ter peso normal?
> Homens.uniao.normal=with(tab, (length(Sexo[Peso == "Normal" | Sexo ==
"Homens"])))
> total=length(tab[, 1])
> Homens.uniao.normal/total
[1] 0.8035928
O resultado acima[1] expressa a probabilidade de uma pessoa selecionada ao
acaso ser homem ou ter peso normal.
Letra e)- O peso ser alto dado que homem?
> Homens.inter.alto = with(tab, (length(Sexo[Peso == "Alto" & Sexo == "Homens"])))
> n.Homens = with(tab, length(Sexo[Sexo == "Homens"]))
> Homens.inter.alto/n.Homens
[1] 0.5210084

O resultado acima[1] expressa a probabilidade de uma pessoa selecionada ao


acaso ter peso alto sabendo que trata-se de um homem.

Questo 08

Dados, comandos, resultados e comentrios:

Situao 1: Um fabricante afirma que apenas 5% de todas as vlvulas que


produz tm uma durao inferior a 20 horas. Uma indstria compra semanalmente um
grande lote de vlvulas desse fabricante, mas sob a seguinte condio: ela aceita o lote
se, em 10 vlvulas escolhidas ao acaso, no mximo uma tiver durao inferior a 20
horas; caso contrrio o lote todo rejeitado.
Letra a)- Se o fabricante de fato tem razo, qual a probabilidade do lote ser
rejeitado?
> 1 - pbinom(1, size = 10, p = 0.05)
[1]
0.08613836
Se o fabricante estiver correto, a chance de um de seus lotes produzidos ser
rejeito 8.613836%.
Letra b)- Suponha agora que o fabricante esteja mentindo, isto , na verdade a
proporo de vlvulas com durao inferior a 20 horas de 10%. Qual a probabilidade
de um lote ser aceito, segundo o critrio acima?

> pbinom(1, size = 10, p = 0.1)


[1]
0.736099
Segundo o critrio anterior, se o fabricante estiver mentindo a chance de um dos
lotes ser aceito 73.6099%.
Situao 2: A mdia de chamadas telefnicas numa hora trs. Qual a
probabilidade de:
Letra a)- Receber exatamente trs chamadas numa hora?
> dpois(x=3, lambda=3*(60/60))
[1]
0.2240418
A chance de receber exatamente 3 chamadas em uma hora 22.40418%.
Letra b)- Receber quatro ou mais chamadas em 90 minutos?
> 1-sum(dpois(x=0:3,lambda=3*(90/60)))
[1]
0.657704
A chance de receber 4 ou mais chamadas em 90 minutos 65.7704%.
Letra c)- Receber alguma chamada durante 15 minutos?
> 1-dpois(x=0,lambda=3*(15/60))
[1]
0.5276334
A chance de receber alguma chamada durante 15 minutos 52.76334%.
Letra d)- Receber no mximo trs chamadas em 90 minutos?
> sum(dpois(x=0:3,lambda=3*(90/60)))
[1]
0.3422960
A chance de receber no mximo trs chamadas em 90 minutos 34.22960%.
Situao 03: Seja W uma v.a com distribuio normal padro. Calcula as
probabilidades abaixo:
Letra b)- P (W < 0,30)
>pnorm(0.30, mean = 0, sd = 1, lower.tail = T)
[1]
0.6179114
Letra d)- P (W > -2,35)
> pnorm(-2.35, mean = 0, sd = 1, lower.tail = F)
[1]
0.9906133
Letra e)- P (-1,05 < W <2,76)

> pnorm(2.76, mean = 0, sd = 1)-pnorm(-1.05, mean=0, sd=1)


[1]
0.8502509
Os comandos acima calculam e imprimem as probabilidades solicitadas de
acordo com as caractersticas da varivel W.
Situao 04: Seja T uma v.a com distribuio normal padro. Calcule os valores
de x abaixo:
Letra b)- P (T < x) = 0,755
> qnorm(0.755, mean = 0, sd = 1, lower.tail = TRUE)
[1]
0.6903088
Letra d)- P (T > x) = 0,145
> - qnorm(0.145, mean = 0, sd = 1, lower.tail = F)
[1]
-1.058122
Letra e)- P (x < T < 1,95) = 0,78
> qnorm( pnorm(1.95, mean=0, sd=1, lower.tail=T) - 0.78, mean=0, sd=1, lower.tail=T)
[1]
-0.8617522
Os comandos acima calculam e imprimem os valores de x que satisfazem as
probabilidades requisitadas.
Situao 05: Sabe-se que para adultos do sexo masculine, com boa sade, numa
certa populao, a temperatura corporal segue uma distribuio Normal com mdia 36,8
graus e desvio padro 0,15 graus.
Letra b)- Se considerarmos 1000 dessas pessoas, quantas se esperariam com
temperatura entre 36,8 e 37,2 graus?
> (pnorm(37.2, mean=36.8, sd=0.15, lower.tail = TRUE) - pnorm(36.8, mean=36.8,
sd=0.15,
+ lower.tail = TRUE))*1000
[1]
496.1696
Considerando 1000 pessoas, espera-se que 496.1696 delas estejam com
temperatura entre 36,8C e 37,2C.
Letra c)- Qual a temperatura corporal que excedida com probabilidade 20%?
> qnorm(0.20, mean=36.8, sd=0.15, lower.tail = F)
[1]
36.92624
Situao 06: Sabendo-se que a taxa de hemoglobina (g%) em um grupo de
ovinos sadios tem distribuio N(14,3), construa faixas de referncia que englobem:

Letra a)- 95% das taxas de hemoglobina:


> qnorm(1-0.05/2, mean=14, sd=3, lower.tail=T)
[1]
19.87989
> qnorm(1-0.05/2, mean=14, sd=3, lower.tail=F)
[1]
8.120108
A faixa de referncia que engloba 95% das taxas de hemoglobina [ 8.120108 ;
19.87989 ].
Letra b)- 99% das taxas de hemoglobina:
> qnorm(1-0.01/2, mean=14, sd=3, lower.tail=T)
[1]
21.72749
> qnorm(1-0.01/2, mean=14, sd=3, lower.tail=F)
[1]
6.272512
A faixa de r referncia que engloba 95% das taxas de hemoglobina [ 6.272512
; 21.72749 ].

Questo 09

Comandos e resultados:

Letra a)> becel=function(vezes)


+{
+ soma=sample(c(0,1), vezes, replace = TRUE)
+ return(sum(soma)/vezes*100)
+}
> repeticao=function(iter,amo){
+ propo=rep(0,iter)
+ for (i in 1:iter){
+ propo[i]=becel(amo)
+}
+ return(mean(propo))
+}
> repeticao(iter=100, amo=10)
[1]
49.2
> repeticao(iter=100, amo=100)

[1]

49.84

> repeticao(iter=100, amo=1000)


[1]
49.877
> repeticao(iter=100, amo=10000)
[1]
49.9959

Comentrio: Podemos concluir que, quanto mais lanamentos so realizados,


mais prximo o valor da proporo fica prximo de 0,5 ou 50%.

Explique
qual
a
diferena
repetio(iter=100,amo=100).

entre

usar

becel(vezes=100)

> becel(vezes=100)
[1]
55
> repeticao(iter=100, amo=100)
[1]
50.46
Letra b)- Estude os comandos abaixo e comente a finalidade de cada uma deles,
mostrando o que faz cada bloco.
# O comando par usado para inserir parmetros grficos. Estes parmetros
podem ser especificados atribuindo valores um a um, ou associando uma srie de
valores a uma srie de valores tabelados.
> par(mfrow=c(3,2))
> ?par
> x=0:40
> fx=dbinom(x, 40, 0.35)
> plot(x, fx, type='h')

Os comandos acima plotam um grfico de distribuio polinomial.


> Fx=pbinom(x, 40, 0.35)
> plot(x, Fx, type='S')

Os comandos acima plotam um grfico com as probabilidades de distribuio


polinomial.
> y=0:40
> fy=dpois(y, lambda = 5)
> plot(y,fy, type='h')

Os comandos acima plotam um grfico de distribuio Poisson com lambda=5.


> Fy=ppois(y, lambda = 5)
> plot(y, Fy, type='s')

Os comandos acima plotam um grfico com as probabilidades de distribuio


Poisson com lambda=5.
> w=seq(70, 130, len = 100)
> fw=dnorm(w, 100, 8)
> plot(w, fw, type = "l",xlab='valores de w', ylab='densidade de probabilidade (f(w))')

Os comandos acima plotam um grfico de densidade de probabilidades de 70 a


130 com mdia 100.
> title('Distribuico Normal\nX ~ N(100, 64)')

D ttulo para o grfico.


> Fw=pnorm(w, 100, 8)
> plot(w, Fw, type = "l")

Os comandos acima plotam um grfico com as probabilidades da distribuio


normal.
> x=rnorm(1000)
> par(mfrow=c(1,1))
> plot(function(x) dnorm(x, 100, 8), 60, 140, ylab='f(x)')

Os comandos acima plotam um grfico com curva preta possuindo mdia 100 e
desvio padro 8.
> plot(function(x) dnorm(x, 90, 8), 60, 140, add=T, col=2)

Os comandos acima adicionam ao grfico anterior uma curva vermelha de


mdia 90 e desvio padro 8.

> plot(function(x) dnorm(x, 100, 15), 60, 140, add=T, col=3)

Os comandos acima adicionam ao grfico anterior uma curva verde de mdia


100 e desvio padro 15.
> legend(120, 0.05, c("N(100,64)","N(90,64)","N(100,225)"), fill=1:3)

Os comandos acima colocam legenda identificando as curvas.

Questo 10

Ilustrao 1:

> sim<-matrix(rpois(100*20,lambda=8),nc=20)
> T<-apply(sim,1,function(x)max(x)-min(x))
> mean(T)
[1]
10.65
> sd(T)
[1]
1.887626
> sd(T)/mean(T)*100
[1]
17.72419

Mudando o tamanho da amostra para 5:

> sim2<-matrix(rpois(1000*5,lambda=8),nc=5)

> T2<-apply(sim2,1,function(x)max(x)-min(x))
> mean(T2)
[1]
6.49
> sd(T2)
[1]
2.483156
> sd(T2)/mean(T2)*100
[1]
38.26127
Aps mudarmos o tamanho da amostra observou-se que o coeficiente de
variao aumentou, visto que amostras pequenas em relao populao aumentam as
chances de errar.

Ilustrao 2:

> dados<-rnorm(100000,mean=0,sd=1)
> dp<-sd(dados)
> media<-mean(dados)
> media
[1]
-0.0004719812
> dp
[1]

0.9988525

> hist(dados,main="Distribuio de uma


Normal",xlab="observaes",ylab="frequencia")

O comando acima criou um grfico para a distribuio de uma normal,


considerando 100000 valores, mdia=0 e desvio padro=1.
> abline(v=(media-dp),col="blue",lty=3)

> abline(v=(media+dp),col="blue",lty=3)

Os comandos acima adicionaram uma linha azul pontilhada aos valores


correspondentes a media-dp e media+dp.

> abline(v=(media-2*dp),col="red",lty=1)
> abline(v=(media+2*dp),col="red",lty=1)

Os comandos acima adicionaram uma


correspondentes a media-2*dp e media+2*dp.

linha

vermelha

nos

pontos

> abline(v=(media-3*dp),col="darkgreen",lty=4)
> abline(v=(media+3*dp),col="darkgreen",lty=4)

Os comandos acima adicionaram uma linha tracejada nos pontos


correspondentes a media-3*dp e media+3*dp.
> resumo=list(Media=media,DP=dp)
> resumo
$Media
[1]
-0.0004719812
$DP
[1]
0.9988525
Questo 11
# tamamo: uma funco para calcular o tamanho amostral para estimar uma mdia
# N: o tamanho da populao
# Var: a varincia que se tem (populacional ou estimada)
# B: a margem de erro que ser utilizada no clculo amostral
# Alfa: o nvel de significncia que ser adotado
# Ponto da Normal que deixa 100(1-alfa)% de probabilidade no centro e 100(alfa)% nas
caudas
alfa<-qnorm(1-Alfa/2)
# Tamanho amostral para estimar uma mdia, com margem de erro e grau de confiana
fixados
n<-(N*Var)/((N-1)*(B/alfa)^2+Var)
Letra a)- Determine o nmero de pessoas necessrio para estimar a renda
mdia dos residentes dessa cidade para que a renda mdia amostral esteja a no mximo
R$85,00 da verdadeira renda mdia deste universo com probabilidade de 94%. Segundo

levantamentos anteriores o desvio padro da renda destas pessoas aproximadamente


R$500,00.

Comandos e resultados:

> tamamo(N=8000,Var=500^2,B=85,Alfa=0.06)
[1]
0.1245811
Letra b)- E se a mdia amostral estivesse a no mximo R$90,00 da verdadeira
renda mdia deste universo com probabilidade de 94%, qual seria o tamanho da
amostra?

Comandos e resultados:

> tamamo(N=8000,Var=500^2,B=90,Alfa=0.06)
[1]
0.1111235
Letra c)- Repita o item A supondo um erro tipo I de 3%.

Comandos e resultados:

> tamamo(N=8000,Var=500^2,B=85,Alfa=0.03)
[1]
0.03114564
Letra d- Repita o item B supondo um erro do tipo I de 3%.

Comandos e resultados:

> tamamo(N=8000,Var=500^2,B=90,Alfa=0.03)
[1]
0.02778115
Questo 12

Dados para a questo:

Quad. 1

114,7

144,7

119,1

113,7

108,9

96,7

87,6

132,4

Quad. 3

153,1

192,5

145,5

168,8

141,5

141,2

189,6

178,4

Comandos, resultados:

> q1<-c(114.7,144.7,119.1,113.7,108.9,96.7,87.6,132.4)
> q3<-c(153.1,192.5,145.5,168.8,141.5,142.2,189.6,178.4,208.6)
Letra a)> var.test(q1,q3,conf=0.9)

208,6

F test to compare two variances


data: q1 and q3
F = 0.541, num df = 7, denom df = 8, p-value = 0.4331
alternative hypothesis: true ratio of variances is not equal to 1
90 percent confidence interval:
0.1545622
2.0157646
sample estimates:
ratio of variances
0.5410395
Letra b)> t.test(q3,q1,var.equal=T,conf=0.9,alt="greater")
Two Sample t-test
data: q3 and q1
t = 5.0764, df = 15, p-value = 6.831e-05
alternative hypothesis: true difference in means is greater than 0
90 percent confidence interval:
39.87632
Inf
sample estimates:
mean of x
mean of y
168.9111
114.7250
Warning messages:
1: In if (!var.equal) "Welch" :
a condio tem comprimento > 1 e somente o primeiro elemento ser usado
2: In if (var.equal) { :
a condio tem comprimento > 1 e somente o primeiro elemento ser usado
Letra c)-

Questo 13

Comandos, resultados e comentrios:

> bdsim=matrix(rbinom(2500000,1,.7),1000,2500)
> par(mfrow=c(3,2))
> for(i in c(5,10,50,100,500,1000))
+{
+ medias=apply(bdsim[,1:i],1,mean)
+ aa=round(mean(medias),digits=4)
+ bb=round(sd(medias),digits=4)
+ hist(medias,main=paste("n=",i),xlab='medias',ylab='freq',xlim=c(0,1),ylim=c(0,500))
+ text(0.1, 400, expression(hat(mu[bar(x)])))
+ text(0.3, 400, paste("= ", aa))
+ text(0.1, 280, expression(hat(sigma[bar(x)])))
+ text(0.3, 280, paste("= ", bb))
+}

Os comandos acima calcularam, criam e imprimiram uma srie de grficos


para distribuio binomial, cada um deles com um tamanho de amostra diferente.
Observamos que quanto maior forem as amostras aleatrias, a mdia se aproxima de 1
e o desvio padro tende a 0, ou seja, a distribuio se aproxima de uma distribuio
normal padro.
Questo 14

Comandos e resultados:

> m=50;n=20;p=.5
> phat=rbinom(m,n,p)/n
> SE=sqrt(phat*(1-phat)/n)
> alpha=0.1
> zalp=qnorm(1-alpha/2)
> inco=rbind(phat - zalp*SE, phat + zalp*SE)
> tofora = ifelse((inco[1,] > p) | (inco[2,]<p),"red", "black")
> matplot(inco, rbind(1:m,1:m),type="l",lty=1,col=tofora, xlim=c(0,1))

Cria um grfico

> abline(v=p,col='blue',lwd=3)

Adiciona ao grfico uma linha azul que representa


> prop.table(table(tofora))
tofora
black red
0.9
0.1

Alterando o alpha para 0.05:

> m=50;n=20;p=.5
> phat=rbinom(m,n,p)/n
> SE=sqrt(phat*(1-phat)/n)
> alpha=0.05
> zalp=qnorm(1-alpha/2)
> inco=rbind(phat - zalp*SE, phat + zalp*SE)
> tofora = ifelse((inco[1,] > p) | (inco[2,]<p),"red", "black")
> matplot(inco, rbind(1:m,1:m),type="l",lty=1,col=tofora, xlim=c(0,1))
> abline(v=p,col='blue',lwd=3)

> prop.table(table(tofora))
tofora
black red
0.94 0.06

Comentrio(s): aps mudarmos o alpha para 0.05, foi possvel observar que os
intervalos que no contem p=0,5, tem proporo 0,8.

Questo 15

Entrando com os dados:

> massa<-c(25,50,75,100,125,150,175,200,225,250)
> colheita<-c(84,80,90,154,148,169,206,244,212,248)

Fazendo o grfico de disperso entre as duas variveis:

Calculando a correlao linear existente entre as duas variveis:

> cor.pearson=cor.test(massa,colheita, method = c("pearson"), conf.level = 0.95)


> cor.pearson
Pearson's product-moment correlation
data: massa and colheita
t = 9.6975, df = 8, p-value = 1.067e-05
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.8352087
0.9907664
sample estimates:
cor
0.9600003
Ajustando um modelo de regresso linear simples:
> modfert=lm(colheita~massa)
> resultados=summary(modfert)
> resultados
Call:
lm(formula = colheita ~ massa)
Residuals:
Min
-22.79

1Q
-11.07

Median
-5.00

3Q
Max
12.00 29.79

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 51.93333 12.97904 4.001 0.00394 **
massa
0.81139 0.08367 9.697 1.07e-05 ***
---

Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1


Residual standard error: 19 on 8 degrees of freedom
Multiple R-squared: 0.9216, Adjusted R-squared: 0.9118
F-statistic: 94.04 on 1 and 8 DF, p-value: 1.067e-05
As estimativas para o intercepto e para a inclinao so 51,933 e 0,81139,
respectivamente. A regresso tem a frmula: colheita = 51,933+0,81139.(massa)

Colocando a reta ajustada em cima do diagrama de disperso:

> plot(massa,colheita,pch=19,col="orange",main="Disperso dos


dados",ylim=c(0,300),xlab="Massa de fertilizante",ylab="Colheita de grama")

> abline(modfert)

Extraindo os coeficientes do modelo ajustado:

> coefs=coefficients(modfert)
> coefs
(Intercept)
massa
51.933333
0.811394

Calculando os intervalos de confiana para os parmetros:

> ic.coefs=confint(modfert,level=0.95)
> ic.coefs
2.5 %
97.5 %
(Intercept)
22.0036246 81.863042
massa
0.6184496
1.004338

Plotando o grfico com a reta ajustada e o intervalo de confiana para a


mesma:

> plot(massa,colheita,pch=19,col= "orange",main="Disperso dos


dados",ylim=c(0,300),xlab="Massa de fertilizante",ylab="Colheita de grama")

> abline(coefs,col="green")

> abline(ic.coefs[,1],col="red",lty=2)

> abline(ic.coefs[,2],col="red",lty=2)

Uma previso hipottica: para um fertilizante com 115 de massa, o valor mdio
esperado para a colheita(em gramas de:
> colest=coefs[1]+coefs[2]*115
> colest
(Intercept)
145.2436
o O intervalo de confiana para esta estimativa :
> ic.colest.inf=ic.coefs[1,1]+ic.coefs[2,1]*115
> ic.colest.sup=ic.coefs[1,2]+ic.coefs[2,2]*115
> ic.colest.inf
[1]
93.12532
> ic.colest.sup
[1]
197.3619

You might also like