Você está na página 1de 45

Questo 02 Dados fornecidos: Q. 1 Q. 2 Q.

. 3 114,7 144,7 119,1 154,2 145,5 113,7 154,7 168,8 108,9 125,9 141,5 96,7 119,5 141,2 87,6 155,7 189,6 132,4 213,9 178,4 156,2 208,6 159,0

144,7 173,4 153,1 192,5

Questo 2.A: Comandos: > 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 a partir dos comandos do R:

Interpretao: Dos 3 quadrimestres observados o 3 deles foi o que mostrou maior volume de vendas (maior mdia) e uma maior variao, o 1 teve o menor nmero de vendas e o 2 teve menor variao.

Questo 2.B: Comandos: > 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") Os comandos acima mean() e sd() calculam mdia e desvio padro, respectivamente. Resultados encontrados: > q1.m Mdia 114.72500 > q2.m Mdia 155.72000 > q3.m Mdia 168.80000 Desvio padro 24.91726 CV 14.76141 Desvio padro 25.89379 CV 16.62843 Desvio padro 18.22751 CV 15.88800

Os comandos q1.m a q3.m imprimem os resultados associados. Interpretao e comentrio: De acordo com as medidas obtidas acima, percebeu-se que o primeiro quadrimestre teve menor mdia, o segundo quadrimestre apresentou maior disperso (maior coeficiente de variabilidade) e o terceiro quadrimestre apresentou maior mdia e menor disperso.

Questo 03 Questo 3.A: Matriz fornecida:

1 3 5 7 Resoluo:

2 4 6 8

10 20 30 40

> 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 O comando acima l e fornece na tela a matriz. > apply(dadosmat,1,mean) [1] 4.333333 9.000000 18.333333

13.666667

Este comando calcula a mdia de cada uma das linha e as imprimi, na ordem: primeira linha, segunda linha, terceira linha, quarta linha. > apply(dadosmat,2,mean) [1] 4 5 25 Da mesma forma que o comando anterior, este calcula a mdia de cada coluna, 1, 2, 3, respectivamente. > apply(dadosmat,1,sd) [1] 4.932883 9.539392 18.770544

14.153916

A alterao de mean para sd no comando faz com que este calcule o desvio padro de cada uma das 4 linhas. > apply(dadosmat,2,sd) [1] 2.581989 2.581989 12.909944 Da mesma forma anterior, mas agora com o clculo do desvio padro das coluna da matriz

Questo 3.B: Comandos e resultados: > sample(x=1:5, size=4, replace = FALSE) [1] 4 2 3 5 > sample(x=1:60, size=6, replace = FALSE) [1] 58 1 28 38 26 41 O primeiro comando sorteia 4 nmeros aleatoriamente sem reposio entre 1 e 5, nesta caso os nmeros sorteados aleatoriamente foram (4; 2; 3; 5). O segundo comando sorteia 6 nmeros aleatoriamente sem reposio entre 1 e 60, ou seja, os nmeros obtidos foram (58; 1; 28; 38; 26; 41) Dados fornecidos: Caso ( A ): >choose(60,6) [1] 50063860 Caso ( B ): > choose(6,6)*2 [1] 2 > choose(7,6)*2 [1] 14 > choose(8,6)*2 [1] 56 > choose(9,6)*2 [1] 168 > choose(10,6)*2 [1] 420

> choose(11,6)*2 [1] 924

> choose(12,6)*2 [1] 1848 > choose(13,6)*2 [1] 3432

> choose(14,6)*2 [1] 6006 > choose(15,6)*2 [1] 10010

O caso A a quantidade de combinaes possveis quando tem-se 60 valores e escolhe-se, de forma aleatria, 6 deles. J o caso B o nmero de combinaes possveis entre valores de 6 a 15 elementos tomados 6 a 6 e, ento, multiplicados por 2, o preo de um jogo da megasena.

Questo 04 Dados para a questo: arquivo fornecido pelo professor exemplo_milsa.txt. Questo 4.A: Imprimindo a tabela: > 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

> 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 Comando factor: Utilizando o comando factor, o R volta ao arquivo e atribui, segundo especificado no comando, uma etiqueta aos cdigos utilizados na tabela: na coluna Civil substituiu-se 1 por Solteiro e 2 por Casado, da mesma forma em Instruo 1, 2 e 3 foram substitudos por 1oGrau, 2oGrau e Superior, e em Regio trocou-se Interior, Capital e Outro 1,2 e 3, respectivamente.

