Seu relatório: Antes de começarmos, lembre-se de abrir seu documento R Markdown: lab4. Não se esqueça, também, que você deve incluir todos os códigos, gráficos e respostas às perguntas em seu relatório.

download.file("https://passeioaleatorio.com/datalab/labs/rmd/lab4.Rmd", destfile = "lab4.Rmd")

Neste laboratório, investigaremos os meios pelos quais as estatísticas de uma amostra aleatória de dados podem servir como estimativas pontuais de parâmetros populacionais. Estamos interessados em formular uma distribuição amostral de nossa estimativa para aprender sobre as propriedades da estimativa, como sua distribuição.

Especificando uma semente: Nós iremos tomar amostras aleatórias e gerar algumas distribuições amostrais neste laboratório. Desse modo, você deverá especificar uma semente logo no início de seu relatório. Caso tenha dúvidas sobre como definir esta semente, retorne ao laboratório anterior onde explicamos este conceito.

Os Dados

Vamos analisar dados do setor imobiliário da cidade de Ames, no estado de Iowa, Estados Unidos. Os detalhes de cada transação imobiliária na cidade de Ames é registrada pelo escritório da Secretaria Municipal da Receita da cidade. Nosso foco particular para este laboratório será todas as vendas de casa em Ames entre 2006 e 2010. Essa coleção representa nossa população de interesse. Neste laboratório queremos aprender sobre essas vendas de casas retirando pequenas amostras da população completa. Vamos importar os dados.

load(url("https://passeioaleatorio.com/datalab/dados/ames.RData"))

Como você pode observar, o banco de dados está em sua língua originária, inglês, e existe uma quantidade consideravelmente grande de variáveis. Para este laboratório, restringiremos nossa atenção para somente duas variáveis: a área habitável da casa acima do nível do solo em pés quadrados (area) e o preço da venda (price) em dólares.

Nós podemos explorar a distribuição da área das casas em nossa população de vendas de casas calculando algumas estatísticas sumárias e criando um histograma. Vamos iniciar criando uma visualização por meio do histograma:

qplot(data = ames, x = area, binwidth = 250)

Vamos obter, também, algumas medidas descritivas. Observe que podemos fazer isso por meio da função summarise. O número de estatísticas a serem calculadas fica a nosso critério. Algumas das funções abaixo já foram discutidas no primeiro laboratório (como mean, median, sd, IQR, min, e max). A função quantile aparece pela primeira vez em nossos laboratórios, correspondendo ao quantil especificado da distribuição de interesse. Por exemplo, a expressão quantile(x, 0.25) irá nos revelar o valor que acumula 25% (Q1) da distribuição da variável x. Como estudado em sala, esses valores são úteis na descrição da distribuição dos dados: como exemplo poderíamos estar interessados na “região central que acumula 50% das casas com àrea dada em pés quadrados”.

ames %>%
  summarise(mu = mean(area), pop_med = median(area), 
            sigma = sd(area), pop_iqr = IQR(area),
            pop_min = min(area), pop_max = max(area),
            pop_q1 = quantile(area, 0.25),  # primeiro quartil, 25˚ percentil
            pop_q3 = quantile(area, 0.75))  # terceiro quartil, 75˚ percentil
  1. Descreva a distribuição desta população usando visualizações e estatísticas descritivas. Você não precisa usar todas as estatísticas descritivas existentes, mas deve decidir quais delas são relevantes baseando-se na forma da distribuição. Não esqueça de incluir os gráficos e saídas das estatísticas calculadas no seu relatório juntamente com a sua narrativa.

A Distribuição Amostral Desconhecida

Neste laboratório nós temos acesso à população inteira, mas isso raramente acontece na vida real. Reunir informação sobre uma população inteira costuma ser muito custoso ou impossível. Por essa razão, frequentemente retiramos uma amostra da população e a utilizamos para compreender propriedades da população.

Se estivermos interessados em estimar a área habitável média na cidade de Ames com base numa amostra, podemos utilizar o seguite comando para sondar a população.

amostra1 <- ames %>%
  sample_n(50)

Esse comando retira uma amostra aleatória simples de tamanho 50 do vetor area, que é atribuída à variável amostra1. É como se fossemos ao banco de dados da Secretaria Municipal da Fazenda e retirássemos 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.

  1. Descreva a distribuição desta amostra. Como ela se compara à distribuição da população? Dica A função sample_n retira uma amostra das observações (i.e. linhas) no banco de dados, você pode utilizar os mesmos nomes para as variáveis do banco de dados. Os códigos utilizados no exercício anterior podem ser muito úteis para visualizar e descrever a distribuição, mas tenha cuidado ao nomear as estatísticas uma vez que mu e sigma são parâmetros populacionais já definidos e o que você tem é uma amostra e, consequentemente, estatísticas amostrais. Você pode nomear à sua escolha as estatísticas calculadas, sendo muito útil indicar no nome atribuído que seus valores são oriundos de uma amostra.

