Você está na página 1de 52

Introduo ao R e ao RStudio

O objetivo deste laboratrio introduzir ao R e ao RStudio, os programas que voc usar ao longo do
curso tanto para aprender os conceitos estatsticos discutidos no livro quanto para analisar dados reais e
chegar a concluses informadas. Para j distinguir qual qual: R o nome da linguagem de programao
e RStudio uma interface grfica conveniente para utilizar o R.
medida que os laboratrio avanarem, voc encorajado a explorar alm do que os laboratrios propem; a vontade de experimentar o far um programador muito melhor. Antes de chegarmos a este
estgio, contudo, voc precisa desenvolver alguma fluncia bsica em R. Hoje ns comearemos com os
blocos fundamentais do R e do RStudio: a interface, importao de dados, e comandos bsicos.

O painel na parte superior-direita contm seu espao de trabalho e tambm um histrico dos comandos
que voc utilizou anteriormente. Quaisquer grficos que voc gerar aparecer no painel no canto inferior
direito.
O painel esquerda onde a ao acontece. Ele chamado de console. Toda vez que voc iniciar o
RStudio, ele ter o mesmo texto no topo do console dizendo qual verso do R voc est rodando. Abaixo
desta informao est o comando de linha. Como o nome sugere, ele interpreta qualquer entrada como
um comando a ser executado. Inicialmente, a interao com o R feita principalmente pela digitao de
comandos e a interpretao dos resultados. Esses comandos e sua sintaxe evoluram ao longo de dcadas
(literalmente) e agora proporcionam o que muitos usurios acreditam ser um forma bastante natural de
acessar dados e organizar, descrever e invocar computaes estatsticas.
Para iniciar, entre o seguinte comando no comando de linha do R (i.e. logo depois do > no comando de
linha). Voc pode digitar o comando manualmente ou copiar e colar deste documento.