Questo 4.B: Dados: > tabela1=table(milsa$civil) > tabela1 Solteiro 16 Casado 20

Agrupamento dos dados da coluna Civilem total de solteiros e casados em uma tabela simples. > tabela2=table(milsa$civil, milsa$instrucao) > tabela2 1oGrau 7 5 2oGrau 6 12 Superior 3 3

Solteiro Casado

Tabela cruzando dois dados distintos, neste caso Civil e Instruo, relacionando o nmero de casados ou solteiros com determinado grau de instruo. > tabela3=tabela2/sum(tabela2)*100 > tabela3 1oGrau 19.444444 13.888889 2oGrau 16.666667 33.333333 Superior 8.333333 8.333333

Solteiro Casado

Fazendo uso das informaes obtidas atravs da tabela2, a tabela3 calcula e imprime a percentagem equivalente de cada valor encontrado, em relao ao nmero total de entrevistados. > tabela3b=tabela2/as.vector(table(milsa$civil))*100 > tabela3b 1oGrau 43.75 25.00 2oGrau 37.50 60.00 Superior 18.75 15.00

Solteiro Casado

Ainda utilizando as informaes da tabela2, a tabela3b calcula e imprime a porcentagem linha a linha, mas dessa vez relacionada ao total de casados ou solteiros.

> 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 1oGrau 58.33333 41.66667 2oGrau 33.33333 66.66667 Superior 50.00000 50.00000

Solteiro Casado

Tendo como base a tabela 2, esses comandos fornecem a porcentagem dos dados coluna a coluna, ou seja, relacionado ao total de cada nvel de instruo. > tabela5=tapply(milsa$salario, milsa$instrucao, mean) > tabela5 1oGrau 7.836667 2oGrau 11.528333 Superior 16.475000

A tabela5 calcula e fornece a mdia salarial de acordo com o grau de instruo. > tabela6=tapply(milsa$salario, milsa$instrucao, sd) > tabela6 1oGrau 2.956464 2oGrau 3.715144 Superior 4.502438

A tabela 6 calcula e fornece o desvio padro dos valores obtidos na tabela5. > tabela7=tabela6/tabela5*100 > tabela7 1oGrau 37.72604 2oGrau 32.22620 Superior 27.32891

J neste caso a tabela7 calcula e imprimi o coeficiente de variao do salrio de acordo com a instruo. Percebe-se tambm que o clculo no foi realizado a partir da funo j presente no R pra tal clculo, e sim a frmula conhecida na teoria para clculo de cv: mdia por desvio padro vezes 100, realiz-lo desta forma no foi trabalhoso porque a mdia e o dp j estavam calculados. Diferena entre os comandos apply e tapply: O comando apply aplica uma funo a um determinado vetor, enquanto o comando tapply gera uma tabela que relaciona o clculo da funo escolhida com uma outra varivel.

Questo 4.C: Dados: > 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 Os comandos acima iro ler e fornecer a tabela com cdigos, densidade e idh. 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

[1,] [2,] [3,] [4,] [5,] [6,] [7,] [8,] [9,] [10,]

1 2 3 4 5 6 7 8 9 10

> REPLAN=factor(res6[,1],label=nomes,levels=1:10) > res6=data.frame(REPLAN,res6[,c(2,3)]) > res6 Os comandos acima iro reapresentar os dados de densidade e idh.Tambm, utilizando factor, mudar os cdigos de 1 a 10 para uma etiqueta relacionada a regio. 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

1 2 3 4 5 6 7 8 9 10

Aggregate: Separa as vidades em regies e calculou o idh mdio de cada regio. Res: uma funo determinada Res2: uma funo que armazena todos os dados, nome das cidades, populao, rea, etc. Res3: uma funo que armazena os dados e ainda calcula a densidade populacional. Res4: funo que fornece a densidade populacional por regio Res5: funo que fornece o idh mdio por regio Res6: esta funo fornece o idh mdio e densidade populacional por regio Questo 4.D: Dados: > posrow=barplot(VADeaths,beside=T)

Cut: Separa em classe os valores definidos e relaciona os dados a estas classes Include.lowest: indica que o menor valor da classe deve ser includo