Se estamos interessados em estimar a área habitável média nas casas da cidade de Ames utilizando esta amostra, nosso melhor palpite é a média da amostra.

amostra1 %>%
  summarise(x_bar = mean(area))

Dependendo de quais foram as 50 casas que foram sorteadas, sua estimativa pode estar um pouco acima ou abaixo da média populacional verdadeira de 1499,69 pés quadrados. De maneira geral, mesmo assim, a média da amostra costuma ser uma estimativa muito boa da média da área habitável, e nós a obtemos por meio de uma amostra de menos de 3% da população.

  1. Você esperaria que o valor da média calculada com sua amostra fosse igual a média calculada a partir de uma outra amostra de mesmo tamanho? Porquê? Caso sua resposta seja não, seria esperado que essas médias fossem próximas ou muito diferentes? Faça um teste!

  2. Retire uma segunda amostra, também de tamanho 50, e a nomeie amostra2. Como a média de amostra2 se compara à média da amostra1? Vamos supor que retiremos mais duas amostras, uma de tamanho 100 e outra de tamanho 1000. Qual você acha que daria uma estimativa mais precisa da média populacional?

Não é surpreendente que, a cada vez que retiramos uma nova amostra aleatória, obtemos uma média amostral diferente. É útil ter uma ideia de quanta variabilidade podemos esperar quando estimamos a média populacional desta maneira. A distribuição das médias amostrais, denominada de distribuição amostral, pode nos ajudar a compreeder essa variabilidade. Neste laboratório, uma vez que temos acesso à população, podemos elaborar a distribuição amostral para a média amostral repetindo os passos acima várias vezes. Agora iremos gerar 2000 amostras e calcularemos a média amostral de cada uma delas. Note que utilizamos o argumento replace = TRUE pelo simples fato de que amostras aleatórias simples são obtidas da distribuição original para cada réplica.

medias_amostra50 <- do(2000) * ames %>% 
                              sample_n(50, replace = TRUE) %>%
                              summarise(x_bar = mean(area))
                          
qplot(data = medias_amostra50, x = x_bar)

Aqui nós usamos o R para selecionar 2000 amostras de tamanho 50 da nossa população, calculamos a média de cada amostra, e armazenamos cada resultado em um vetor chamado medias_amostra50. No tópico seguinte iremos rever como esta função do funciona.

  1. Descreva a distribuição amostral, e não se esqueça de indicar o centro da distribuição. Você esperaria uma mudança na distribuição se calculássemos 10000 médias amostrais?

Interlúdio: A função do

Vamos dar uma pausa na matéria por um instante para entendermos melhor a vantagem da função do. A ideia por trás desta função é a repetição: ela nos permite executar uma linha de comando tantas vezes quanto desejarmos, além de alocar os resultados em um conjunto de dados. No caso acima, nós queríamos tomar, repetidamente, uma amostra aleatória de tamanho 50 da area e salvar a média da amostra no vetor medias_amostra50.

Na ausência da função do seria bastante doloroso o número de linhas de comando necessário para atingir esse objetivo (é claro que um loop, típico de linguagens de programação, também está disponível no R e poderia ser uma alternativa razoável para esta questão). Primeiramente, teríamos de criar um vetor preenchido com zeros para alocar as 2000 médias amostrais. Então, deveríamos calcular cada uma das 2000 médias amostrais por vez em uma linha de código e alocando os resultados, um a um, nas posições do vetor medias_amostra50:

medias_amostra50 <- rep(NA, 2000)

medias_amostra50[1] <-  ames %>%
                        sample_n(50, replace = TRUE) %>%
                        summarise(x_bar = mean(area))
medias_amostra50[2] <- ames %>%
                        sample_n(50, replace = TRUE) %>%
                        summarise(x_bar = mean(area))
medias_amostra50[3] <- ames %>%
                        sample_n(50, replace = TRUE) %>%
                        summarise(x_bar = mean(area))
medias_amostra50[4] <- ames %>%
                        sample_n(50, replace = TRUE) %>%
                        summarise(x_bar = mean(area))
# ...e por aí vai, 2000 vezes

Utilizando a função do, essas milhares de linhas são comprimidas em uma linha:

medias_amostra50 <- do(2000) * ames %>%
                              sample_n(50, replace = TRUE) %>%
                              summarise(x_bar = mean(area))

Observe que cada uma das 2000 médias calculadas foi obtida de uma amostra diferente das demais!!

  1. Para garantir que você tenha entendido as funções sample_n e do, modifique o código de modo a obter 25 médias amostrais de tamanho 10 cada uma e aloque os valores a um novo conjunto de dados chamado medias_amostra_reduzida. Imprima a saída. Quantos elementos estão presentes nesse objeto chamado medias_amostra_reduzida? O que cada elemento representa?

Tamanho da Amostra e a Distribuição Amostral

Deixando de lado os aspectos técnicos de programação, vamos retomar à razão pela qual utilizamos a função do: calcular uma distribuição amostral, especificamente, esta aqui.

qplot(data = medias_amostra50, x = x_bar)

A distribuição amostral que calculamos nos informa bastante sobre as estimativas da área habitável das casas na cidade de Ames. Uma vez que a média amostral é um estimador não viesado, a distribuição amostral estará centrada na verdadeira média da área habitável da população, e a dispersão da distribuição indica quanta variabilidade é possível ao se amostrar somente 50 vendas de casas.

Para ter uma ideia melhor do efeito do tamanho da amostra na distribuição amostral, vamos construir distribuições a partir de amostras de diferentes tamanhos:

Passo 1: Crie três distribuições amostrais, cada uma contendo 2000 médias amostrais, oriundas de amostras de tamanho \(n = 10\), \(n = 50\), e \(n = 100\).

medias_amostra10 <- do(2000) * ames %>%
                              sample_n(10, replace = TRUE) %>%
                              summarise(x_bar = mean(area))
medias_amostra50 <- do(2000) * ames %>%
                              sample_n(50, replace = TRUE) %>%
                              summarise(x_bar = mean(area))
medias_amostra100 <- do(2000) * ames %>%
                              sample_n(100, replace = TRUE) %>%
                              summarise(x_bar = mean(area))

Passo 2: Construa o gráfico dessas três distribuições amostrais uma seguida da outra e, na mesma escala, de modo que possamos comparar as formas, centros e dispersões de cada uma.

medias_amostra <- rbind(medias_amostra10, medias_amostra50, medias_amostra100)
medias_amostra <- medias_amostra %>%
  mutate(tamanho_amostra = factor(rep(c(10,50,100), each = 2000)))
qplot(data = medias_amostra, x = x_bar, facets = tamanho_amostra ~ . )
  1. Quando aumentamos o tamanho da amostra, o que acontece ao centro da distribuição? O que acontece com a dispersão? Inclua os gráficos em sua resposta.

Por sua conta

Até agora, nós nos ocupamos em estimar a média da área habitável nas casas do município de Ames. Agora você tentará estimar a média dos preços das casas.

  • Retire uma amostra aleatória de tamanho 15 da variável price e calcule a média. Com essa amostra, qual é sua melhor estimativa pontual para a média populacional?

  • Já que você tem acesso à população, simule a distribuição amostral de \(\bar{x}_{price}\) retirando 2000 amostras de tamanho 15 da população e calculando 2000 médias amostrais. Armazene essas médias em um vetor com o nome medias_amostra15. Crie um gráfico com os resultados, e então descreva a forma dessa distribuição amostral. Baseado nessa distribuição amostral, qual seria seu palpite para a média dos preços das casas na população? Por fim, calcule e informe a média populacional.

  • Mude o tamanho da sua amostra de 15 para 150, e então calcule a distribuição amostral utilizando o mesmo método descrito acima, e guarde as médias em um novo vetor com o nome medias_amostra150. Descreva a forma dessa distribuição amostral e compare-a com a distribuição amostral para a amostra de 50 elementos. Com base nessa distribuição amostral, qual seria seu palpite sobre a média dos preços de vendas de casas no município de Ames?

  • Das distribuições amostrais calculadas nos exercícios 2 e 3, qual tem menor dispersão? Se estamos interessados em estimativas que estão mais próximas do valor verdadeiro, preferiríamos uma distribuição com uma dispersão pequena ou grande?

Este é um produto da OpenIntro que é liberado sob uma Creative Commons Attribution-ShareAlike 3.0 Unported. Este laboratório foi escrito para a OpenIntro por Andrew Bray e Mine Çetinkaya-Rundel da Duke University e adaptado por Jhames Sampaio ao curso de Probabilidade e Estatística da Universidade de Brasília à partir de uma primeira tradução de Erikson Kaszubowski da Universidade Federal de Santa Catarina