source("http://www.openintro.org/stat/data/arbuthnot.R")
Este comando instrui o R a acessar o website da OpenIntro e buscar alguns dados: a contagem de batismos
de meninos e meninas coletada por Arbuthnot . Voc deve ver que a rea do espao de trabalho no canto
superior direito da janela do RStudio agora lista um conjunto de dados chamado arbuthnot que tem 82
observaes de trs variveis. medida que voc interage com o R, voc criar uma srie de objetos. s
vezes voc os carregar como ns fizemos aqui, e s vezes voc os criar por conta prpria como o produto
de uma computao ou alguma anlise que voc realizou. Preste ateno que, por voc estar acessando os
Este um produto da OpenIntro que distribudo sob uma Licena Creative Commons Atribuio Compartilhamento pela
Mesma Licena 3.0 (http://creativecommons.org/licenses/by-sa/3.0). Este laboratrio foi adaptado para a OpenIntro por Andrew Bray
e Mine etinkaya-Rundel de um laboratrio escrito por Mark Hansen do departamento de Estatstica da UCLA. Traduo para o
portugus por Erikson Kaszubowski.

dados a partir da internet, esse comando (e todas as tarefas) funcionar num laboratrio de informtica,
na biblioteca, ou na sua casa; em qualquer lugar que voc tenha acesso internet.

Os Dados: Registro de Batismos do Dr. Arbuthnot


O conjunto de dados Arbuthnot se refere ao Dr. John Arbuthnot, um mdico, escritor e matemtico do
sculo 18. Ele se interessou pela razo de meninos e meninas recm-nascidos, e para isso ele coletou os
registros de batismo de crianas nascidas em Londres todos os anos entre 1629 e 1710. Ns podemos dar
uma olhada nos dados digitando seu nome no comando de linha.

arbuthnot
Voc deve ver quatro colunas de nmeros, com cada linha representando um ano diferente: a primeira
entrada em cada linha simplesmente o nmero da linha (um ndice que podemos usar para acessar os
dados de anos individuais, se quisermos), a segunda o ano, e a terceira e a quarta so os nmeros de
meninos e meninas batizados naquele ano, respectivamente. Use a barra de rolagem direita da janela do
console para examinar o conjunto de dados completo.
Preste ateno que os nmeros das linhas na primeira coluna no fazem parte dos dados de Arbuthnot. O
R os adiciona como parte das impresses em tela para ajud-lo a fazer comparaes visuais. Pense neles
como um ndice que costuma ficar no lado esquerdo de uma planilha. A comparao com uma planilha
geralmente ser til, de fato. O R armazenou os dados de Arbuthnot em um tipo de planilha ou tabela
chamada de data frame ou banco de dados.
Voc pode ver as dimenses deste banco de dados digitando:

dim(arbuthnot)
Este comando deve dar como resposta [1] 82 3, indicando que h 82 linhas e 3 colunas (ns j voltaremos
ao que o [1] quer dizer), da mesma forma como est especificado ao lado do objeto em seu espao de
trabalho. Voc pode ver os nomes das colunas (ou variveis) digitando:

names(arbuthnot)
Voc deve ver que o banco de dados contm as colunas year (ano), boys (meninos), e girls (meninas). A
essa altura, voc deve ter notado que muitos dos comandos no R se parecem muito com funes matemticas; ou seja, invocar comandos do R significa passar a uma funo um certo nmero de argumentos. Os
comandos dim e names, por exemplo, precisaram de um nico argumento cada um: o nome do banco de
dados.
Uma vantagem do RStudio que ele vem com um visualizador de dados embutido. Clique no nome
arbuthnot no canto superior direito da janela que lista os objetos em seu espao de trabalho. Isso far com
que uma visualizao alternativa das contagens de Arbuthnot aparea na janela superior esquerda. Voc
pode fechar o visualizador de dados clicando no x no canto superior esquerdo.

Explorando
Vamos comear a examinar os dados um pouco mais de perto. Ns podemos acessar separadamente os
dados de uma nica coluna da base de dados usando um comando como

arbuthnot$boys
Este comando mostrar somente o nmero de meninos batizados em cada ano.
Exerccio 1 Qual comando voc utilizaria para extrair somente a contagem de meninas batizadas? Experimente!
Preste ateno que a maneira como o R imprimiu esses dados diferente. Quando ns visualizamos
o banco de dados completo, vimos 82 linhas, uma em cada linha do console. Esses dados no esto
mais estruturados em uma tabela com outras variveis, ento eles so dispostos um ao lado do outro.
Objetos que so impressos na tela desta maneira so chamados de vetores; eles representam um conjunto de
nmeros. O R adicionou nmeros em [colchetes] no lado esquerdo dos resultados para indicar localizaes
dentro do vetor. Por exemplo, 5218 segue [1], indicando que 5218 a primeira entrada no vetor. E se
[43] inicia uma linha, ento isso significa que o primeiro nmero naquela linha representa a 43a entrada
no vetor.
O R tem algumas funes poderosas para criar grficos. Podemos criar uma grfico simples do nmero de
meninas batizadas por ano com o comando

plot(x = arbuthnot$year, y = arbuthnot$girls)


Por padro, o R cria uma grfico de disperso com cada par x,y indicado por um crculo aberto. O grfico
deve aparecer sob a aba Plots no canto inferior direito do RStudio. Repare que o comando acima tambm
se parece com uma funo, desta vez com dois argumentos separados por vrgula. O primeiro argumento
na funo de grfico especifica a varivel para o eixo x e o segundo para o eixo y. Se ns quisssemos
conectar os pontos dos dados com linhas, ns poderamos adicionar um terceiro argumento, a letra l de
linha.

plot(x = arbuthnot$year, y = arbuthnot$girls, type = "l")


Voc pode se perguntar como voc poderia saber que era possvel adicionar aquele terceiro argumento.
Felizmente, o R tem documentaes extensivas de todas as suas funes. Para ler o que a funo faz e
aprender os argumentos disponveis, basta digitar um ponto de interrogao seguido pelo nome da funo
na qual vocs est interessado. Tente o seguinte.

?plot
Veja que o arquivo de ajuda substitui o grfico no painel no canto inferior direito. Voc pode alternar entre
grficos e arquivos de ajuda usando as abas no topo daquele painel.
Exerccio 2 H alguma tendncia aparente no nmero de meninas batizadas ao longo dos
anos? Como voc a descreveria?
Agora, vamos supr que queiramos fazer um grfico com o nmero total de batismos. Para calcular isso,
ns podemos nos aproveitar do fato de que o R , na verdade, apenas uma grande calculadora. Ns
podemos digitar expresses matemticas como

5218 + 4683

para ver o nmero total de batismos em 1629. Ns podemos repetir isso para cada ano, mas h um modo
mais rpido. Se adicionarmos o vetor de batismo para meninos e meninas, o R ir computar todas as
somas simultaneamente.

arbuthnot$boys + arbuthnot$girls
O que voc ver so 82 nmeros (naquela exibio compacta, porque no estamos analisando um banco
de dados), cada um representando a soma que ns queremos. D uma olhada em alguns deles e verifique
se eles esto corretos. Portanto, ns podemos criar um grfico com o total de batismos por ano com o
comando

plot(arbuthnot$year, arbuthnot$boys + arbuthnot$girls, type = "l")


Desta vez, veja que ns deixamos de fora os nomes dos dois primeiros argumentos. Ns podemos fazer
isso porque o arquivo de ajuda mostra que o padro para o comando plot ter a varivel x como primeiro
argumento e a varivel y como segundo argumento.
De maneira similar como calculamos a proporo de meninos, podemos computar a razo entre o nmero
de meninos e o nmero de meninas batizadas em 1629 com

5218 / 4683
ou podemos utilizar os vetores completos com a expresso

arbuthnot$boys / arbuthnot$girls
A proporo de recm-nascidos que so meninos

5218 / (5218 + 4683)


ou tambm pode ser calculado para todos os anos simultaneamente:

arbuthnot$boys / (arbuthnot$boys + arbuthnot$girls)


Preste ateno que usando o R como sua calculadora, voc precisa prestar ateno da ordem das operaes.
Aqui, ns queremos dividir o nmero de meninos pelo total de recm-nascidos, portanto precisamos usar
parnteses. Sem eles, o R efetuar primeiro a diviso, depois a adio, dando como resultado algo que no
uma proporo.
Exerccio 3 Agora, crie um grfico das propores dos meninos com relao ao tempo. O
que voc percebe? Dica: se voc usar as teclas de flecha para cima e para baixo, voc pode
retomar os comando prvios, chamado de histrico de comandos. Voc tambm pode acess-lo
clicando na aba history no painel no canto superior direito. Isto ir lhe economizar vrias
digitaes no futuro!
Por fim, alm de operadores matemticos simples como subtrao e diviso, voc pode pedir para o R
fazer comparaes como mair que, >, menor que, <, e igualdade, ==. Por exemplo, podemos perguntar
se o nmero de meninos maior que de meninas em cada ano com a expresso

arbuthnot$boys > arbuthnot$girls


Este comando retorna 82 valores ou do tipo TRUE (verdadeiro) se aquele ano teve mais meninos batizados
do que meninas, ou FALSE (falso) se naquele ano foi o contrrio (a resposta pode surpreend-lo). Esse resultado mostra um tipo diferente de varivel daquelas que vimos at agora. No banco de dados arbuthnot
nossos dados so numricos (o ano, o nmero de meninos e meninas). Aqui, ns pedimos para o R criar
dados lgicos, dados cujos valores so TRUE (verdadeiro) ou FALSE (falso). De modo geral, a anlise de dados envolver vrios tipos diferentes de dados, e uma razo para usar o R que ele consegue representar
e realizar computaes com vrios tipos de dados.
J o bastante para seu primeiro laboratrio, ento vamos parar por aqui. Para sair do RStudio voc pode
clicar no x no canto superior direto da janela do aplicativo. Voc ser questionado se quer salvar seu
espao de trabalho. Se voc clicar em save (salvar), o RStudio salvar seu histrico e todos os objetos
de seu espao de trabalho para que na prxima vez que voc inicializar o RStudio, voc ver o objeto
arbuthnot e voc ter acesso aos comando que voc digitou nas suas sesses prvias. Por enquanto, clique
em save, e depois reinicialize o RStudio.

Sua Vez
Nas pginas anteriores, voc recriou algumas das exposies e anlises preliminares dos dados de batismo
de Arbuthnot. Sua tarefa consiste repetir essas etapas, mas para os registros atuais de nascimento dos
Estados Unidos. Carregue os dados atuais com o seguinte comando.

source("http://www.openintro.org/stat/data/present.R")
Os dados sero armazenados num banco de dados chamado present.
1. Quais anos esto includos neste conjunto de dados? Quais so as dimenses da base de dados e
quais so os nomes das colunas ou variveis?
2. Como estas contagens se comparam aos dados de Arbuthnot? Eles esto numa escala similar?
3. A observao de Arbuthnot de que os meninos nascem numa proporo maior que as meninas se
mantm nos EUA?
4. Crie um grfico que mostre a razo de meninos para meninas para cada ano do conjunto de dados.
O que voc pode verificar?
5. Em qual ano se verifica o maior nmero de nascimentos nos EUA? Voc pode utilizar os arquivos de
ajuda ou o carto de referncia do R (http://cran.r-project.org/doc/contrib/Short-refcard.pdf ) para encontrar comandos teis.
Esses dados so provenientes de uma pesquisa realizada pelo Centro de Controle de Doenas (Center
For Disease Control) (http://www.cdc.gov/nchs/data/nvsr/nvsr53/nvsr53_20.pdf ). Confira-o se voc desejar
ler mais sobre a anlise da razo entre os sexos nos nascimentos nos Estados Unidos.
Esta foi uma curta introduo ao R e ao RStudio, mas ns forneceremos mais funes e um sentido
mais completa da linguagem ao longo do curso. Sinta-se livre para procurar na internet pelo R http:

//www.r-project.org e o RStudio http://rstudio.org se vocs estiver interessado em aprender mais, ou encontre


mais laboratrios para praticar em http://openintro.org.

Laboratrio 1: Introduo Anlise de Dados


Algumas pessoas definem a Estatstica como a cincia que tem por objetivo transformar informao em
conhecimento. O primeiro passo no processo sumarizar e descrever a informao bruta - os dados. Neste
laboratrio, voc obter novos conhecimento sobre sade pblica gerando sumrios grficos e numricos
de um conjunto de dados coletados pelo Centro para o Controle e Preveno de Doenas (Centers for
Disease Control and Prevention, CDC). Como esse conjunto de dados grande, ao longo do caminho
voc tambm aprender as habilidades indispensveis de processamento de dados e organizao de subconjuntos.

Preparaes
O Sistema de Monitoramento de Fatores de Risco Comportamental (Behavioral Risk Factor Surveillance
System, BRFSS) um survey anual realizado por telefone com 350.000 pessoas nos Estados Unidos. Como
seu nome implica, o BRFSS foi desenvolvido para identificar fatores de risco na populao adulta e relatar
tendncias emergentes na sade. Por exemplo, os respondentes so indagados sobre sua dieta e atividades
fsicas semanais, seu diagnstico de HIV/AIDS, uso provvel de tabaco, e mesmo seu nvel de cobertura
por planos de sade. O website do BRFSS (http://www.cdc.gov/brfss) contm uma descrio completa desta
pesquisa, incluindo as questes de pesquisa que motivaram o estudo e muitos resultados interessantes
derivados dos dados.
Ns nos focaremos numa amostra aleatria de 20.000 pessoas do BRFSS conduzido em 2000. Ainda
que existam mais de 200 variveis neste conjunto de dados, ns trabalharemos com um subconjunto menor.
Comeamos importando os dados das 20.000 observaes para dentro do espao de trabalho do R. Depois
de inicializar o RStudio, entre com o seguinte comando.

source("http://www.openintro.org/stat/data/cdc.R")
O conjunto de dados cdc que aparece em seu espao de trabalho uma matriz de dados, com cada linha
representando um caso e cada coluna representando uma varivel. O R denomina este formato de dados
como banco de dados (data frame), que ser um termo utilizado ao longo dos laboratrios.
Para visualizar o nome das variveis, digite o comando

names(cdc)
Este comando retorna os nomes genhlth, exerany, hlthplan, smoke100, height, weight, wtdesire, age,
e gender. Cada uma dessas variveis corresponde a uma questo que foi feita na pesquisa. Por exemplo,
para genhlth, os respondentes foram indagados sobre sua sade geral, respondendo excelente, muito
bom, bom, razovel ou ruim. A varivel exerany indica se o respondente se exercitou no ltimo ms (1)
ou no (0). Da mesma forma, hlthplan indica se o respondente tem alguma forma de cobertura (1) ou
no (0). A varivel smoke100 indica se o respondente fumou pelo menos 100 cigarros ao longo da vida. As
outras variveis registram a altura (height ) em polegadas, o peso (weight) em libras, bem como o peso
desejado (wtdesire), idade (age) em anos, e gnero (gender)
Exerccio 1 H quantos casos neste conjunto de dados? Quantas variveis? Para cada varivel,
identifique seu tipo de dado (p.e., categorial, discreta).
Este um produto da OpenIntro que distribudo sob uma Licena Creative Commons Atribuio Compartilhamento pela
Mesma Licena 3.0 (http://creativecommons.org/licenses/by-sa/3.0). Este laboratrio foi adaptado para a OpenIntro por Andrew Bray
e Mine etinkaya-Rundel de um laboratrio escrito por Mark Hansen do departamento de Estatstica da UCLA. Traduo para o
portugus por Erikson Kaszubowski.

Ns podemos dar uma olhada nas primeiras entradas (linhas) de nossos dados com o comando

head(cdc)
e, similarmente, podemos verificar as ltimas digitando

tail(cdc)
Voc tambm pode verificar toda a base de dados de uma vez s digitando seu nome no console, mas isso
pode no ser muito sbio neste contexto. Sabemos que cdc tem 20.000 linhas, portanto verificar o conjunto
de dados inteiro significa inundar sua tela. melhor dar pequenas espiadas nos dados utilizando head,
tail, ou as tcnicas de construo de subconjunto que voc aprender logo em seguida.

Sumrios e Tabelas
O questionrio do BRFSS um tesouro enorme de informaes. Um primeiro passo til em qualquer
anlise destilar toda essa informao em algumas estatsticas sumrias e grficos. Como um exemplo
simples, a funo summary retorna um sumrio numrico: mnimo, primeiro quartil, mediana, mdia,
segundo quartil, e mximo. Para a varivel weight, esse sumrio :

summary(cdc$weight)
O R tambm funciona como uma calculadora poderosa. Se vocs quisesse calcular o intervalo interquartil
para o peso dos respondentes, voc pode se basear na sada do comando acima e ento digitar

190 - 140
O R tambm tem funes embutidas para calcular estatsticas descritivas uma por uma. Por exemplo, para
calcular a mdia, mediana, e varincia da varivel weight, digite

mean(cdc$weight)
var(cdc$weight)
median(cdc$weight)
Ainda que faa sentido descrever uma varivel quantitativa como weight em termos destas estatsticas,
o que fazer com dados categoriais? Ns podemos considerar a frequncia da amostra ou a distribuio
relativa de frequncia. A funo table faz isso por voc contando o nmero de vezes que cada tipo de
resposta dada. Por exemplo, para ver o nmero de pessoas que fumaram 100 cigarros ao longo de sua
vida, digite

table(cdc$smoke100)
Ou ento verifique a distribuio de frequncia relativa digitando

table(cdc$smoke100)/20000
Perceba como o R automaticamente divide todas as entradas na tabela por 20.000 no comando acima. Isso
similar a algo que observamos no ltimo laboratrio; quando multiplicamos ou dividimos um vetor
por um nmero, o R aplica essa ao a todas as entradas dos vetores. Como vimos acima, isso tambm
funciona para tabelas. Em seguida, criamos um grfico de barras para as entradas na tabela inserindo a
tabela dentro do comando para grficos de barra.

barplot(table(cdc$smoke100))
Preste ateno no que fizemos agora! Ns computamos a tabela da varivel cdc$smoke100 e ento imediatamente aplicamos a funo grfica, barplot. Esta uma ideia importante: os comandos do R podem ser
aninhados. Voc tambm pode dividir esse procedimento em dois passos digitando o seguinte:

smoke <- table(cdc$smoke100)


barplot(smoke)
Agora, criamos um novo objeto, uma tabela, denominada smoke (seu contedo pode ser verificado digitando smoke no console) e ento a utilizamos como entrada para o comando barplot. O smbolo especial
<- realiza uma atribuio, tomando a sada de uma linha de cdigo e salvando-a em um objeto no seu
espao de trabalho. Esta outra ideia importante para a qual retornaremos mais tarde.
Exerccio 2 Crie um sumrio numrico para height (altura) e age (idade), e calcule o intervalo interquartlico para cada um. Calcule a distribuio de frequncia relativa para gender
e exerany. Quantos homens compem a amostra? Qual proporo da amostra diz estar com
sade excelente?
O comando table pode ser utilizado para tabular qualquer nmero de variveis que voc quiser. Por
exemplo, para examinar quais participantes fumam, dividido por gnero, ns podemos utilizar o seguinte
cdigo.

table(cdc$gender,cdc$smoke100)
Aqui, vemos etiquetas de coluna formadas por 0 e 1. Lembre-se que o 1 indica que o respondente fumou
pelo menos 100 cigarros. As linhas se referem ao gnero. Para criar um grfico de mosaico para essa
tabela, entramos com o seguinte comando.

mosaicplot(table(cdc$gender,cdc$smoke100))
Ns poderamos ter conseguido esse resultado em duas etapas: salvando a tabela em uma linha e aplicando
mosaicplot em seguida (veja o exemplo de tabela/grfico de barras acima).
Exerccio 3 O que o grfico de mosaico revela sobre os hbitos de fumar e gnero?

Interldio: Como o R Pensa a Respeito dos Dados


Mencionamos que o R armazena os dados em bases de dados, que voc pode pensar como um tipo de
planilha. Cada linha uma observao diferente (um respondente diferente) e cada coluna uma varivel
diferente (a primeira genhlth, a segunda exerany e assim por diante). Ns podemos visualizar o
tamanho da base de dados ao lado do nome do objeto na rea de trabalho ou podemos digitar

dim(cdc)
o que faz retornar o nmero de linhas e colunas. Agora, se quisermos acessar um subconjunto da base de
dados completa, ns podemos utilizar a notao de linhas-e-colunas. Por exemplo, para visualizar a sexta
varivel do 567o respondente, utilize o comando

cdc[567,6]
que significa que ns queremos o elemento de nosso conjunto de dados que est na 567a linha (ou seja, a
567a pessoa ou observao) e na 6a coluna (nesse caso, o peso). Sabemos que weight (peso) a 6a varivel
porque ela a 6a entrada na lista de nomes de variveis.

names(cdc)
Para visualizar os pesos para os primeiros 10 respondentes, podemos digitar

cdc[1:10,6]
Nesta expresso, ns pedimos somente pelas linhas no intervalo entre 1 e 10. O R usa o : para criar um
intervalo de valores, de tal forma que 1:10 se expande para 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Voc pode visualizar
isso digitando

1:10
Finalmente, se ns queremos todos os dados dos 10 primeiros respondentes, digite

cdc[1:10,]
Ao deixar de fora um ndice ou intervalo (ns no digitamos nada entre a vrgula e o colchete), ns
obtemos todas as colunas. Quando iniciamos o uso do R, isso parece um pouco contra-intuitivo. Como
um regra geral, omitimos o nmero da coluna para ver todas as colunas numa base de dados. Da mesma
forma, se deixamos de fora um ndice ou intervalo para as linhas, ns acessaramos todas as observaes,
no apenas a 567a , ou as linhas 1 a 10. Experimente o cdigo seguinte para ver o peso de todos os 20.000
respondentes passarem voando por sua tela

cdc[,6]
Recorde que a coluna 6 representa o peso dos respondentes, e portanto o comando acima mostra todos
os pesos no conjunto de dados. Um mtodo alternativo para acessar os dados sobre peso utilizar o seu
nome. Anteriormente, digitamos names(cdc) para ver todas as variveis contidas no conjunto de dados
4

cdc. Ns podemos utilizar qualquer um dos nomes de variveis para selecionar itens no seu conjunto de
dados.
cdc$weight
O cifro informa ao R para recuperar na base de dados cdc a coluna denominada weight. Uma vez que
se trata de um nico vetor, podemos formar subconjuntos utilizando apenas um nico ndice dentro dos
colchetes. Ns verificamos o peso para o 567o respondente digitando

cdc$weight[567]
Da mesma forma, para apenas os 10 primeiros respondentes

cdc$weight[1:10]
O comando acima retorna o mesmo resultado que o comando cdc[1:10,6]. Tanto a notao linha-ecoluna quanto a notao utilizando o cifro so amplamente utilizadas. Qual voc escolhe depende da sua
preferncia pessoal.

Um Pouco Mais Sobre Formao de Subconjuntos


frequentemente til extrair todos os sujeitos (casos) de um conjunto de dados que possuem caractersticas
especficas. Ns conseguimos isso por meio de comando condicionais. Primeiramente, considere expresses
como

cdc$gender == "m"
ou

cdc$age > 30
Esses comandos produzem uma srie de valores TRUE (verdadeiro) e FALSE (falso). H um valor para cada
respondente, sendo que TRUE indica que a pessoa era do sexo masculino (pelo primeiro comando) ou mais
velha que 30 anos (segundo comando).
Vamos supor que queiramos extrair apenas os dados para homens na amostra, ou apenas para aqueles
acima de 30 anos. Ns podemos utilizar a funo do R subset para fazer isso por ns. Por exemplo, o
comando

mdata <- subset(cdc, cdc$gender == "m")


criar um novo conjunto de dados denominado mdata que contm apenas os homens do conjunto de dados
cdc. Alm de poder encontr-lo em seu espao de trabalho junto com suas dimenses, voc pode dar uma
olhada nas primeiras linhas como j fizemos

head(mdata)
Este novo conjunto de dados contm as mesmas variveis mas cerca de metade das linhas. Tambm
possvel pedir para o R manter apenas variveis especficas, um tpico que abordaremos num laboratrio
no futuro. Por enquanto, o importante que podemos desmembrar os dados com base nos valores de uma
ou mais variveis.
Voc tambm pode utilizar vrios condicionais em conjunto com & e |. O & lido como e de tal forma
que

m_and_over30 <- subset(cdc, cdc$gender == "m" & cdc$age > 30)


resultar nos dados para homens acima de 30 anos de idade. O caractere | interpretado como ou de
tal forma que

m_or_over30 <- subset(cdc, cdc$gender == "m" | cdc$age > 30)


selecionar pessoas que so homens ou ento acima de 30 anos (por que esse grupo seria interessante
difcil dizer, mas por enquanto entender o comando o mais importante). A princpio, voc pode utilizar
quantos e e ou voc quiser quando formar um subconjunto.
Exerccio 4 Crie um novo objeto denominado under23_and_smoke (ou, se preferir, abaixo23_e_fuma)
que contm todas as observaes dos respondentes com menos de 23 anos que fumaram pelo
menos 100 cigarros ao longo de sua vida. Escreva o comando que voc utilizou para criar o
novo objeto como resposta para esse exerccio.

Dados Quantitativos
Com nossas ferramentas para criar subconjuntos a postos, podemos retornar tarefa de hoje: criar sumrios bsicos do questionrio BRFSS. Ns j olhamos os dados categoriais como smoke (fumante) e gender
(gnero). Agora vamos nos concentrar nos dados quantitativos. Duas formas comuns de visualizar dados
quantitativos por meio de grfico de caixas e histogramas. Ns podemos construir um grfico de caixas
para uma nica varivel com o seguinte comando.

boxplot(cdc$height)
Voc pode comparar a localizao dos componentes da caixa examinando as estatsticas sumrias.

summary(cdc$height)
Confirme que a mediana e os quartis superior e inferior informados no sumrio numrico batem com os
apresentados no grfico. O objetivo de um grfico de caixa prover um pequeno esboo de uma varivel
com o propsito de comparar entre vrias categorias. Podemos, por exemplo, comparar as alturas de
homens e mulheres com

boxplot(cdc$height ~ cdc$gender)

A notao aqui nova. O caractere ~ pode ser lido como versus ou como uma funo de. Estamos,
portanto, pedindo ao R para nos dar um grfico de caixas das alturas no qual os grupos so definidos pelo
gnero.
Na sequncia, consideremos uma nova varivel que no aparece diretamente neste conjunto de dados: o
ndice de Massa Corporal (IMC). IMC uma razo entre peso e altura que pode ser calculado da seguinte
maneira:
I MC =

peso (lbs)
703
altura ( pols)2

As duas linhas seguintes criam um novo objeto chamado bmi (de Body Mass Index) e ento criamos um
grfico de caixas para esses valores, definindo grupos pela varivel cdc$genhlth

bmi <- (cdc$weight / cdc$height^2) * 703


boxplot(bmi ~ cdc$genhlth)
Perceba que a primeira linha acima apenas aritmtica, mas aplicada para todos os 20.000 nmero do
conjunto de dados cdc. Ou seja, para cada um dos 20.000 participantes, pegamos seu peso, dividimos
pelo quadrado de sua altura e multiplicamos por 703. O resultado 20.000 valores de IMC, um para cada
respondente. Essa uma das razes pela qual gostamos do R: ele nos permite realizar clculos como esse
utilizando expresses bem simples.
Exerccio 5 O que este grfico de caixas mostra? Escolha outra varivel categorial do conjunto
de dados e verifique como ela se relaciona ao IMC. Liste a varivel que voc escolheu, por que
voc pensou que ela poderia ter relao com o IMC e indique o que o grfico parece sugerir.
Por fim, vamos fazer alguns histogramas. Ns podemos verificar o histograma da idade de nossos respondentes com o comando

hist(cdc$age)
Histogramas so geralmente uma boa maneira de visualizar a forma de uma distribuio, mas essa forma
pode mudar dependendo como os dados so divididos entre os diferentes segmentos. Voc pode controlar
o nmero de segmentos adicionando um argumento ao comando. Nas prximas duas linhas, primeiro
fazemos um histograma padro da varivel bmi e depois um com 50 segmentos.

hist(bmi)
hist(bmi, breaks = 50)
Perceba que voc pode alternar entre grficos que voc criou clicando nas flechas de avanar e retroceder
na regio inferior direita do RStudio, logo acima dos grficos. Quais as diferenas entre esses histogramas?
A esta altura, fizemos uma boa primeira exposio sobre anlise das informaes no questionrio BRFSS.
Ns descobrimos um associao interessante entre fumo e gnero, e ns podemos comentar algo a respeito
da relao entre a avaliao de sade em geral dada pelas pessoas e seu prprio IMC. Ns tambm nos
703 um fator de converso aproximado para mudar as unidades do sistema mtrico (metro e kilograma) para o sistema imperial
(polegadas e libras). Isso necessrio porque os dados disponveis esto no sistema imperial. No sistema mtrico basta dividir o
peso em quilogramas pelo quadrado da altura em metros.

apropriamos de ferramentas computacionais essenciais estatsticas sumrias, subconjuntos, e grficos


que nos serviro bem ao longo deste curso.

Sua Vez
1. Crie um grfico de disperso da varivel peso em relao ao peso desejado. Defina a relao entre
essas duas variveis.
2. Vamos considerar uma nova varivel: a diferena entre o peso desejado (wtdesire) e o peso atual
(weight). Crie esta nova varivel subtraindo as duas colunas na base de dados e atribuindo-as a um
novo objeto chamado wdiff.
3. Que tipo de dado est contido na varivel wdiff? Se uma observao de wdiff 0, o que isso implica
com relao ao peso atual e desejado de uma pessoas? E se o valor de wdiff for positivo ou negativo?
4. Descreva a distribuio de wdiff em termos de seu centro, forma e variao, incluindo qualquer
grfico que voc usar. O que isso nos diz sobre como as pessoas se sentem a respeito do seu peso
atual?
5. Utilizando sumrios numricos e um grfico de caixas lado-a-lado, determine se homens tendem a
ver seu peso diferentemente das mulheres.
6. Agora chegou a hora de usar a criatividade. Encontre a mdia e o desvio padro de weight e
determine qual a proporo de pesos que esto a um desvio padro da mdia.
7. Quais conceitos do livro so abordados neste laboratrio? Quais conceitos, se houver algum, que
no so abordados no livro? Voc viu esses conceito em algum outro lugar, p.e., aulas, sees de
discusso, laboratrios anteriores, ou tarefas de casa? Seja especfico em sua resposta.
8

Laboratrio 2: Probabilidade
Mos Quentes
Jogadores de basquete que pontuam vrias vezes seguidas costumam ser descritos como tendo as mos
quentes. Fs e jogadores acreditam h muito tempo no fenmeno da mo quente, que refuta o pressuposto de que cada lance independente do prximo. Contudo, um artigo de 1985 escrito por Gilovich,
Vallone e Tversky coletou evidncia que contradiz essa crena e mostrou que lances sucessivos so eventos independentes. Este artigo iniciou uma grande controvrsia que continua at hoje, como voc pode
verificar se procurar por hot hand basketball no Google.
No temos a expectativa de resolver esta controvrsia hoje. Entretanto, neste laboratrio ns aplicaremos
um procedimento para responder a questes como essa. Os objetivos deste laboratrio so (1) refletir sobre
o efeito de eventos independentes e dependentes, (2) aprender como simular sequncias de lances no R, e
(3) comparar a simulao com os dados efetivos para determinar se o fenmeno das mos quentes parece
ser real.

Salvando seu Cdigo


Clique em File New R Script. Um documento em branco ser aberto acima do console. medida
que o laboratrio avanar, voc pode copiar e colar seu cdigo aqui e salv-lo. Esta uma boa maneira
de manter um registro do seu cdigo e reutiliz-lo mais tarde. Para executar seu cdigo a partir deste
documento, voc pode ou copiar e colar os comandos no console, ou selecionar o cdigo e clicar no boto
Run (Executar), ou ento selecionar o cdigo e pressionar command+enter se estiver utilizando um Mac ou
control+enter num PC.
Voc tambm poder salvar este script (documento de cdigo). Para fazer isso basta clicar no cone de
disquete. A primeira vez que voc pressionar o boto de salvar, o RStudio pedir por um nome de
arquivo; voc pode dar qualquer nome que quiser. Depois de clicar em salvar voc ver o arquivo aparecer
sob a aba Files no painel inferior direito. Voc pode reabrir este arquivo a qualquer momento simplesmente
clicando sobre ele.

Preparaes
Nossa investigao focar na performance de um jogador: Kobe Bryant do Los Angeles Lakers. Sua
performance contra o Orlando Magic nas finais de 2009 da NBA lhe deram o ttulo de Jogador Mais
Valioso e vrios espectadores comentaram como ele parecia demonstrar uma mo quente. Vamos carregar
alguns dados desses jogos e analisar as primeiras linhas.

download.file("http://www.openintro.org/stat/data/kobe.RData", destfile = "kobe.RData")


load("kobe.RData")
head(kobe)
Neste banco de dados, cada linha registra um lance feito por Kobe Bryant. Se ele acertou o lance (fez uma
cesta), um acerto, H (de Hit), registrado na coluna denominada basket (cesta); caso contrrio um erro, M
(de Miss), registrado.
Este um produto da OpenIntro que distribudo sob uma Licena Creative Commons Atribuio Compartilhamento pela
Mesma Licena 3.0 (http://creativecommons.org/licenses/by-sa/3.0). Este laboratrio foi adaptado para a OpenIntro por Andrew Bray
e Mine etinkaya-Rundel de um laboratrio escrito por Mark Hansen do departamento de Estatstica da UCLA. Traduo para o
portugus por Erikson Kaszubowski.
The Hot Hand in Basketball: On the Misperception of Random Sequences, Gilovich, T., Vallone, R., Tversky, A., 1985. Cognitive
Psychology, 17, pp. 295-314.

Apenas olhando para a sequncia de acertos e erros pode ser difcil de aferir se possvel que Kobe estava
arremessando com as mos quentes. Uma maneira possvel de abordar este problema considerar a crena
de que arremessadores com a mo quente tendem a conseguir uma longa sequncias de acertos. Para este
laboratrio, definiremos o comprimento de uma sequncia de acertos como o nmero de cestas consecutivas
at acontecer um erro.
Por exemplo, no Jogo 1 Kobe teve a seguinte sequncia de acertos e erros de suas nove tentativas de
arremessos no primeiro quarto:
H

Para verificar estes dados no R, use o seguinte comando:

kobe$basket[1:9]
Dentre as nove tentativas de arremesso h seis sequncias, que so separadas por um | acima. Seus
comprimentos so um, zero, dois, zero, zero, zero (em ordem de ocorrncia).
Exerccio 1 O que uma sequncia de comprimento 1 significa, ou seja, quantos acertos e erros
existem dentro de um sequncia de 1? E de uma sequncia de comprimento 0?
A funo personalizada calc_streak, que foi carregada com os dados, pode ser utilizada para calcular os
comprimentos de todas as sequncias de acertos e ento conferir sua distribuio.

kobe_streak <- calc_streak(kobe$basket)


barplot(table(kobe_streak))
Perceba que, ao invs de fazer um histograma, escolhemos criar uma grfico de barras a partir de uma
tabela dos dados das sequncias. Uma grfico de barras prefervel neste contexto uma vez que nossa
varivel discreta contagens ao invs de contnua.
Exerccio 2 Descreva a distribuio do comprimento das sequncias de Kobe nas finais de 2009
da NBA. Qual foi seu tamanho de sequncia tpico? Quo longa foi sua maior sequncia de
cestas?

Comparado a qu?
Mostramos que Kobe teve algumas sequncias de arremesso longas, mas elas so longas o suficiente para
apoiar a crena de que ele tinha mos quentes? Com o que podemos compar-las?
Para responder a essa pergunta, vamos retornar ideia de independncia. Dois processos so independentes
se o resultado de um processo no afeta o resultado do outro. Se cada arremesso que o jogador faz um
processo independente, ter acertado ou errado o primeiro arremesso no afetar a probabilidade de ele
converter ou errar seu segundo arremesso.
Um arremessador com as mos quentes ter arremessos que no so independente um do outro. Mais
especificamente, se o arremessador converte seu primeiro arremesso, o modelo das mos quentes diz que
ele ter uma probabilidade maior de converter seu segundo arremesso.
Vamos supor por um momento que o modelo das mos quente vlido para Kobe. Durante sua carreira,
o percentual de vezes que Kobe faz uma cesta (ou seja, sua porcentagem de arremessos) de cerca de 45%,
ou, em notao de probabilidade,

P(arremesso 1 = H) = 0.45
Se ele converte o primeiro arremesso e tem as mos quentes (arremesso no independentes), ento a
probabilidade de ele converter seu segundo arremesso deveria aumentar para, digamos, 60%,
P(arremesso 2 = H | arremesso 1 = H) = 0.60
Como um resultado do aumento da probabilidade, seria esperado que Kobe tivesse sequncias mais longas.
Compare com a perspectiva ctica de que Kobe no tem as mos quentes, ou seja, que cada arremesso
independente do prximo. Se ele acerta seu primeiro arremesso, a probabilidade de ele acertar o segundo
continua sendo 0.45.
P(arremesso 2 = H | arremesso 1 = H) = 0.45
Ou seja, converter o primeiro arremesso no afeta de maneira alguma a probabilidade de ele converter seu
segundo arremesso. Se os arremessos de Kobe so independentes, ento ele teria a mesma probabilidade
de acertar cada arremesso independentemente de seus arremessos anteriores: 45%.
Agora que reformulamos a situao em termos de arremessos independentes, vamos retornar questo:
como podemos saber se as sequncias de arremessos de Kobe so longas o suficiente para indicar que ele
tem mos quentes? Podemos comparar o tamanho de suas sequncias a algum que no tem as mos
quentes: um arremessador independente.

Simulaes no R
Apesar de no termos nenhum dado de um arremessador que sabemos fazer arremessos independentes,
esse tipo de dado muito fcil de simular no R. Numa simulao, voc define as regras bsicas de um
processo aleatrio e ento o computador utiliza nmeros aleatrios para gerar um resultado fiel a essas
regras. Como um exemplo simples, voc pode simular um lance de uma moeda honesta com o seguinte
cdigo:

outcomes <- c("heads", "tails")


sample(outcomes, size = 1, replace = TRUE)
O vetor outcomes (resultados) pode ser entendido como um chapu com duas tiras de papel dentro dele:
numa tira est escrito cara (heads) e na outra coroa (tails). A funo sample (amostra) sorteia uma
tira de dentro do chapu e revela se ela cara ou coroa.
Execute o segundo comando listado acima vrias vezes. Da mesma maneira quando jogando uma moeda,
algumas vezes voc obter cara, algumas vezes voc obter coroa, mas a longo prazo voc esperaria obter
um nmero mais ou menos igual de cada.
Se voc quisesse simular o lanamento de uma moeda honesta 100 vezes, voc poderia ou rodar a funo
100 vezes ou, mais simples, ajustar o argumento size (tamanho), que regula quantas amostras retirar (o
argumento replace = TRUE indica que ns recolocamos a tira de papel de volta no chapu antes de retirar
outra amostra). Salve o vetor resultante de cara ou coroa num novo objeto denominado sim_fair_coin
(ou, se preferir, sim_moeda_honesta).

sim_fair_coin <- sample(outcomes, size = 100, replace = TRUE)

Para visualizar os resultados desta simulao, digite o nome do objeto e ento use o comando table pra
contar o nmero de caras e coroas.

sim_fair_coin
table(sim_fair_coin)
Uma vez que h apenas dois elementos no vetor outcomes, a probabilidade de um lance de uma moeda dar
cara 0.5. Digamos que estamos tentando simular uma moeda viciada que sabemos que d cara somente
20% das vezes. Podemos ajustar adicionando um argumento denominado prob, que fornece um vetor de
dois pesos de probabilidade.

sim_unfair_coin <- sample(outcomes, size = 100, replace = TRUE, prob = c(0.2, 0.8))
prob=c(0.2,0.8) indica que, para os dois elementos no vetor outcomes, ns queremos selecionar o primeiro, heads (cara), com probabilidade 0.2, e o segundo, tails (coroa), com probabilidade 0.8.
Exerccio 3 Em sua simulao de lanar uma moeda viciada 100 vezes, quantos lances deram
cara?
Num certo sentido, ns reduzimos o tamanho da tira de papel que diz cara, tornando-o menos provvel
de ser escolhido, e ns aumentamos o tamanho da tira de papel que diz coroa, tornando-o mais provvel
de ser retirado. Quando simulamos a moeda honesta, ambas as tiras de papel tinham o mesmo tamanho.
Isso acontece por padro se voc no fornecer o argumento prob; todos os elementos no vetor outcomes
tem igual probabilidade de serem escolhidos.
Se voc quiser saber mais sobre a funo sample ou qualquer outra, lembre-se que voc pode sempre
conferir seu arquivo de ajuda.

?sample

Simulando o Arremessador Independente


Para simular um jogador de basquete que arremessa de forma independente, utilizamos o mesmo mecanismo que empregamos para simular o lance de uma moeda. Para simular um nico arremesso de um
arremessador independente, com um percentual de arremesso de 50%, digitamos

outcomes <- c("H", "M")


sim_basket <- sample(outcomes, size = 1, replace = TRUE)
Para podermos fazer uma comparao vlida entre Kobe e nosso arremessador independente simulado,
precisamos alinhar tanto seus percentuais de arremesso quanto seus nmeros de arremessos tentados.
Exerccio 4 Qual mudana precisa ser feita para que a funo sample reflita o percentual
de arremessos de 45%? Faa esse ajuste, e ento rode a simulao para uma amostra de 133
Outra maneira de pensar sobre esse cenrio imaginar o espao amostral como um saco contendo 10 fichas, sendo 2 marcadas
como cara e 8 como coroa. Portanto, a cada seleo, a probabilidade de retirar uma ficha escrito cara 20% e coroa 80%.

arremessos. Atribua o resultado dessa simulao a um novo objeto chamado sim_basket (se
preferir, sim_cestas).
Perceba que nomeamos o novo vetor como sim_basket, o mesmo nome que demos ao vetor anterior
correspondente a um percentual de arremesso de 50%. Nessa situao, o R sobrescreve o objeto antigo
com o novo, portanto sempre se certifique que voc no precisa da informao no vetor antigo antes de
atribuir um novo objeto ao seu nome.
Com os resultados da simulao salvos como sim_basket, temos os dados necessrios para comprar Kobe
a nosso arremessador independente. Podemos visualizar os dados de Kobe em conjunto com nossos dados
simulados.

kobe$basket
sim_basket
Ambos os conjuntos de dados representam o resultado de 133 tentativas de arremessos, cada uma com o
mesmo percentual de arremesso de 45%. Sabemos que nosso dados simulados so de uma arremessador
que arremessa de forma independente. Quer dizer, sabemos que o arremessador simulado no tem as
mos quentes.

Sua vez
Comparando Kobe Bryant ao Arremessador Independente
Utilizando a funo calc_streak, calcule o comprimento das sequncias do vetor sim_basket.
1. Descreva a distribuio das sequncias de arremessos. Qual o comprimento de sequncia tpico
para o arremessador independente simulado com um percentual de arremesso de 45%? Quo longa
a sequncia mais longa de cestas em 133 arremessos?
2. Se voc rodasse a simulao do arremessador independente uma segunda vez, como voc acha que
seria a distribuio de sequncias em relao distribuio da questo acima? Exatamente a mesma?
Mais ou menos parecida? Completamente diferente? Explique seu raciocnio.
3. Como a distribuio dos comprimentos de sequncia de Kobe Bryant, analisada na pgina 2, se
comparam distribuio de comprimentos de sequncia do arremessador simulado? Utilizando
essa comparao, voc tem evidncia de que o modelo das mos quentes se ajusta aos padres de
arremessos de Kobe? Explique.
4. Quais conceitos do livro so abordados neste laboratrio? Quais conceitos, se houver algum, que
no so abordados no livro? Voc viu esses conceito em algum outro lugar, p.e., aulas, sees de
discusso, laboratrios anteriores, ou tarefas de casa? Seja especfico em sua resposta.

Laboratrio 3: Distribuies de Variveis Aleatrias


Neste laboratrio investigaremos a distribuio de probabilidade que a mais central para a estatstica: a
distribuio normal. Se estamos confiantes de que nossos dados so aproximadamente normais, uma porta
para mtodos estatsticos poderosos aberta. Aqui ns utilizaremos ferramentas grficas do R para avaliar
a normalidade de nossos dados e tambm aprender como gerar nmeros aleatrios de uma distribuio
normal.

Os Dados
Esta semana trabalharemos com medidas de dimenses do corpo. Este conjunto de dados contm medidas
de 247 homens e 260 mulheres, a maioria dos quais foram considerados adultos jovens saudveis.

download.file("http://www.openintro.org/stat/data/bdims.RData", destfile = "bdims.RData")


load("bdims.RData")
Vamos dar uma rpida olhada nas primeiras linhas dos dados.

head(bdims)
Voc ver que para cada observao temos 25 medidas, muitas das quais so dimetros ou circunferncias.
Uma chave para os nomes das variveis pode ser encontrada no site http://www.openintro.org/stat/data/bdims.
php, mas nos focaremos em apenas trs colunas para iniciar: peso em kg (wgt), altura em cm (hgt), e sex
(sexo, 1 indica masculino, 0 indica feminino).
Uma vez que homens e mulheres tendem a ter dimenses corporais diferentes, ser til criar dois conjuntos
de dados adicionais: um com os dados dos homens e outro com os dados das mulheres.

mdims <- subset(bdims, bdims$sex == 1)


fdims <- subset(bdims, bdims$sex == 0)

Exerccio 1 Elabore um histograma da altura dos homens e um histograma das alturas das
mulheres. Como voc descreveria os diferentes aspectos das duas distribuies?

A Distribuio Normal
Na sua descrio das distribuies, voc utilizou palavras como em forma de sino ou normal?
tentador afirmar isso quando encontramos uma distribuio simtrica e unimodal.
Para verificar quo precisa essa descrio, podemos desenhar uma curva de distribuio normal sobre
o histograma para ver se os dados seguem uma distribuio normal de perto. Essa curva normal deve
ter a mesma mdia e desvio padro dos dados da amostra. Trabalharemos com as alturas das mulheres.
Por isso, vamos armazen-las como um objeto separado e ento calcular algumas estatsticas que sero
utilizadas mais adiante.
Este um produto da OpenIntro que distribudo sob uma Licena Creative Commons Atribuio Compartilhamento pela
Mesma Licena 3.0 (http://creativecommons.org/licenses/by-sa/3.0). Este laboratrio foi adaptado para a OpenIntro por Andrew Bray
e Mine etinkaya-Rundel de um laboratrio escrito por Mark Hansen do departamento de Estatstica da UCLA. Traduo para o
portugus por Erikson Kaszubowski.

fhgtmean <- mean(fdims$hgt)


fhgtsd

<- sd(fdims$hgt)

Em seguida, construmos um histograma de densidade que servir como pano de fundo e utilizamos
a funo lines para sobrepor a curva de probabilidade normal. A diferena entre um histograma de
frequncia e um histograma de densidade que, enquanto no histograma de frequncia as alturas das
barras somadas resultam no nmero total de observaes, num histograma de densidade as reas das
barras somadas resultam em 1. A rea de cada barra pode ser calculada simplesmente como a altura
a largura da barra. Um histograma de densidade permite-nos sobrepor corretamente uma curva de
distribuio normal sobre o histograma uma vez que a curva uma funo de densidade de probabilidade
normal. Histogramas de frequncia de densidade tem a mesma forma; eles diferem apenas com relao a
seu eixo y. Voc pode verificar isso comparando o histograma de frequncia que voc construiu antes e o
histograma de densidade criado pelos comandos abaixo.

hist(fdims$hgt, probability = TRUE)


x <- 140:190
y <- dnorm(x = x, mean = fhgtmean, sd = fhgtsd)
lines(x = x, y = y, col = "blue")
Depois de criar o histograma de densidade com o primeiro comando, ns criamos as coordenadas dos eixos
x e y para a curva normal. Escolhemos o intervalo de x entre 140 e 190, de forma a abarcar o intervalo
completo da varivel fheight. Para criar y, utilizamos a funo dnorm para calcular a densidade de cada
um dos valores de x numa distribuio que normal com mdia fhgtmean e desvio padro fhgtsd. O
comando final desenha a curva sobre o grfico existente (o histograma de densidade) conectando cada
ponto especificado por x e y. O argumento col simplesmente estabelece a cor da linha a ser desenhada.
Se no especificarmos este argumento, a linha seria desenhada na cor preta.
Exerccio 2 Baseado neste grfico, parece que os dados seguem aproximadamente uma distribuio normal?

Avaliando a Distribuio Normal


Verificar visualmente a forma do histograma uma maneira de determinar se os dados parecem se distribuir de maneira quase normal, mas pode ser frustrante decidir quo prximo o histograma est da curva.
Uma abordagem alternativa envolve construir uma grfico de probabilidade normal, tambm chamado de
grfico normal Q-Q, de quantil-quantil.

qqnorm(fdims$hgt)
qqline(fdims$hgt)
Um conjunto de dados que aproximadamente normal resultar em um grfico de probabilidade no qual
os pontos seguem de perto a linha. Quaisquer desvios da normalidade conduz a desvios desses pontos
O topo da curva cortado porque os limites dos eixos x e y so ajustados de forma mais adequada ao histograma. Para ajustar o
eixo y voc pode adicionar um terceiro argumento funo de histograma: hist(fdims$hgt, probability = TRUE, ylim = c(0,
0.06)).

com relao linha. O grfico para a altura de mulheres mostra pontos que tendem a seguir a linha mas
com alguns pontos errantes na direo das caudas. Voltamos ao mesmo problema que encontramos com
o histograma acima: quo perto perto o suficiente?
Uma maneira til de enderear essa questo reformul-la da seguinte maneira: como grficos de probabilidade se parecem para dados que sabemos serem provenientes de uma distribuio normal? Podemos
responder a essa pergunta simulando dados a partir de uma distribuio normal utilizando a funo
rnorm.

sim_norm <- rnorm(n = length(fdims$hgt), mean = fhgtmean, sd = fhgtsd)


O primeiro argumento indica quantos nmeros voc gostaria de gerar, que aqui especificamos para ser
o mesmo nmero de alturas no conjunto de dados fdims utilizando a funo length. Os ltimos dois
argumentos determinam a mdia e o desvio padro da distribuio normal a partir da qual a amostra
simulada ser gerada. Podemos visualizar a forma de nosso conjunto de dados simulado, sim_norm, assim
como seu grfico de probabilidade normal.
Exerccio 3 Faa um grfico de probabilidade normal do vetor sim_norm. Os pontos caem
todos em cima da linha? Como este grfico se compara ao grfico de probabilidade dos dados
reais?
Ainda melhor do que comparar o grfico original a um nico grfico gerado a partir de uma distribuio
normal compar-lo a vrios outros grficos utilizando a seguinte funo. Pode ser til clicar no boto
zoom na janela do grfico.

qqnormsim(fdims$hgt)

Exerccio 4 O grfico de probabilidade normal para fdims$hgt parece similar aos grficos
criados para os dados simulados? Quer dizer, os grficos fornecem evidncia de que as alturas
de mulheres so aproximadamente normais?
Exerccio 5 Usando a mesma tcnica, determine se os pesos de mulheres parecem ser provenientes de uma distribuio normal.

Probabilidades Normais
Muito bem, agora voc tem vrias ferramentas para julgar se uma varivel se distribui normalmente. Mas
por que deveramos nos importar?
Acontece que os estatsticos conhecem vrias coisas sobre a distribuio normal. Uma vez que decidimos
que a varivel aleatria aproximadamente normal, podemos responder vrios tipos de perguntas sobre
aquela varivel com relao probabilidade. Por exemplo, a questo: Qual a probabilidade de que uma
mulher adulta jovem escolhida por acaso maior do que 6 ps (cerca de 182 cm)?
Se assumirmos que as alturas de mulheres so distribudas normalmente (uma aproximao tambm
aceitvel), podemos encontrar essa probabilidade calculando um escore Z e consultando uma tabela Z
(tambm denominada de tabela de probabilidade da normal). No R, isto pode ser feito rapidamente com
a funo pnorm.
O estudo que publicou esse conjunto de dados deixa claro que a amostra no foi aleatria e que portanto qualquer inferncia
para a populao em geral no recomendada. Ns fazemos isso aqui apenas como um exerccio.

1 - pnorm(q = 182, mean = fhgtmean, sd = fhgtsd)


Perceba que a funo pnorm d como resultado a rea sob a curva normal abaixo de um certo valor, q, com
uma dada mdia e desvio padro. Uma vez que estamos interessados na probabilidade de que algum
seja maior do que 182 cm, precisamos calcular 1 menos essa probabilidade.
Presumindo uma distribuio normal nos permitiu calcular uma probabilidade terica. Se queremos calcular a probabilidade empiricamente, simplesmente precisamos determinar quantas observaes se encontram acima de 182 e ento dividir este nmero pelo tamanho total da amostra.

sum(fdims$hgt > 182) / length(fdims$hgt)


Apesar das probabilidades no serem exatamente as mesmas, elas esto perto o suficiente. Quanto mais
perto sua distribuio est da normal, mais precisas as probabilidades tericas sero.
Exerccio 6 Elabore duas questes de probabilidade que voc gostaria de responder; uma
com relao altura de mulheres e outra com relao ao peso de mulheres. Calcule essas
probabilidades usando tanto o mtodo terico da distribuio normal quanto a distribuio
emprica (quatro probabilidade no total). Qual varivel, altura ou peso, teve uma concordncia
maior entre os dois mtodos?

Sua Vez
1. Agora vamos analisar outras variveis no conjunto de dados das dimenses corporais. Utilizando
as figuras na prxima pgina, combine os histogramas com seus grficos de probabilidade normal.
Todas as variveis foram estandardizadas (primeiro subtraindo a mdia, e em seguida dividindo pelo
desvio padro), de tal forma que as unidades no sero de qualquer ajuda. Se voc estiver incerto
com base nessas figuras, gere um grfico no R para verificar.
(a) O histograma do dimetro bi-ilaco (plvico) feminino (bii.di) pertence ao grfico de probabilidade normal de letra
.
(b) O histograma do dimetro do cotovelo feminino (elb.di) pertence ao grfico de probabilidade
normal de letra
.
(c) O histograma de idade geral (age) pertence ao grfico de probabilidade normal de letra

(d) O histograma de profundidade do peito feminino (che.de) pertence ao grfico de probabilidade


.
normal de letra
2. Perceba que os grficos de probabilidade normal C e D tem um pequeno padro passo a passo. Por
que voc acha que eles so assim?
3. Como voc pode ver, grficos de probabilidade normal podem ser utilizados tanto para avaliar a
normalidade quanto visualizar a assimetria. Crie um grfico de probabilidade normal para o dimetro do joelho feminino (kne.di). Baseado neste grfico de probabilidade normal, voc diria que
essa varivel simtrica, assimtrica direita ou assimtrica esquerda? Utiliza um histograma para
confirmar seu resultado.

4. Quais conceitos do livro so abordados neste laboratrio? Quais conceitos, se houver algum, que
no so abordados no livro? Voc viu esses conceito em algum outro lugar, p.e., aulas, sees de
discusso, laboratrios anteriores, ou tarefas de casa? Seja especfico em sua resposta.

5
2

4
3

1
2

0
4

20

30

40

Sample Quantiles

60
50

Normal QQ Plot A

10

Frequency

Histogram of female bii.di

sdat

Theoretical Quantiles

Histogram of female elb.di

Normal QQ Plot B

sdat

Theoretical Quantiles

Histogram of general age

Normal QQ Plot C

Sample Quantiles
1

3 2 1

100
50

Theoretical Quantiles

Histogram of female che.de

Normal QQ Plot D

2
1
0
1

10

20

30

40

Sample Quantiles

50

60

sdat

0
2

sdat

Theoretical Quantiles

Frequency

Frequency

Sample Quantiles
2

150

4 3 2 1

40
30
20
0

10

Frequency

50

Laboratrio 4A: Fundamentos para Inferncia Estatstica - Distribuies


Amostrais
Neste laboratrio, investigaremos os meios pelos quais as estatsticas de uma amostra aleatria de dados
podem servir como estimativas pontuais de parmetros populacionais. Estamos interessados em formular
uma distribuio amostral de nossa estimativa para aprender sobre as propriedades da estimativa, como sua
distribuio.

Os Dados
Vamos analisar dados do setor imobilirio da cidade de Ames, no estado de Iowa, Estados Unidos. Os
detalhes de cada transao imobiliria na cidade de Ames registrada pelo escritrio da Secretaria Municipal da Receita da cidade. Nosso foco particular para este laboratrio ser todas as vendas de casa em
Ames entre 2006 e 2010. Essa coleo representa nossa populao de interesse. Neste laboratrio queremos
aprender sobre essas vendas de casa retirando pequenas amostra da populao completa. Vamos importar
os dados.

download.file("http://www.openintro.org/stat/data/ames.RData", destfile = "ames.RData")


load("ames.RData")
Vemos que h muitas variveis em nosso conjunto de dados, o suficiente para realizar uma anlise aprofundada. Para este laboratrio, restringiremos nossa ateno para somente duas variveis: a rea habitvel
da casa acima do nvel do solo em ps quadrados (Gr.Liv.Area) e o preo da venda (SalePrice). Para
economizar esforos ao longo do laboratrio, crie duas variveis com nomes curtos para representar essas
duas variveis do conjunto de dados.

area <- ames$Gr.Liv.Area


price <- ames$SalePrice
Vamos dar uma olhada na distribuio da rea em nossa populao de vendas de casas calculando algumas
estatsticas sumrias e criando um histograma.

summary(area)
hist(area)

Exerccio 1 Descreva a distribuio da populao.

A Distribuio Amostral Desconhecida


Neste laboratrio ns temos acesso populao inteira, mas isso raramente acontece na vida real. Reunir informao sobre uma populao inteira costuma ser muito custoso ou impossvel. Por essa razo,
Este um produto da OpenIntro que distribudo sob uma Licena Creative Commons Atribuio Compartilhamento pela
Mesma Licena 3.0 (http://creativecommons.org/licenses/by-sa/3.0). Este laboratrio foi adaptado para a OpenIntro por Andrew Bray
e Mine etinkaya-Rundel de um laboratrio escrito por Mark Hansen do departamento de Estatstica da UCLA. Traduo para o
portugus por Erikson Kaszubowski.

frequentemente retiramos uma amostra da populao e a utilizamos para compreender propriedades da


populao.
Se estivermos interessados em estimar a rea habitvel mdia na cidade de Ames com base numa amostra,
podemos utilizar o seguite comando para sondar a populao.

samp1 <- sample(area, 50)


Esse comando retira uma amostra aleatria simples de tamanho 50 do vetor area, que atribuda varivel
samp1. como se fssemos ao banco de dados da Secretaria Municipal da Fazendo e retirssemos os
arquivos de 50 vendas de casas aleatoriamente. Trabalhar com esses 50 arquivos seria consideravelmente
mais simples do que lidar com todas as 2930 vendas de casas.
Exerccio 2 Descreva a distribuio desta amostra. Como ela se compara distribuio da
populao?
Se estamos interessados em estimar a rea habitvel mdia nas casas da cidade de Ames utilizando esta
amostra, nossa melhor suposio a mdia da amostra.

mean(samp1)
Dependendo de quais foram as 50 casas que foram sorteadas, sua estimativa como estar um pouco acima
ou abaixo da mdia populacional verdadeira de 1499,69 ps quadrados. De maneira geral, mesmo assim,
a mdia da amostra costuma ser uma estimativa muito boa da mdia da rea habitvel, e ns a obtemos
por meio de uma amostra de menos de 3% da populao.
Exerccio 3 Retire uma segunda amostra, tambm de 50 casos, e a atribua a uma varivel
de nome samp2. Como a mdia de samp2 se compara mdia de samp1? Vamos supor que
retiremos mais duas amostras, uma de de 100 casos e outra de 1000 casos. Qual voc acha que
daria uma estimativa mais precisa da mdia populacional?
No surpreendente que, a cada vez que retiramos uma nova amostra aleatria, obtemos uma mdia
amostral diferente. til ter uma ideia de quanta variabilidade podemos esperar quando estimamos
a mdia populacional desta maneira. A distribuio das mdias amostrais, denominada de distribuio
amostral, pode nos ajudar a compreeder essa variabilidade. Neste laboratrio, uma vez que temos acesso
populao, podemos elaborar a distribuio amostral para a mdia amostral repetindo os passos acima
vrias vezes. Agora geraremos 5000 amostras e calcularemos a mdia amostra de cada uma.

sample_means50 <- rep(0, 5000)


for(i in 1:5000){
samp <- sample(area, 50)
sample_means50[i] <- mean(samp)
}
hist(sample_means50)
Se voc quiser ajustar a largura dos segmento do seu histograma para exibir um pouco mais de detalhes,
voc pode faz-lo mudando o argumento breaks.

hist(sample_means50, breaks = 25)


Ns utilizamos o R para retirar 5000 amostras de 50 casos da populao geral, calcular a mdia de cada
amostra, e registrar cada resultado num vetor denominado sample_means50. Na prxima pgina, compreenderemos como esse conjunto de cdigos funciona.
Exerccio 4 A varivel sample_means50 contm quantos elementos? Descreva a distribuio
amostral, e certifique-se de prestar ateno especificamente em seu centro. Voc acha que a
distribuilo mudaria se coletssemos 50.000 mdias amostrais?

Interldio: O Comando for para Repeties


Vamos nos afastar da estatstica por um momento para comprender melhor o ltimo bloco de cdigo.
Voc acabou de rodar seu primeiro loop, uma repetio de uma mesma sequncia de instrues que
fundamental para a programao de computadores. A ideia por trs do loop a noo de iterao: ele
permite que voc execute um cdigo quantas vezes quiser sem ter que digitar cada iterao. Na caso
acima, ns queramos iterar as duas linhas de cdigo que esto dentro das chaves, que retiram uma
amostra aleatria de 50 casos da varivel area e ento salva a mdia da amostra no vetor sample_means50.
Sem o loop, programar isso seria tedioso:

sample_means50 <- rep(0, 5000)


samp <- sample(area, 50)
sample_means50[1] <- mean(samp)
samp <- sample(area, 50)
sample_means50[2] <- mean(samp)
samp <- sample(area, 50)
sample_means50[3] <- mean(samp)
samp <- sample(area, 50)
sample_means50[4] <- mean(samp)
e assim por diante...
Usando o comando for para implementar um loop, essas milhares de linhas de cdigo so comprimidas
em um punhado de linhas. Adicionamos uma linha extra ao cdigo abaixo, que imprime a varivel i em
cada iterao do loop. Rode este cdigo.

sample_means50 <- rep(0, 5000)


for(i in 1:5000){
samp <- sample(area, 50)
sample_means50[i] <- mean(samp)
print(i)
}
Vamos examinar este cdigo linha a linha para compreender o que ele faz. Na primeira linha ns inicializamos um vetor. Nesse caso, criamos um vetor com 5000 zeros denominado sample_means50. Esse vetor
armazenar os valores gerados dentro do loop.

A segunda linha executa o loop. A sintaxe pode ser lida mais ou menos como, para cada elemento i de 1
a 5000, execute as seguintes linhas de cdigo. Voc pode interpretar o i como um contador que mantm
o registro de qual loop voc est. Portanto, mais precisamente, o loop ser executado uma vez quando i=1,
e ento mais uma vez quando i=2, e assim por diante at i=5000.
A parte principal do loop se encontra dentro das chaves, e esse conjunto de linhas de cdigo executado
para cada valor de i. Aqui, em cada iterao, selecionamos uma amostra aleatria de 50 elementos a
partir da varivel area, calculamos sua mdia, e registramos seu valor como o isimo elemento do vetor
sample_means50.
Para demonstrar que isso est de fato acontecento, pedimos ao R para imprimir o valor de i em cada
iterao. Esta linha de cdigo opcional e usada somente para mostrar o que est acontecendo enquando
o loop do comando for est em execuo.
O loop nos permite no somente rodar o cdigo 5000 vezes, mas tambm armazenar os resultados ordenadamente, elemento por elemento, num vetor vazio que inicializamos nas primeiras linhas.
Exerccio 5 Para certificar que voc compreendeu o que voc fez neste loop, experimente rodar
uma verso menor. Inicialize um vetor com 100 zeros com o nome sample_means_small.
Execute um loop que retira uma amostra de 50 elementos da varivel area e armazena o mdia
amostral no vetor sample_means_small, mas que repete a iterao de 1 a 100. Imprima o
resultado em sua tela (basta digitar sample_means_small no console e pressionar enter). H
quantos elementos no objeto sample_means_small? O que cada elemento representa?

Tamanho da Amostra e Distribuio Amostral


parte dos aspectos mecnicos de programao, vamos retomar a razo pela qual utilizamos o loop do
comando for: para calcular uma distribuio amostral, especificamente, esta aqui:

hist(sample_means50)
A distribuio amostral que calculamos nos informa bastante sobre as estimativas da rea habitvel nas
casas na cidade de Ames. Uma vez que a mdia amostral um estimador no-enviesado, a distribuio
amostral est centrada na verdadeira mdia da rea habitvel da populao, e a disperso da distribuio
indica quanta variabilidade possvel ao se amostra somente 50 vendas de casas.
Para ter uma ideia melhor do efeito do tamanho da amostra na distribuio amostral, vamos construir
mais duas distribuies amostrais: uma baseada numa amostra de 10 elementos e outra baseada numa
amostra de 100.

sample_means10 <- rep(0, 5000)


sample_means100 <- rep(0, 5000)
for(i in 1:5000){
samp <- sample(area, 10)
sample_means10[i] <- mean(samp)
samp <- sample(area, 100)
sample_means100[i] <- mean(samp)
}
Aqui podemos utilizar um nico loop para construir duas distribuies adicionando mais algumas linhas
dentro das chaves. No se preocupe com o fato de que samp utilizado como o nome de dois objetos diferentes. No segundo comando do loop, a mdia de samp salva em seu devido lugar no vetor
sample_means10. Com a mdia j salva, podemos sobrescrever o objeto samp com uma nova amostra,

desta vez de com 100 elementos. De maneira geral, quando voc cria um objeto utilizando um nome que
j est em uso, o objeto antigo ser substitudo pelo novo.
Para verificar o efeito que diferentes tamanhos de amostra tem na distribuio amostral, crie grficos das
trs distribuies, um em cima do outro.

par(mfrow = c(3, 1))


xlimits = range(sample_means10)
hist(sample_means10, breaks = 20, xlim = xlimits)
hist(sample_means50, breaks = 20, xlim = xlimits)
hist(sample_means100, breaks = 20, xlim = xlimits)
O primeiro comando especifica que voc quer dividir a rea do grfico em trs linhas e uma coluna para
cada um dos grficos . O argumento breaks (quebras) especifica o nmero de segmentos utilizados
para construir o histograma. O argumento xlim especifica o intervalo no eixo x no hisograma, e ao definilo como igual a xlimits para cada histograma, certificamo-nos de que todos os trs histogramas sero
criados com os mesmos limites no eixo x.
Exerccio 6 Quando o tamanho da amostra maior, o que acontece com o centro da distribuio? E com a disperso?

Sua Vez
At agora, ns nos ocupamos em estimar a mdia da rea habitvel nas casas do municpio de Ames.
Agora voc tentar estimar a mdia dos preos das casas.
1. Retire uma amostra aleatria de 50 elementos da varivel price (preo). Com essa amostra, qual
sua melhor estimativa pontual para a mdia populacional?
2. J que voc tem acesso populao, simule a distribuio amostral de x price retirando 5000 amostras
de 50 elementos da populao e calculando 5000 mdias amostrais. Armazene essas mdias em um
vetor com o nome sample_means50. Crie um grfico com os resultados, e ento descreva a forma
dessa distribuio amostral. Baseado nessa distribuio amostral, qual seria seu palpite para a mdia
dos preos das casas na populao? Por fim, calcule e informe a mdia populacional.
3. Mude o tamanho da sua amostra de 50 para 150, e ento calcule a distribuio amostral utilizando o
mesmo mtodo descrito acima, e guarde as mdias em um novo vetor com o nome sample_means150.
Descreva a forma dessa distribuio amostral e compare-a com a distribuio amostral para a amostra
de 50 elementos. Com base nessa distribuio amostral, qual seria seu palpite sobre a mdia dos
preos de vendas de casas no municpio de Ames?
4. Das distribuies amostrais calculadas nos exerccios 2 e 3, qual tem menor disperso? Se estamos interessados em estimativas que esto mais prximas do valor verdadeiro, preferiramos uma
distribuio com uma disperso pequena ou grande?
Talvez voc precise esticar um pouco sua janela com os grficos para acomodar os grficos extras. Para retornar para a configurao padro de criar um grfico por vez, rode o seguinte comando:

par(mfrow = c(1, 1))

5. Quais conceitos do livro so abordados neste laboratrio? Quais conceitos, se houver algum, que
no so abordados no livro? Voc viu esses conceito em algum outro lugar, p.e., aulas, sees de
discusso, laboratrios anteriores, ou tarefas de casa? Seja especfico em sua resposta.

Laboratrio 4B: Fundamentos para Inferncia Estatstica - Intervalos de


Confiana
Amostragem de Ames, Iowa
Se voc tem acesso aos dados de um populao inteira, por exemplo o tamanho de cada casa na cidade
de Ames, Iowa, Estado Unidos, fcil e direto responder a questes como Qual o tamanho de uma
casa tpica na cidade de Ames? e Quanta variao existe no tamanho das casas?. Se voc tem acesso
somente a uma amostra da populao, como costuma ser o caso, responder a essas perguntas fica mais
complicado. Qual sua melhor estimativa para o tamanho tpico de uma casa se voc s sabe o tamanho
de algumas dezenas de casas? Esse tipo de situao requer que voc use sua amostra para fazer inferncias
a respeito da populao em geral.

Os Dados
Na laboratrio anterior ns exploramos os dados populacionais das casa da cidade de Ames, Iowa. Vamos
comear carregando esse conjunto de dados.

download.file("http://www.openintro.org/stat/data/ames.RData", destfile = "ames.RData")


load("ames.RData")
Neste laboratrio comearemos com uma amostra aleatria simples de 60 elementos da populao. Perceba
que o conjunto de dados contm informaes sobre vrias variveis relativas s casas, mas para a primeira
parte do laboratrio focaremos no tamanho da casa, representada pela varivel Gr.Liv.Area.

population <- ames$Gr.Liv.Area


samp <- sample(population, 60)

Exerccio 1 Descreva a distribuio da sua amostra. Qual o tamanho tpico dentro da sua
amostra? Procure esclarecer tambm como voc interpretou o significado de tpico.
Exerccio 2 Voc acha que a distribuio de outro aluno seria idntica a sua? Voc acha que
ela seria similar? Por qu, ou por qu no?

Intervalos de Confiana
Uma das maneiras mais comuns para se descrever o valor tpico ou central de uma distribuio por meio
da mdia. Neste caso podemos calcular a mdia da amostra utilizando

sample_mean <- mean(samp)


Este um produto da OpenIntro que distribudo sob uma Licena Creative Commons Atribuio Compartilhamento pela
Mesma Licena 3.0 (http://creativecommons.org/licenses/by-sa/3.0). Este laboratrio foi adaptado para a OpenIntro por Andrew Bray
e Mine etinkaya-Rundel de um laboratrio escrito por Mark Hansen do departamento de Estatstica da UCLA. Traduo para o
portugus por Erikson Kaszubowski.

Retome agora a pergunta que motivou este laboratrio: baseado nesta amostra, o que podemos inferir
sobre a populao? Baseado apenas nesta nica amostra, a melhor estimativa da rea habitacional das
casas vendidas em Ames seria a mdia amostral, geralmente representada como x (aqui denominaremos
de sample_mean (mdia amostral)). A mdia amostral serve como uma boa estimativa pontual, mas seria
interessante tambm deixar claro quanta incerteza temos desta estimativa. Isso pode ser feito pelo uso de
um intervalo de confiana.
Podemos calcular um intervalo de confiana de 95% para a mdia amostral adicionando e subtraindo 1.96
erros padro da estimativa pontual.

se <- sd(samp)/sqrt(60)
lower <- sample_mean - 1.96 * se
upper <- sample_mean + 1.96 * se
c(lower, upper)
Acabamos de fazer uma inferncia importante: mesmo que no saibamos como a populao inteira se
distribui, temos 95% de confiana de que a mdia verdadeira do tamanho das casas em Ames se encontra
entre os valores lower (limite inferior do intervalo de confiana) e upper (limite superior do intervalo
de confiana). Contudo, existem algumas condies que precisam ser atendidas para esse intervalo ser
vlido.
Exerccio 3 Para o intervalos de confiana
ser vlido, a mdia amostral precisa ter distribuio
normal e ter um erro padro igual a s/ n. Quais condies precisam ser atendidas para isso
ser verdadeiro?

Nveis de Confiana
Exerccio 4 O que significa 95% de confiana? Se voc no tem certeza, retome a Seo 4.2.2.
Neste caso ns temos a comodidade de saber a verdadeira mdia populacional, uma vez que temos os
dados da populao inteira. Este valor pode ser calculado utilizando o seguinte comando:

mean(population)

Exerccio 5 O seu intervalo de confiana contm a verdadeira mdia do tamanho das casas em
Ames? Se voc est trabalhando neste laboratrio em uma sala de aula, o intervalo de seus
colegas tambm contm esse valor?
Exerccio 6 Cada aluno de sua turma deve ter obtido um intervalo de confiana um pouco
diferente. Que proporo desses intervalos voc espera que contenha a verdadeira mdia
populacional? Por qu? Se voc est trabalhando neste laboratrio em um sala de aula, rena
informaes sobre os intervalos criados pelos outros alunos da turma e calcule a proporo de
intervalos que contm a verdadeira mdia populacional.
Utilizando o R, vamos criar vrias amostra para aprender um pouco mais a respeito de como as mdias
Confira

a seo 4.2.3 se voc no est familiarizado com essa frmula.

amostrais e os intervalos de confiana variam de uma amostra para outra. Loops so teis para isso.
Eis o esboo do processo:
(1) Obter uma amostra aleatria.
(2) Calcular a mdia e o desvio padro da amostra.
(3) Utilizar estas estatsticas para calcular um intervalos de confiana.
(4) Repetir as etapas (1)-(3) 50 vezes.
Mas antes de implementar esse processo, precisamos primeiro criar vetores vazios nos quais possamos
salvar as mdias e desvios padro que sero calculados para cada amostra. Ao mesmo tempo, vamos
tambm armazenar o tamanho da amostra como n.

samp_mean <- rep(NA, 50)


samp_sd <- rep(NA, 50)
n <- 60
Agora estamos prontos para o loop, com o qual calculamos as mdias e desvios padro de 50 amostras
aleatrias.

for(i in 1:50){
samp <- sample(population, n) # obtm uma amostra de n = 60 elementos da populao
samp_mean[i] <- mean(samp)
# salva a mdia amostral no i-simo elemento de samp_mean
samp_sd[i] <- sd(samp)
# salva o dp da amostra como o i-simo elemento de samp_sd
}
Por fim, construmos os intervalos de confiana.

lower_vector <- samp_mean - 1.96 * samp_sd / sqrt(n)


upper_vector <- samp_mean + 1.96 * samp_sd / sqrt(n)
Os limites inferiores destes 50 intervalos de confiana so armazenados na vetor lower_vector, e o limites
superiores so armazenados no vetor upper_vector. Vamos visualizar o primeiro intervalo.

c(lower_vector[1],upper_vector[1])

Sua Vez
1. Utilizando a seguinte funo (que foi carregada junto com o conjunto de dados), crie grficos de todos
os intervalos. Que proporo dos intervalos de confiana contm a verdadeira mdia populacional?
Se

voc no est familiarizado com loops, revise o Laboratrio 4A.

Essa proporo exatamente igual ao nvel de confiana? Se no, explique por qu.

plot_ci(lower_vector, upper_vector, mean(population))


2. Escolha um intervalo de confiana de sua preferncia, desde que no seja de 95%. Qual o valor
crtico apropriado?
3. Calcule 50 intervalos de confiana utilizando o nvel de confiana que voc escolheu na questo anterior. Voc no precisa obter novas amostras: simplesmente calcule os novos intervalos baseado nas
mdias amostrais e desvios padro que voc j coletou. Utilizando a funo plot_ci, crie grficos de
todos os intervalos e calcule a proporo de intervalos que contm a verdadeira mdia populacional.
Compare essa proporo com o nvel de confiana escolhido para os intervalos.
4. Quais conceitos do livro so abordados neste laboratrio? Quais conceitos, se houver algum, que
no so abordados no livro? Voc viu esses conceito em algum outro lugar, p.e., aulas, sees de
discusso, laboratrios anteriores, ou tarefas de casa? Seja especfico em sua resposta.

Essa

figura pode parecer familiar (Verifique a Seo 4.2.2.)

Laboratrio 5: Inferncia para Dados Numricos


Nascimentos na Carolina do Norte
Em 2004, o estado da Carolina do Norte, Estado Unidos, disponibilizou um grande conjunto de dados
contendo informaes sobre os nascimentos registrados no estado. Esse conjunto de dados til para
pesquisadores que estudam a relao entre hbitos e prticas de gestantes e o nascimento de seus filhos.
Ns trabalharemos com uma amostra aleatria das observaes deste conjunto de dados.

Anlise Exploratria
Carregue o conjunto de dados nc em seu espao de trabalho.

download.file("http://www.openintro.org/stat/data/nc.RData", destfile = "nc.RData")


load("nc.RData")
Temos dados de 13 variveis diferentes, algumas categoriais e outras numricas. Cada varivel representa
as seguintes informaes:
fage
mage
mature
weeks
premie
visits
marital
gained
weight
lowbirthweight
gender
habit
whitemom

idade do pai em anos.


idade da me em anos.
maioridade da me.
durao da gestao em semanas.
se o nascimento classificado como prematuro ou a termo.
nmero de visitas hospitalares durante a gravidez.
se a me estava casada (married) ou solteira (not married) no momento do nascimento.
peso ganho pela me durante a gravidez, em libras.
peso do beb no nascimento, em libras.
se o beb foi classificado como tendo baixo peso ao nascer (low) ou no (not low).
sexo do beb, feminino (female) ou masculino (male).
se a me no-fumante (nonsmoker) ou fumante (smoker).
se a me branca (white) ou no-branca (not white).

Exerccio 1 Quais so os casos neste conjunto de dados? H quantos casos em nossa amostra?
Como um primeiro passo na anlise, devemos levar em considerao alguns sumrios dos dados. Isso
pode ser feito utilizando o comando summary (sumrio):

summary(nc)
Enquanto voc confere os sumrios das variveis, considere quais variveis so categoriais e quais so
numricas. Para as variveis numricas, h algum caso atpico, um outlier? Se voc no tem certeza ou
quer dar uma olhada mais aprofundada nos dados, crie um grfico.
Considere a possibilidade de uma relao entre o hbito de fumar da me e o peso de seu beb. Criar um
grfico com os dados uma etapa til porque nos ajuda a visualizar tendncias rapidamente, identificar
associaes fortes, e elaborar questes de pesquisa.
Este um produto da OpenIntro que distribudo sob uma Licena Creative Commons Atribuio Compartilhamento pela
Mesma Licena 3.0 (http://creativecommons.org/licenses/by-sa/3.0). Este laboratrio foi adaptado para a OpenIntro por Andrew Bray
e Mine etinkaya-Rundel de um laboratrio escrito por Mark Hansen do departamento de Estatstica da UCLA. Traduo para o
portugus por Erikson Kaszubowski.

Exerccio 2 Crie um grfico de caixas lado-a-lado das variveis habit (hbito) e weight (peso).
O que o grfico revela sobre a relao entre essas duas variveis?
O grfico de caixas permite comparar as medianas das distribuies, mas podemos tambm comparar as
mdias das distribuies utilizando a seguinte funo para dividir a varivel weight nos grupos definidos
pela varivel habit, e ento calcular a mdia de cada um utilizando a funo mean.

by(nc$weight, nc$habit, mean)


H uma diferena evidente, mas essa diferena estatisticamente significante? Para responder a essa
questo, vamos realizar um teste de hiptese.

Inferncia
Exerccio 3 Verifique se as condies necessrias para realizar a inferncia so atendidas.
Perceba que voc precisar obter o tamanho das amostras para verificar as condies. Voc
pode calcular o tamanho dos grupos utilizando o mesmo comando by utilizado acima, mas
substituindo a funo mean pela funo length.
Exerccio 4 Escreva as hipteses para testar se a mdia dos pesos dos bebs que nasceram de
mes fumantes diferente daqueles que nasceram de mes no fumantes.
Em seguida, utilizaremos uma nova funo, inference, que ser utilizada para realizar os testes de hiptese e para construir os intervalos de confiana.

inference(y = nc$weight, x = nc$habit, est = "mean", type = "ht", null = 0,


alternative = "twosided", method = "theoretical")
Vamos com calma para analisar cada argumento desta funo personalizada.
O primeiro argumento y, que a varivel resposta na qual estamos interessados: nc$weight (peso).
O segundo argumento a varivel explicativa, x, que a varivel que divide os dados em dois
grupos, fumantes e no fumantes: nc$habit.
O terceiro argumento, est, o parmetro no qual estamos interessados: "mean" (mdia) (h outras
opes: "median" (mediana), ou "proportion" (proporo)).
Em seguida decidimos sobre o tipo de inferncia que queremos (type): um teste de hiptese ("ht")
ou um intervalo de confiana ("ci").
Quando realizamos um teste de hiptese, tambm precisamos informar o valor nulo (null), que neste
caso 0, j que a hiptese nula supe que as duas mdias populacionais so iguais uma a outra.
A hiptese alternativa (alternative) pode ser "less" (menor), "greater" (maior), ou "twosided"
(bi-caudal).
Por fim, o mtodo (method) de inferncia pode ser "theoretical" (terico) ou "simulation" (baseado em simulaes).
Exerccio 5 Mude o argumento type (tipo) para "ci" para construir e registrar um intervalo
de confiana para a diferena entre os pesos dos beb que nasceram de mes fumantes e no
fumantes.

Por padro, a funo utilizada informa um intervalo para a diferena (n a o f umante f umante ) (a diferena
entre mdias dos dois grupos). Podemos mudar facilmente essa ordem utilizando o argumento order
(ordem):

inference(y = nc$weight, x = nc$habit, est = "mean", type = "ci", null = 0,


alternative = "twosided", method = "theoretical",
order = c("smoker","nonsmoker"))

Sua Vez
1. Calcule o intervalo de confiana de 95% para a durao mdia das gravidezes (weeks) e o interprete
no contexto do conjunto de dados. Perceba que, uma vez que voc est realizando uma inferncia
sobre um nico parmetro populacional, no h nenhuma variveis explanatria, e portanto voc
pode omitir a varivel x da funo.
2. Calcule um novo intervalo de confiana para o mesmo parmetro com nvel de confiana de 90%.
Voc pode mudar o nvel de confiana adicionando um novo argumento funo: conflevel =0.90.
3. Realize um teste de hiptese para avaliar se o a mdia do peso ganho pelas mes mais jovens
diferente da mdia de peso ganho pelas mes mais velhas.
4. Agora, um tarefa no-inferencial: determine o ponto de corte da idade das mes jovens e maduras.
Utilize um mtodo da sua escolha, e explique como seu mtodo funciona.
5. Escolha um par de variveis, sendo uma numrica e outra categorial, e desenvolva um pergunta de
pesquisa para avaliar a relao entre essas variveis. Formule a questo de maneira que ela possa ser
respondida utilizando um teste de hiptese e/ou um intervalo de confiana. Responda a sua questo
utilizando a funo inference, informe os resultados estatsticos, e tambm elabora uma explicao
em linguagem simples.
6. Quais conceitos do livro so abordados neste laboratrio? Quais conceitos, se houver algum, que
no so abordados no livro? Voc viu esses conceito em algum outro lugar, p.e., aulas, sees de
discusso, laboratrios anteriores, ou tarefas de casa? Seja especfico em sua resposta.

Laboratrio 6: Inferncia para Dados Categoriais


Em agosto de 2012, agncias de notcias como Washington Post e o Huffington Post publicaram reportagens
sobre o aumento do atesmo na Amrica do Norte. A fonte da reportagem foi uma pesquisa que perguntou
s pessoas, Independente de voc frequentar algum culto religioso ou no, voc diria que voc uma
pessoa religiosa, no uma pessoa religiosa ou um ateu convicto? Esse tipo de pergunta, que pede
para as pessoas se classificarem de uma forma ou outra, comum em pesquisas de opinio e gera dados
categoriais. Neste laboratrio vamos explorar a pesquisa sobre atesmo e investigar o que est em jogo
quando fazemos inferncias sobre propores populacionais utilizando dados categoriais.

A Pesquisa de Opinio
Para acessar o comunicado imprensa da pesquisa de opinio, realizada pela WIN-Gallup International,
clique no link abaixo:
http://www.wingia.com/web/files/richeditor/filemanager/Global_INDEX_of_Religiosity_and_Atheism_PR__6.pdf
Revise com cuidado as informaes do relatrio e ento tente resolver as seguintes questes:
Exerccio 1 No primeiro pargrafo, vrios resultados importantes so relatados. Essas porcentagens parecem ser estatsticas amostrais (derivadas dos dados da amostra) ou parmetros
populacionais?
Exerccio 2 O ttulo do relatrio ndice Global de Religiosidade e Atesmo (Global Index
of Religiosity and Atheism). Para generalizar os resultados do relatrio para a populao humana global, o que devemos assumir a respeito do mtodo amostral? Parece ser uma suposio
razovel?

Os Dados
Preste ateno na Tabela 6 (pginas 15 e 16), que informa o tamanho da amostra e o percentual de respostas
de todos os 57 pases que fizeram parte da pesquisa. Mesmo sendo um formato til para resumir os dados,
basearemos nossas anlises no conjunto de dados original das respostas individuais pesquisa. Carregue
esse conjunto de dados no R utilizando o seguinte comando.

download.file("http://www.openintro.org/stat/data/atheism.RData", destfile = "atheism.RData")


load("atheism.RData")

Exerccio 3 A que corresponde cada linha da Tabela 6? A que corresponde cada linha do banco
de dados atheism (atesmo)?
Para investigar o elo entre essas duas maneiras de organizar esses dados, d uma olhada na proporo
estimada de ateus nos Estados Unidos. Perto do fim da Tabela 6, verificamos que 5%. Devemos ser
capazes de chegar ao mesmo nmero usando o banco de dados atheism.
Exerccio 4 Utilizando o comando abaixo, crie um novo banco de dados denominado us12 que
contm apenas as linhas do banco de dados atheism associadas aos respondentes da pesquisa
Este um produto da OpenIntro que distribudo sob uma Licena Creative Commons Atribuio Compartilhamento pela
Mesma Licena 3.0 (http://creativecommons.org/licenses/by-sa/3.0). Este laboratrio foi adaptado para a OpenIntro por Andrew Bray
e Mine etinkaya-Rundel de um laboratrio escrito por Mark Hansen do departamento de Estatstica da UCLA. Traduo para o
portugus por Erikson Kaszubowski.

realizada em 2012 nos Estados Unidos. Em seguida, calcule a proporo de respostas dos que
se afirmam ateus. Ela semelhante porcentagem da Tabela 6? Se no, por qu?

us12 <- subset(atheism, atheism$nationality == "United States" & atheism$year == "2012")

Inferncia de Propores
Como foi sugerido pelo Exerccio 1, a Tabela 6 apresenta estatsticas, ou seja, clculos feitos a partir da
amostra de 51.927 pessoas. O que ns gostaramos, porm, obter informaes sobre os parmetros populacionais. Voc pode responder pergunta Qual a proporo de pessoas na amostra que informaram
serem ateus? com uma estatstica; por outro lado, uma questo como Qual a proporo de pessoas na
Terra que informariam serem ateus? respondida com uma estimativa do parmetro.
As ferramentas inferenciais para estimar propores populacional so anlogas quelas utilizadas para as
mdias no ltimo laboratrio: o intervalo de confiana e o teste de hiptese.
Exerccio 5 Descreva as condies para inferncia necessrias para construir um intervalo de
confiana de 95% para a proporo de ateus nos Estados Unido em 2012. Voc est confiante
de que todas as condies so atendidas?
Se as condies para inferncia so razoveis, podemos calcular o erro padro e construir o intervalo de
confiana manualmente, ou deixar que a funo inference faa isso por ns.

inference(y = us12$response, est = "proportion", type = "ci", method = "theoretical",


success = "atheist")
Perceba que, uma vez que o objetivo construir uma estimativa intervalar para uma proporo, necessrio especificar o que constitui um sucesso, que nesse caso a resposta atheist (ateu).
Apesar de intervalos de confiana formais e testes de hiptese no aparecerem no relatrio, sugestes de
inferncia aparecem no final da pgina 7: Em geral, a margem de erro para pesquisas de opinio deste
tipo de 3 5% com 95% de confiana.
Exerccio 6 Com base nos resultados do R, qual a margem de erro para a estimativa da
proporo de ateus nos EUA em 2012?
Exerccio 7 Utilizando a funo inference, calcule os intervalos de confiana para a proporo
de ateus em 2012 para dois outros pases de sua escolha, e informe as margens de erro associadas a eles. Certifique-se de observar se as condies para inferncia so atendidas. Pode ser
til primeiro criar novos conjuntos de dados para cada um dos dois pases, e ento usar essas
conjuntos de dados junto com a funo inference para construir os intervalos de confiana.

Como a Proporo Afeta a Margem de Erro?


Imagine que voc fez um levantamento com 1000 pessoas a respeito de duas questes: voc mulher? E
voc canhoto? Uma vez que ambas as propores amostrais foram calculadas a partir de um mesmo
tamanho de amostra, elas devem ter a mesma margem de erro, certo? Errado! Apesar da margem de erro
mudar em relao ao tamanho da amostra, ela tambm afetada pela proporo.
p
Lembre-se da frmula para calcular o erro padro: EP =
p(1 p)/n. O resultado utilizado na
frmula para calcular a margem de erro para um intervalo de confiana de 95%: ME = 1.96 EP =

p
1.96 p(1 p)/n. J que a proporo populacional p se encontra na frmula para calcular o ME, faz
sentido que a margem de erro depende, de alguma forma, da proporo populacional. Podemos visualizar
essa relao criando um grfico relacionando ME com p.
O primeiro passo criar um vetor p, que uma sequncia de 0 a 1 com cada nmero separado por 0, 01.
Podemos ento criar um vetor para a margem de erro (me), associando com cada um dos palores de p
utilizando a frmula aproximada j conhecida (ME = 2 SE). Por fim, fazemos um grfico com os dois
vetores para revelar a relao entre eles.

n <- 1000
p <- seq(0, 1, 0.01)
me <- 2*sqrt(p*(1 - p)/n)
plot(me ~ p)

Exerccio 8 Descreva a relao entre p e me.

Condio de Sucesso ou Fracasso


O livro enfatiza que voc deve sempre verificar as condies antes de fazer qualquer inferncia. Para
inferncia de propores, a proporo amostral pode ser considerada como se distribuindo de maneira
aproximadamente normal se for baseada numa amostra aleatria de observaes independentes e se np
10 e n(1 p) 10. Essa regra geral fcil o suficiente de ser seguida, mas deixa aberta a questo: o que
h de to especial com o nmero 10? A resposta mais curta : nada. Voc pode argumentar que estaramos
bem com 9 ou que deveramos utilizar 11. O melhor valor para essa regra geral , pelo menos em alguma
medida, arbitrrio.
Podemos investigar as relaes entre n e p e a forma da distribuio amostral utilizando simulaes.
Para comear, simulamos o processo de retirar 5000 amostra de 1040 elementos de uma populao com a
verdadeira proporo de ateus igual a 0.1. Para cada uma das 5000 amostras, calculamos p e ento criamos
um histograma para visualizar sua distribuio.

p <- 0.1
n <- 1040
p_hats <- rep(0, 5000)
for(i in 1:5000){
samp <- sample(c("atheist", "non_atheist"), n, replace = TRUE, prob = c(p, 1-p))
p_hats[i] <- sum(samp == "atheist")/n
}
hist(p_hats, main = "p = 0.1, n = 1040", xlim = c(0, 0.18))
Esses comandos constroem a distribuio amostral de p_hats por meio do loop do comando for que j
nos familiar. Voc pode pode ler o procedimentos amostral da primeira linha de cdigo dentro do loop
como retire uma amostra com reposio de n elementos a partir das opes de ateu e no-ateu com
probabilidades p e 1 p, respectivamente. A segunda linha do loop diz calcule a proporo de ateus
nesta amostra e registre e valor. O loop nos permite repetir esse processo 5.000 vezes para construir uma
boa representao da distribuio amostral.
Exerccio 9 Descreva a distribuio amostral da proporo com n = 1040 e p = 0.1. Certifiquese de identificar seu centro, disperso e forma.
Dica: Lembre-se que o R tem funes como mean para calcular estatsticas descritivas.

Exerccio 10 Repita a simulao acima mais trs vezes mas com diferentes tamanhos de amostra e propores: com n = 400 e p = 0.1, n = 1040 e p = 0.02, e n = 400 e p = 0.02.
Crie histogramas para as quatro distribuies e exiba-os em conjunto utilizando o comando
par(mfrow = c(2,2)). Talvez voc precise expandir a janela do grfico para acomodar o grfico maior. Descreva as trs distribuies amostrais novas. Com base nesses grficos limitados,
Como que p afeta a distribuio amostral?
como que n parece afetar a distribuio de p?
Depois de terminar, voc pode resetar a disposio da janela de grfico utilizando o comando par(mfrow
= c(1,1)) ou clicando no boto Clear All (Limpar Tudo) logo acima da janela de grficos (se estiver
usando o RStudio). Preste ateno pois a ltima opo ir apagar todos os grficos anteriores.
Exerccio 11 Se voc retomar a Tabela 6, ver que a Austrlia tem uma proporo amostral
de 0,1 numa amostra de 1040, e que o Equador tem uma proporo amostral de 0,02 com
400 sujeitos. Vamos supor, para esse exerccio, que essas estimativas pontuais so verdadeiras.
Dada a forma de suas respectivas distribuies amostrais, voc acha razovel efetuar inferncia
e informar a margem de erros, como o relatrio faz?

Sua Vez
A questo sobre o atesmo foi tambm feita pelo WIN-Gallup International numa pesquisa de opinio
parecida realizada em 2005. A Tabela 4 na pgina 13 do relatrio resume os resultados da pesquisa de
2005 a 2012 em 29 pases.
1. Responda s duas perguntas seguintes utilizando a funo inference. Como sempre, descreva as
hipteses para qualquer teste que voc realizar e esboce sobre as condies para inferncia.
(a) H evidncia convincente de que a Espanha teve uma mudana em seu ndice de atesmo entre
2005 e 2012?
Dica: Crie um novo conjunto de dados para os respondentes da Espanha. Depois, utilize suas
respostas como a primeira entrada na funo inference, e utilize a varivel year (ano) para
definir os grupos.
(b) H evidncia convincente de que os Estados Unidos tiveram uma mudana em seu ndice de
atesmo entre 2005 e 2012?
2. Se de fato no houve nenhuma mudana no ndice de atesmo nos pases listados na Tabela 4, em
quantos pases voc esperar detectar uma mudana (com um nvel de significncia de 0,05) simplesmente por acaso?
Dica: Procure no ndice do livro sobre erros do Tipo 1.
3. Suponha que voc foi contratado pelo governo local para estimar a proporo de residentes que
participam de cultos religiosos semanalmente. De acordo com diretrizes, a estimativa deve ter uma
margem de erro inferior a 1% com nvel de confiana de 95%. Voc no tem nenhuma noo de que
valor supor para p. Quanto pessoas voc teria que amostrar para garantir que voc est dentro das
diretrizes?
Dica: Retome seu grfico da relao entre p e a margem de erro. No use o conjunto de dados para
responder a essa questo.
4. Quais conceitos do livro so abordados neste laboratrio? Quais conceitos, se houver algum, que
no so abordados no livro? Voc viu esses conceito em algum outro lugar, p.e., aulas, sees de
discusso, laboratrios anteriores, ou tarefas de casa? Seja especfico em sua resposta.

Assumimos

aqui que o tamanho das amostras permaneceram iguais.

Laboratrio 7: Introduo Regresso Linear


Preparao
O filme O Homem que Mudou o Jogo (Moneyball) aborda a busca pelo segredo do sucesso no beisebol. O
filme conta a histria de um time de baixo oramento, o Oakland Athletics, que acreditava que estatsticas
pouco utilizadas, tal como a habilidade de um jogador chegar a uma base, prediziam melhor a habilidade
de marcar pontos do que estatsticas mais comuns, como home runs, RBIs (runs batted in, pontos feitos
quando um jogador estava rebatendo), e mdia de rebatidas. Contratar jogadores que se destacavam
nessas estatsticas pouco utilizadas se mostrou muito mais econmico para o time.
Neste laboratrio exploraremos os dados de todos os 30 times da Liga Principal de Beisebol dos Estados
Unidos e examinaremos a relao linear entre pontos marcados numa temporada e vrias outras estatsticas
dos jogadores. Nosso objetivo ser resumir essas relaes de maneira visual e numrica para identificar
qual varivel, se houver alguma, melhor nos ajuda a predizer os pontos marcados por um time numa
temporada.

Os Dados
Vamos carregar os dados da temporada de 2011.

download.file("http://www.openintro.org/stat/data/mlb11.RData", destfile = "mlb11.RData")


load("mlb11.RData")
Alm dos pontos marcados, este conjunto de dados contm sete variveis tradicionalmente utilizadas: vez
ao taco (at-bats), rebatidas (hits), home runs, mdia de rebatidas (batting average), eliminaes (strikeouts),
roubos de bases (stolen bases), e vitrias . Tambm foram includas trs novas variveis: percentual de
alcance de base (on-base percentage), percentual de potncia (slugging percentage), e alcance de base mais potncia (on-base plus slugging). Para a primeira parte da anlise consideraremos as sete variveis tradicionais.
Ao final do laboratrio, voc trabalhar com as novas variveis por conta prpria.
Exerccio 1 Que tipo de grfico voc utilizaria para mostrar a relao entre runs (pontos) e
alguma outra varivel numrica? Crie um grfico dessa relao utilizando a varivel at_bats
como preditora. A relao parece ser linear? Se voc soubesse o valor de at_bats (vez ao taco)
de um time, voc se sentiria confiante para utilizar um modelo linear para predizer o nmero
de pontos (runs)?
Se a relao parece ser linear, podemos quantificar a fora da relao utilizando o coeficiente de correlao.

cor(mlb11$runs, mlb11$at_bats)

Este um produto da OpenIntro que distribudo sob uma Licena Creative Commons Atribuio Compartilhamento pela
Mesma Licena 3.0 (http://creativecommons.org/licenses/by-sa/3.0). Este laboratrio foi adaptado para a OpenIntro por Andrew Bray
e Mine etinkaya-Rundel de um laboratrio escrito por Mark Hansen do departamento de Estatstica da UCLA. Traduo para o
portugus por Erikson Kaszubowski.
Apesar de no ser necessrio para acompanhar o laboratrio, se voc quiser se familiarizar com as regras do beisebol e com
as estatsticas mais utilizadas, visite http://en.wikipedia.org/wiki/Baseball_rules e http://en.wikipedia.org/wiki/Baseball_statistics. Como os
termos usuais nem sempre tem um traduo exata para o portugus, manterei entre parnteses o termo original em ingls (N. do T.).

Soma dos Quadrados dos Resduos


Recorde como descrevemos a distribuio de uma nica varivel. Lembre-se que discutimos caractersticas
como tendncia central, disperso e forma. Tambm til poder descrever a relao entre duas variveis
numricas, como fizemos acima com as variveis runs (pontos) e at_bats (vez ao taco).
Exerccio 2 Examinando os grficos do exerccio anterior, descreva a relao entre essas duas
variveis. Certifique-se de discutir a forma, a direo e a fora da relao, bem como quaisquer
caractersticas incomuns.
Assim como utilizamos a mdia e o desvio padro para resumir caractersticas importantes de uma nica
varivel, podemos resumir a relao entre essas duas variveis por meio de uma linha que melhor descreve
sua associao. Utilize a seguinte funo interativa para selecionar a linha que voc acha que cruza a nuvem
de pontos da melhor maneira.

plot_ss(x = mlb11$at_bats, y = mlb11$runs)


Depois de executar esse comando, voc ser solicitado a clicar em dois ponto no grfico para definir uma
linha. Depois que voc fizer isso, a linha que voc especificou ser mostrada na cor preta e os resduos na
cor azul. Perceba que h 30 resduos, um para cada uma das 30 observaes. Lembre-se que os resduos
so a diferena entre os valores observados e o valor predito pela linha:
ei = yi yi
A maneira mais comum de se fazer uma regresso linear selecionar a linha que minimiza a soma dos
quadrados dos resduos. Para visualizar o quadrado dos resduos, voc pode rodar novamente o comando
de gerao do grfico e adicionar o argumento showSquares = TRUE.

plot_ss(x = mlb11$at_bats, y = mlb11$runs, showSquares = TRUE)


Perceba que o resultado da funo plot_ss fornece a inclinao (coeficiente angular) e o intercepto da sua
linha, bem como a soma dos quadrados.
Exerccio 3 Utilizando a funo plot_ss, escolha uma linha que consiga minimizar a soma
dos quadrados. Rode a funo vrias vezes. Qual foi a menor soma dos quadrados que voc
obteve? Compare-a com os resultados obtidos por outros alunos.

O Modelo Linear
bastante cansativo tentar obter a linha dos mnimos quadrados, ou seja, a linha que minimiza a soma
dos quadrados dos resduos, por meio de tentativa e erro. Ao invs disso, podemos utilizar a funo lm
no R para ajustar o modelo linear (tambm conhecido como linha de regresso).

m1 <- lm(runs ~ at_bats, data = mlb11)


O primeiro argumento da funo lm a frmula descrita como yx. Aqui ela pode ser entendida como
obtenha o modelo linear de runs (pontos) em funo de at_bats (vez ao taco). O segundo argumento
especifica que o R deve buscar no banco de dados mlb11 as variveis runs e at_bats.

O resultado da funo lm um objeto que contm todas as informaes que precisamos sobre o modelo
linear que acabamos de ajustar. Podemos acessar essa informao utilizando a funo summary.

summary(m1)
Vamos analisar o resultado passo a passo. Primeiramente, a frmula utilizada para descrever o modelo
apresentada no comeo. Depois da frmula voc ver o resumo de cinco nmeros dos resduos. A tabela
Coefficients (coeficientes) apresentada em seguida central; sua primeira coluna apresenta o intercepto
de y do modelo linear e o coeficiente da varivel at_bats. Com essa tabela, podemos descrever a linha de
regresso de mnimos quadrados para o modelo linear:
y = 2789.2429 + 0.6305 atbats
Uma ltima informao que abordaremos do resultado da funo summary o R-quadrado Mltiplo, ou
de maneira abreviada, R2 . O valor do R2 representa a proporo de variabilidade na varivel desfecho que
explicada pela varivel explicatria. Neste modelo, 37,7% da variabilidade dos pontos (runs) explicada
pela vez ao taco (at-bats).
Exerccio 4 Ajuste um novo modelo que utilize a varivel homeruns para predizer runs (pontos). Utilizando as estimativas dos resultados do R, escreva a equao da linha de regresso.
O que a inclinao (coeficiente angular) nos diz sobre a relao entre o sucesso de um time e
seus home runs?

Predio e Erro de Predio


Vamos criar uma grfico de disperso com a linha dos mnimos quadrados disposta junto com os pontos.

plot(mlb11$runs ~ mlb11$at_bats)
abline(m1)
A funo abline traa uma linha baseada em sua inclinao e intercepto. Aqui, utilizamos um atalho
fornecendo o modelo m1, que contm as estimativas do dois parmetros. Essa linha pode ser utilizada para
predizer y a partir de qualquer valor de x. Quando so feitas predies para valores de x que esto alm
do intervalo dos dados observados, denominamos essas predies de extrapolaes e geralmente no algo
recomendvel. Contudo, predies feitas dentro do intervalo dos dados so mais confiveis. Elas tambm
so utilizadas para calcular os resduos.
Exerccio 5 Se o gerente de um time visse a linha de regresso dos mnimos quadrados e
no os dados reais, quantos ponto (runs) ele prediria para um time com 5.578 vezes ao taco
(at-bats)? Esse valor superestima ou subestima o valor real, e por quanto? Em outras palavras,
qual o resduo para essa predio?

Diagnsticos do Modelo
Para avaliar se um modelo linear confivel, precisamos verificar (1) a linearidade, (2) resduos normalmente distribudos, e (3) varincia constante.
(1) Linearidade: Voc j verificou se a relao entre pontos (runs) e vezes ao taco (at-bats) linear utilizando
o grfico de disperso. Deveramos tambm verificar essa condio utilizando um grfico de resduos
3

em funo da varivel vez ao taco (at-bats). Lembre-se que todo cdigo aps um # um comentrio
para auxiliar a compreender o cdigo e ignorado pelo R.

plot(m1$residuals ~ mlb11$at_bats)
abline(h = 0, lty = 3)

# adiciona uma linha pontilhada horizontal em y = 0

Exerccio 6 H algum padro aparente do grfico de resduos? O que isso indica sobre a
linearidade da relao entre pontos (runs) e vezes ao taco (at-bats)?
(2) Resduos normalmente distribudos: Para verificar essa condio, podemos conferir o histograma dos
resduos:

hist(m1$residuals)
ou um grfico de probabilidade normal dos resduos.

qqnorm(m1$residuals)
qqline(m1$residuals)

# adiciona uma linha diagonal ao grfico de probabilidade normal

Exerccio 7 Com base no histograma e no grfico de probabilidade normal, a condio de


distribuio normal dos resduos parece ser atendida?
(3) Varincia constante:
Exerccio 8 Com base no grfico criado em (1), a condio de varincia constante parece ser
atendida?

Sua Vez
1. Escolha outra varivel tradicional contida no banco de dados mlb11 que voc acha que poderia ser
um bom preditor da varivel runs (pontos). Crie um grfico de disperso das duas variveis e ajuste
um modelo linear. Visualmente, parece haver uma relao linear?
2. Compare essa relao com a relao entre runs (pontos) e at_bats (vez ao taco). Utilize os valores
R2 do sumrio dos dois modelos para compar-los. A varivel que vocs escolheu parece predizer
runs (pontos) melhor do que at_bats (vez ao taco)? Como voc justificaria sua resposta?
3. Agora que voc pode resumir a relao linear entre duas variveis, investigue a relao entre runs
(pontos) e cada uma das outras cinco variveis tradicionalmente utilizadas no beisebol. Qual varivel
prediz melhor o valor de runs? Justifique sua concluso utilizando mtodos grficos e numricos
que j discutimos (para ser conciso, inclua apenas os resultados da melhor varivel, no de todas as
cinco).

4. Agora examine as trs variveis mais recentes. Essas so as estatsticas utilizadas pelo autor do
filme O Homem que Mudou o Jogo para predizer o sucesso de um time. De modo geral, elas so
mais ou menos eficazes para predizer os pontos do que as variveis mais tradicionais? Explique
utilizando evidncias grficas e numricas. De todas as dez variveis que ns analisamos, qual
parece ser o melhor preditor da varivel runs (pontos)? Utilizando as informaes limitadas (ou no
to limitadas) que voc conhece sobre estas estatsticas do beisebol, seu resultado faz sentido?
5. Verifique os diagnsticos do modelo para o modelo de regresso com a varivel que voc escolheu
como o melhor preditor dos pontos (runs).
6. Quais conceitos do livro so abordados neste laboratrio? Quais conceitos, se houver algum, que
no so abordados no livro? Voc viu esses conceito em algum outro lugar, p.e., aulas, sees de
discusso, laboratrios anteriores, ou tarefas de casa? Seja especfico em sua resposta.

Laboratrio 8: Regresso Linear Mltipla


Dando Nota ao Professor
Vrios cursos universitrios do aos alunos a oportunidade de avaliar o curso e o professor de maneira
annima ao final do semestre. Contudo, o uso das avaliaes dos alunos como um indicador da qualidade
do curso e a eficcia do ensino frequentemente criticado porque essas medidas podem refletir a influncia
de caractersticas no relacionadas docncia, tal como a aparncia fsica do professor. O artigo intitulado
Beauty in the classroom: instructors pulchritude and putative pedagogical productivity (Hamermesh &
Parker, 2005) descreve como professores que so vistos como tendo melhor aparncia recebem avaliaes
mais altas.
Neste laboratrio analisaremos os dados deste estudo para aprender o que influencia uma avaliao positiva de um professor.

Os Dados
Os dados foram coletados a partir das avaliaes discentes de final de semestre de uma grande amostra
de professores da Universidade do Texas em Austin. Alm disso, seis estudantes avaliaram a aparncia
fsica dos professores. O resultado um banco de dados no qual cada linha contm diferentes disciplinas
e cada coluna representa as variveis sobre as disciplinas e os professores.

download.file("http://www.openintro.org/stat/data/evals.RData", destfile = "evals.RData")


load("evals.RData")

Explorando os Dados
Exerccio 1 Esse estudo observacional ou experimental? O pergunta de pesquisa original
proposta no artigo se a beleza influencia diretamente as avaliaes das disciplinas. Levando
em considerao o desenho da pesquisa, possvel responder a essa pergunta tal como ela est
formulada? Se no, reformule a pergunta.
Exerccio 2 Descreva a distribuio da varivel score. A distribuio assimtrica? O que
sua forma permite dizer sobre a maneira como os alunos avaliam as disciplinas? A forma
corresponde ao que voc esperava ver? Por qu, ou por que no?
Exerccio 3 Com exceo da varivel score, escolha duas outras variveis e descreva sua
relao utilizando as tcnicas apropriadas (grfico de disperso, grfico de caixas lado-a-lado,
ou grfico de mosaico).
Este um produto da OpenIntro que distribudo sob uma Licena Creative Commons Atribuio Compartilhamento pela
Mesma Licena 3.0 (http://creativecommons.org/licenses/by-sa/3.0). Este laboratrio foi adaptado para a OpenIntro por Andrew Bray
e Mine etinkaya-Rundel de um laboratrio escrito por Mark Hansen do departamento de Estatstica da UCLA. Traduo para o
portugus por Erikson Kaszubowski.
Beleza na sala de aula: a pulcritude do professor e produtividade pedaggica putativa
Daniel S. Hamermesh, Amy Parker, Beauty in the classroom: instructors pulchritude and putative pedagogical productivity,
Economics of Education Review, Volume 24, Issue 4, August 2005, Pages 369-376, ISSN 0272-7757, 10.1016/j.econedurev.2004.07.013.
(http://www.sciencedirect.com/science/article/pii/S0272775704001165).
Esta uma verso levemente modificada do conjunto de dados original que foi publicado como parte dos dados de reproduo
para o livro Data Analysis Using Regression and Multilevel/Hierarchical Models (Gelman and Hill, 2007).

score
rank
ethnicity
gender
language
age
cls_perc_eval
cls_did_eval
cls_students
cls_level
cls_profs
cls_credits
bty_f1lower
bty_f1upper
bty_f2upper
bty_m1lower
bty_m1upper
bty_m2upper
bty_avg
pic_outfit
pic_color

pontuao mdia da avaliao do docente: (1) muito insatisfatrio - (5) excelente.


nvel do professor: horista (teaching), assistente (tenure track), titular (tenured).
etnia do professor: no-minoria, minoria.
sexo do professor: feminino, masculino.
lngua da universidade frequentada pelo professor: ingls ou no-ingls.
idade do professor.
percentual de alunos na turma que completaram a avaliao.
nmero de alunos na turma que completaram a avaliao.
nmero total de alunos na turma.
nvel da disciplina: introdutria, avanada.
nmero de professores ministrando mdulos na disciplina dentro da amostra: nico, mltiplos.
nmero de crditos da disciplina: um crdito, mltiplos crditos.
avaliao da beleza do professor por aluna de nvel inicial: (1) mais baixo - (10) mais alto.
avaliao da beleza do professor por aluna de nvel avanado: (1) mais baixo - (10) mais alto.
avaliao da beleza do professor por segunda aluna de nvel avanado: (1) mais baixo - (10) mais alto.
avaliao da beleza do professor por aluno de nvel inicial: (1) mais baixo - (10) mais alto.
avaliao da beleza do professor por aluno de nvel avanado: (1) mais baixo - (10) mais alto.
avaliao da beleza do professor por segundo aluno de nvel avanado: (1) mais baixo - (10) mais alto.
mdia da avaliao da beleza do professor.
roupa do professor na foto avaliada: informal, formal.
cor da foto avaliada: colorida, preto e branco.

Regresso Linear Simples


O fenmeno proposto pelo estudo que professores com melhor aparncia so avaliados de maneira mais
favorvel. Vamos criar um grfico de disperso para verificar se isso verdade:

plot(evals$score ~ evals$bty_avg)
Antes de tirar concluses sobre a tendncia, compare o nmero de observaes no banco de dados com o
nmero de pontos no grfico de disperso. H algo de errado?
Exerccio 4 Refaa o grfico de disperso, mas agora utilize a funo jitter() no eixo y ou x.
(Utilize o comando ?jitter para aprender mais a respeito.) O que estava errado no grfico de
disperso inicial?
Exerccio 5 Vamos verificar se a tendncia aparente no grfico algo alm de variao natural.
Ajuste um modelo linear denominado m_bty para predizer a avaliao mdia de um professor
a partir da mdia da avaliao da beleza e adicione a linha ao grfico utilizando o comando
abline(m_bty). Escreva a equao do modelo linear e interprete a inclinao da reta. A mdia
da avaliao da beleza um preditor estatisticamente significante? Essa varivel parecer ser
um preditor com significncia prtica?
Exerccio 6 Utilize grficos de resduos para avaliar se as condies para uma regresso utilizando mnimos quadrados so plausveis. Utilize grficos e comente cada uma deles (retome
o Laboratrio 7 para relembrar como cri-los).

Regresso Linear Mltipla


O conjunto de dados contm diversas variveis sobre a avaliao de beleza do professor: avaliaes individuais de cada um dos seis estudantes que foram convidados a avaliar a aparncia fsica dos professores
e a mdia dessas seis avaliaes. Vamos dar uma olhada na relao entre uma dessas avaliaes e a mdia
da avaliao da beleza.

plot(evals$bty_avg ~ evals$bty_f1lower)
cor(evals$bty_avg, evals$bty_f1lower)
Como esperado, a relao bem forte afinal, a mdia das avaliaes calculada utilizando a avaliaes
individuais. Podemos dar uma olhada nas relaes entre todas as variveis relativas beleza (colunas 13 a
19) utilizando o seguinte comando:

plot(evals[,13:19])
Essas variveis so colineares (correlacionadas), e adicionar mais do que uma delas ao modelo no agregaria muito valor. Neste caso, com esses preditores com altos ndices de correlao, melhor utilizar a
mdia das avaliaes da beleza como o nico representante dessas variveis.
Para verificar se a beleza ainda um preditor significante da avaliao docente depois que consideramos
o sexo do professor, podemos adicionar um termo para o sexo no modelo.

m_bty_gen <- lm(score ~ bty_avg + gender, data = evals)


summary(m_bty_gen)

Exerccio 7 Valores p e estimativas dos parmetros s so confiveis se as condies para a


regresso so plausveis. Verifique se as condies para esse modelo so plausveis utilizando
grficos de diagnstico.
Exerccio 8 A varivel bty_avg continua sendo um preditor significante de score? A adio
da varivel gender ao modelo alterou a estimativa do parmetro de bty_avg?
Perceba que a estimativa para gender agora denominada de gendermale. Voc ver essa mudana de
nome sempre que adicionar uma varivel categorial ao modelo. O motivo que o R recodifica gender, alterando seus valores iniciais female (feminino) e male (masculino) para uma varivel indicativa denominada
gendermale que tem o valor 0 para mulheres e o valor 1 para homens (tais variveis so frequentemente
chamada de varivel dummy (falsa ou postia)).
O resultado, para mulheres, que o parmetro estimado multiplicado por zero, deixando a forma do
intercepto e da inclinao similar regresso simples.

s[
core = 0 + 1 bty_avg + 2 (0)
= 0 + 1 bty_avg
Podemos traar essa linha e a linha correspondente aos homens com a seguinte funo personalizada:

multiLines(m_bty_gen)

Exerccio 9 Qual a equao da linha correspondente aos homens? (Dica: Para os homens, a
estimativa do parmetro multiplicada por 1.) Para dois professores que receberam a mesma
avaliao de beleza, qual gnero tende a ter as avaliaes mais altas?
A deciso de chamar a varivel indicativa de gendermale ao invs de genderfemale no tem nenhum significado profundo. O R simplesmente codifica a categoria que vem em primeiro lugar na ordem alfabtica
3

como um 0.
Exerccio 10 Crie um novo modelo denominado m_bty_rank removendo a varivel gender e
adicionando a varivel rank. Como o R maneja variveis categoriais que tem mais de dois
nveis? Perceba que a varivel rank tem trs nveis: horista (teaching), assistente (tenure track)
e titular (tenured).
A interpretao dos coeficientes na regresso mltipla um pouco diferente da regresso simples. A
estimativa do coeficiente da varivel bty_avg reflete quanto mais um grupo de professores deve receber
na avaliao da disciplina se sua avaliao de beleza um ponto maior mantendo todas as outras variveis
constantes. Neste caso, isso significa considerar somente professores do mesmo nvel com avaliaes de
bty_avg que esto separadas por um ponto.

A Busca pelo Melhor Modelo


Vamos comear com um modelo completo que prediz a avaliao docente com base no nvel, etnia, sexo,
lngua da universidade onde obteve seu diploma, idade, proporo de alunos que completaram as avaliaes, tamanho da turma, nvel da disciplina, nmero de professores, nmero de crditos, mdia da
avaliao da beleza, roupa e cor da foto avaliada.
Exerccio 11 Qual varivel voc acha que teria o maior valor p neste modelo? Por qu? Dica:
Pense em qual varivel voc esperaria no estar associada avaliao docente.
Vamos rodar o modelo. . .

m_full <- lm(score ~ rank + ethnicity + gender + language + age + cls_perc_eval


+ cls_students + cls_level + cls_profs + cls_credits + bty_avg
+ pic_outfit + pic_color, data = evals)
summary(m_full)

Exerccio 12 Verifique suas suspeitas do exerccio anterior. Inclua os resultados do modelo em


sua resposta.
Exerccio 13 Interprete o coeficiente associado varivel etnia.
Exerccio 14 Retire a varivel com o maior valor p e reajuste o modelo. Os coeficientes e suas
significncias para as outras variveis explicativas se alteraram? (Uma das coisas que torna
a regresso mltipla interessante que a estimativa dos coeficientes dependem das outras
variveis que so includas no modelo.) Se no, o que isso implica para questo de se a varivel
retirada era ou no colinear com outras variveis explicativas?
Exerccio 15 Utilizando seleo inversa e o valor p como critrio de seleo, determine qual o
melhor modelo. Voc no precisa mostrar todos os passos na sua resposta, apenas o resultado
do modelo final. Tambm escreva a equao do modelo linear para predizer a avaliao docente
com base no modelo final que voc estabeleceu.
Exerccio 16 Verifique se as condies para esse modelo so plausveis utilizando grficos de
diagnstico.
Voc

pode mudar o nvel de referncia de uma varivel categorial, que o nvel codificado como um 0, utilizando a funo

relevel. Utilize o comando ?relevel para aprender mais a respeito.

Exerccio 17 O artigo original descreve como os dados foram obtidos a partir de amostras
de professores da Universidade do Texas em Austin e incluindo todas as disciplinas que eles
ministraram. Considerando que cada linha representa uma disciplina, essa nova informao
poderia ter algum impacto em alguma das condies para a regresso linear?
Exerccio 18 Com base no seu modelo final, descreva as caractersticas de um professor e
de uma disciplina da Universidade do Texas em Austin que estariam associadas com uma
avaliao alta.
Exerccio 19 Voc se sentiria confiante em generalizar suas concluses para todos os professores, de modo geral (e em qualquer universidade)? Por qu ou por que no?