Questo 4.E: > posrow=barplot(VADeaths,beside=T) > barplot(VADeaths, plot = T,beside=T,ylim=c(0,100),col = c("#4C4C4C", "#888888", "#AEAEAE", "#CCCCCC", "#E6E6E6")) text (posrow, c(VADeaths[,1]+0.05*50,VADeaths[,2]+0.05*50,VADeaths[,3]+0.05*50,VADeaths[,4 ]+0.05*50), labels = round(VADeaths,digits=0),cex=0.8) > legend("topright",bty="n",rownames(VADeaths),fill=c("#4C4C4C", "#888888", "#AEAEAE", "#CCCCCC", "#E6E6E6")) > abline(h=0) Esta seqncia de comandos criar um grfico de barras verticais com os intervalos:

# Criando 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

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

# Configurando 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 gerado anteriormente, mas com cores em escala de cinza.

Questo 4.F: Dados fornecidos para a questo: arquivo fornecido pelo professor altura_peso.txt. > dados<-read.table(file="altura_peso.txt",header=T) > dados Este comando l e fornece na tela os dados da tabela altura_peso.txt, em file define-se o caminho do arquivo e em header define-se a leitura ou no do cabealho. Altura 1.60 1.69 1.85 1.85 1.58 1.76 1.60 1.64 1.62 1.64 1.72 1.66 1.70 1.78 1.65 1.63 1.82 1.80 1.60 1.68 1.70 1.65 1.57 1.55 1.69 1.54 1.62 1.62 1.57 1.65 Peso 60.5 55.0 72.8 80.9 55.0 60.0 58.0 47.0 57.8 58.0 70.0 54.0 58.0 68.5 63.5 47.4 66.0 85.2 54.5 52.5 60.0 58.5 49.2 48.0 51.6 57.0 63.0 52.0 49.0 59.0

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

> plot(dados$Altura,dados$Peso) Grfico de disperso altura x peso.

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

Mesmo grfico gerado, no entanto com os pontos em azul: em col definese a cor azul ao invs de preta e em pch define-se o ponto solido ou no.

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

Em comparao com o primeiro grfico gerado na questo, os pontos deixaram de ser slidos e passaram de redondo para quadrado, o responsvel por tal mudana o nmero 22 no comando pch.

Questo 05 Dados: Durao (dias) 1-7 8-30 Mais de 30 Abaixo de 35 anos Feminino Masculino 36 48 30 48 42 43 Acima de 35 anos Feminino Masculino 44 38 42 43 49 36

> 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 (Abaixo dos 35 anos) 1-7 36 48 8-30 48 42 >30 30 43

F M

, , >35 (Acima dos 35 anos) 1-7 44 43 8-30 38 49 >30 42 36

F M

Os comandos acima criam uma matriz com a tabela de frequncia de acordo com as classes estipuladas. Questo 5.A: > data[, , 1] 1-7 36 48 8-30 48 42 >30 30 43

F M

O comando data[,,1] fornece na tela uma matriz como a anterior, tabela de frequncia para desempregados mais novo que 35 anos.

> data[, 1, ] <35 36 48 >35 44 43

F M

Este comando relaciona os desempregados a 1-7 dias ao seu sexo e a idade. > data[1, , ] <35 36 48 30 >35 44 38 42

1-7 8-30 >30

Neste caso o comando relaciona o sexo feminino ao nmero de dias desempregados e a idade. Questo 5.B: > data[,1,1] F 36 M 48

Neste outro caso o comando relaciona os menores de 35 anos a durao de 1 a 7 dias de desemprego.

> data[1, ,1] 1-7 36 8-30 48 >30 30

O comando fornece uma matriz cruzando a informao sexo feminino com e menor de 35 anos com o nmero de dias desempregado. > data[1,1, ] <35 36 >35 44

Este comando nos fornece uma matriz relacionando sexo feminino com durao de 1 a 7 dias de desemprego.

Questo 5.C: > apply(data,3,sum) <35 247 >35 249

O comando utilizado agrupa o nmero total de desempregados em cada uma das duas faixas etrias (abaixo de 35 anos e acima de 35 anos). Questo 5.D: > round(100*apply(data[,3,],1,sum)/apply(data,1,sum),dig=1) F 28.7 M 34.2

O comando round divide o nmero de desempregados a mais de 30 dias pelo total de desmpregados, relacionado ao sexo, uma proporo para mulheres e uma para homens. Questo 5.E > sum(data[2,,1])/sum(data) [1] 0.2681452

O comando divide o nmero de desempregados homens menores de 35 anos pelo total de entrevistados.

Questo 06 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. Item A: > 1 - pbinom(1, size = 10, p = 0.05) [1] 0.08613836 A chance do fabricante ter seus lotes de produtos rejeitados, considerando que o fabricante est dizendo a verdade, 8,6113836%. O comando pbinom refere-se ao modelo Binomial. Item B: > pbinom(1, size = 10, p = 0.1) [1] 0.736099 A chance do lote do fabricante ser aceito se ele estiver mentindo 73,6099%. Situao 2: A mdia de chamadas telefnicas numa hora trs. Qual a probabilidade de: Item A: > dpois(x=3, lambda=3*(60/60)) [1] 0.2240418 A chance de receber exatamente 3 chamadas em uma hora 22.40418%. O comando dpois refere-se ao modelo de Poisson. Item 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%. O comando sum significa soma e o termo 0:3 um intervalo de 0 a 3.

Item 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%. Neste caso a probabilidade 1 a chance de no receber chamadas no intevalo de tempo estipulado. Item 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%. Neste caso a probabilidade calculada a soma das probabilidades de 0 chamadas a 3 chamadas. Situao 03: Seja W uma v.a com distribuio normal padro. Calcula as probabilidades abaixo: Item B: P (W < 0,30) >pnorm(0.30, mean = 0, sd = 1, lower.tail = T) [1] 0.6179114 A probabilidade de W<0,30 61.79114%. O comando mean refere-se a mdia, sd ao desvio padro e lower.tail refere-se a probabilidade estar para baixo ou no na tabela Z. Item D: P (W > -2,35) > pnorm(-2.35, mean = 0, sd = 1, lower.tail = F) [1] 0.9906133 Item 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: Item B: P (T < x) = 0,755 > qnorm(0.755, mean = 0, sd = 1, lower.tail = TRUE) [1] 0.6903088 Neste caso o comando qnorm requisita probabilidade associada ao nmero X que se quer encontrar, uma funo contrria a pnorm. Item D: P (T > x) = 0,145 > - qnorm(0.145, mean = 0, sd = 1, lower.tail = F) [1] -1.058122 Item 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 Este item funciona da mesma forma dos anteriores, porm a probabilidade est entre dois valores de Z. Situao 05: Sabe-se que para adultos do sexo masculino, com boa sade, numa certa populao, a temperatura corporal segue uma distribuio Normal com mdia 36,8 graus e desvio padro 0,15 graus. Item 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 Para 1000 pessoas, espera-se que 496.1696 delas estejam com temperatura entre 36,8C e 37,2C. Este valor encontrado multiplicando-se a probabilidade pelo nmero de pessoas. Item 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: Item 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 Neste caso o comando o mesmo utilizado anteriormente, o qnorm, se so 95% das taxas sobram 5%, estes 5% devem ser dividos, ou seja, 2.5% para baixo e 2.5% para cima. Para dizer isto ao programa usa-se e termo lower.tail um TRUE para 2.5% para e baixo e um FALSE para 2.5% para cima. A faixa de referncia que engloba 95% das taxas de hemoglobina [ 8.120108 ; 19.87989 ]. Item 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 07: Dados: Questo 7.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. > becel(vezes=100) [1] 55 > repeticao(iter=100, amo=100) [1] 50.46 Becel(vezes=100) significa executar 100 lanamentos da moeda e fornece a proporo de caras, j repetio(iter=100, amo=100) 100 vezes becel(vezes=100), ou seja, ele executa 100 lanamentos em becel e ainda repete este becel 100 vezes. O termo soma apenas o nome da funo determinada, neste caso para a amostra, a funo sample gera a amostra dos resultados possveis do lanamento.

Questo 7.B: Estude os comandos abaixo e comente a finalidade de cada uma deles, mostrando o que faz cada bloco. > par(mfrow=c(3,2)) > ?par > x=0:40 > fx=dbinom(x, 40, 0.35) > plot(x, fx, type='h') O comando par configura parmetros grficos, que podem ser definidos valor a valor ou ento por uma sequncia de valores. As linhas de comando acima configuram e plotam o grfico de distribuio binomial abaixo:

> Fx=pbinom(x, 40, 0.35) > plot(x, Fx, type='S') Fx=pbinom configura o grfico para uma distribuio de probabilidade binomial de x, ou seja, a soma das probabilidades e plot o fornece na tela:

> y=0:40 > fy=dpois(y, lambda = 5) > plot(y,fy, type='h') Esta sequncia gera um grfico de distribuio pelo modelo de Poisson com y de 0 a 40 e o plota:

Fy=ppois(y, lambda = 5) > plot(y, Fy, type='s') O comando acima funciona da mesma anterior, no entanto o grfico a distribuio da probabilidade, soma das probabilidas (F(x)) de Poisson.

> 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))') Esta sequncia de comandos define em w uma sequncia (seq) pelo mtodo padro, com incio em 70, trmino em 130 com 100 nmeros neste intervalo. fw define uma distribuio normal (dnorm) de w, com mdia=100 e dp=8 e plot gera este grfico, alternando as etiquetas de y e x.

>

title('Distribuico Normal\nX ~ N(100, 64)') Apenas da ttulo ao grfico

> Fw=pnorm(w, 100, 8) > plot(w, Fw, type = "l") Neste caso as linhas de comando geraram um grfico com a F(x), ou seja, soma de probabilidades de w, sequncia criada anteriormente.

> x=rnorm(1000) > par(mfrow=c(1,1)) > plot(function(x) dnorm(x, 100, 8), 60, 140, ylab='f(x)') > plot(function(x) dnorm(x, 90, 8), 60, 140, add=T, col=2)

Os comandos acima executam a mesma funo, no entanto o segundo plot gera um novo grfico sobreposto (add=T) de mdia 90 ao invs de 100 na cor vermelha (col=2).

> plot(function(x) dnorm(x, 100, 15), 60, 140, add=T, col=3) Neste ltimo comando o termo add=T adiciona mais uma curva ao grfico de cor verde col=3 com mdia 100 e desvio padro 15.

> legend(120, 0.05, c("N(100,64)","N(90,64)","N(100,225)"), fill=1:3) Este comando apenas adiciona uma legenda associada as curvas utilizadas na montagem do grfico.

Questo 08 Caso 1: > sim<-matrix(rpois(1000*20,lambda=8),nc=20) > T<-apply(sim,1,function(x)max(x)-min(x)) Amostra = 20. > mean(T) [1] 10.465 > sd(T) [1] 2.078243 > sd(T)/mean(T)*100 [1] 19.85899 Alterando o tamanho da amostra para 5: Amostra = 5. > sim2<-matrix(rpois(1000*5,lambda=8),nc=5) > T2<-apply(sim2,1,function(x)max(x)-min(x)) > mean(T2) [1] 6.464 > sd(T2) [1] 2.490162 > sd(T2)/mean(T2)*100 [1] 38.52354 A nova amostra de 5 proporcionou um aumento no coeficiente de variabilidade em relao as medidas a partir da antiga amostra de 20.

Caso 2: Neste caso o comando gera uma simulao normal com 100 mnil valores e, obviamente, mdia=0 e dp=1. O comando tambm cria nnovos nomes para as funes mean e sd, sendo estes mdia e desvio padro, respectivamente. > 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. > abline(v=(media-3*dp),col="darkgreen",lty=4) > abline(v=(media+3*dp),col="darkgreen",lty=4)

linha

vermelha

nos

pontos

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) Item 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 Item 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 Item 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

Item 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: Q. 1 Q. 3 114,7 153,1 144,7 192,5 119,1 145,5 113,7 168,8 108,9 141,5 96,7 141,2 87,6 189,6 132,4 178,4 208,6

Comandos e resultados obtidos: > 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) Item A: > var.test(q1,q3,conf=0.9) 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 Item 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 Item 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 obtidos: > 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

Comentrios: 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:

Clculo da 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 Ajuste de 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 a interceptao e para a inclinao so 51,933 e 0,81139, respectivamente. A regresso tem a frmula: colheita = 51,933+0,81139.(massa) Ajustando o 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)

Obtendo os coeficientes do modelo ajustado: > coefs=coefficients(modfert) > coefs (Intercept) massa 51.933333 0.811394 Realizando o clculo dos intervalos de confiana para os parmetros: > ic.coefs=confint(modfert,level=0.95) > ic.coefs

(Intercept) massa

2.5 % 22.0036246 0.6184496

97.5 % 81.863042 1.004338

Construinndo o grfico com a reta ajustada e com intervalo de confiana: > 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)

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