Baixe o app para aproveitar ainda mais
Prévia do material em texto
carlosrenato@estatistico.com Resumo – Aulas 2 e 3 Estatística para Saúde Coletiva 2015.2 – 04/09/2015 Professor Carlos Renato dos Santos Conforme comentado anteriormente, é preciso conhecer alguma ferramenta computacional que armazene e auxilie na análise das informações. Neste curso utilizaremos uma das mais poderosas linguagens computacionais do planeta para manuseio de bancos de dados, o software R. Figura 1 – Site do programa R O R é um programa que pode ser obtido gratuitamente na url www.r-project.org. Este programa conta com inúmeros colaboradores no mundo todo e justamente por este motivo dispõe de uma enorme quantidade de procedimentos atualizados muitas vezes em paralelo ao estado da arte. Apesar de sua interface pouco amigável e a dificuldade de atuar sempre por comandos, seu uso contínuo pode torná-lo fácil, intuitivo, gerando resultados em poucas linhas de comando, além disso, sua grande flexibilidade abre espaço para a criatividade do analista, podendo este gerar seus próprios pacotes ou automação de procedimentos que lhes convier. Figura 2 – Interface inicial do R Todos os procedimentos no R se dão por linhas de comando seguidas da tecla ENTER para visualizar o resultado dos comandos escritos. Abordaremos aqui desde simples operações aritméticas, objetos, atribuições, entrada de dados a partir da criação de vetores, distribuições de frequências e os principais gráficos e métricas estatísticas de centralidade e variabilidade (serão vistas adiante) previstas na primeira unidade de nosso curso. Como pontapé inicial, vejamos algumas operações aritméticas básicas: Operações aritméticas Pode-se usar o R como uma simples calculadora, eis algumas operações básicas: Soma > 2+1 [1] 3 Subtração > 2-1 [1] 1 Multiplicação > 1*2 [1] 2 Divisão > 1/2 [1] 0.5 Raiz quadrada > sqrt(100) [1] 10 Potenciação > 2^4 [1] 16 Logaritmo base 10 > log10(100) [1] 2 Logaritmo base 2 > log2(8) [1] 3 Logaritmo geral > log(50,base=9) [1] 1.780438 Precedência > 2*4+8 [1] 16 Precedência > 2*(4+8) [1] 24 Ponto decimal(“.”) > 2.1+3.9 [1] 6 Introduzindo dados, objetos, atribuições e vetores Comumente necessita-se atuar com várias medidas ou variáveis ao mesmo tempo. Um mesmo indivíduo, por si só, disponibiliza uma infinidade de medidas qualitativas (sexo, profissão, cidade onde reside, se tem ou não carro, se fuma, se bebe, locais que frequenta...) e quantitativas (renda, idade, peso, número de filhos, gastos com aluguel, tempo de moradia em certo lugar...). Enfim, vem a necessidade de padronizar e introduzir várias informações em sistemas computacionais capazes de manipulá-los. A partir deste ponto nossa abordagem será teórico/computacional, ou seja, aborda-se a teoria e logo em seguida como esta pode ser adotada através do R. Utilizaremos como exemplo prático os dados da Tabela 1 a seguir que se referem a assentamentos do Movimento Sem Terra no período de 1979 a 2012. Tabela 1 – Dados sobre assentamentos do MST no período de 1979 a 2012 Estado Região Assentamentos Famílias Área AC Norte 154 26405 5182332 AM Norte 142 54114 27682400 AP Norte 40 13477 2173324 PA Norte 1096 233690 19883024 RO Norte 201 36119 3615241 RR Norte 66 16364 1443953 TO Norte 380 24073 1252251 AL Nordeste 173 12759 111448 BA Nordeste 670 43969 1993070 CE Nordeste 441 22466 901217 MA Nordeste 958 122852 4273323 PB Nordeste 299 14341 282300 PE Nordeste 577 32747 544094 PI Nordeste 499 31438 1392754 RN Nordeste 293 20051 515473 SE Nordeste 213 9709 180805 DF Centro-Oeste 13 757 5869 GO Centro-Oeste 441 22697 1056045 MS Centro-Oeste 205 28562 715642 MT Centro-Oeste 578 85620 6276385 ES Sudeste 94 4223 51894 MG Sudeste 397 19594 1028388 RJ Sudeste 67 5205 71441 SP Sudeste 257 16390 334425 PR Sul 320 18286 420947 RS Sul 336 12551 289824 SC Sul 160 5377 103959 Fonte: DATALUTA: Banco de Dados da Luta pela Terra, 2013. www.fct.unesp.br/nera Antes de falar de vetores é interessante ter um entendimento sobre objetos e atribuições. Na linguagem R pode-se chamar um objeto, que pode ser uma letra, ou um nome, por exemplo, e a este atribuir alguma coisa. Por exemplo: Estamos atribuindo a um objeto a o número 10: > a<-10 Estamos atribuindo a um objeto b o número 20: > b<-20 A partir deste ponto caso chamemos por a o programa o reconhecerá como número 10: > a [1] 10 A partir deste ponto caso chamemos por b o programa o reconhecerá como número 20: > b [1] 20 Podemos realizar operações aritméticas com estes objetos, por exemplo, a soma: > a+b [1] 30 Perceba que atribuímos um número a cada objeto, mas poderíamos atribuir esta soma a outro objeto s: > s<-a+b > s [1] 30 Podemos atribuir letras e categorias também, ou seja, argumentos qualitativos que devem ser delimitados por aspas: > cidade<-"Recife" > cidade [1] "Recife" > classe_social<-"Média" > classe_social [1] "Média" Perceba que nos exemplos anteriores associamos a cada objeto apenas um elemento, ou seja, um número, uma operação aritmética, uma cidade, porém comumente precisaremos atuar com muitos números e/ou categorias ao mesmo tempo. É neste sentido que se introduz a importância dos vetores. Podemos armazenar as quantidades de assentamentos de cada estado visualizado na Tabela 1 da seguinte forma: qtde_a<-c(154, 142, 40, 1096, 201, 66, 380, 173, 670, 441, 958, 299, 577, 499, 293, 213, 13, 441, 205, 578, 94, 397, 67, 257, 320, 336, 160) Associamos agora a um único objeto vários valores, ou seja, todos os valores que estão na terceira coluna da Tabela 1 estão agora presentes no objeto qtde_a. Realizando este mesmo procedimento para as demais variáveis: area<-c(5182332, 27682400, 2173324, 19883024, 3615241, 1443953, 1252251, 111448, 1993070, 901217, 4273323, 282300, 544094, 1392754, 515473, 180805, 5869, 1056045, 715642, 6276385, 51894, 1028388, 71441, 334425, 420947, 289824, 103959) familia<-c(26405, 54114, 13477, 233690, 36119, 16364, 24073, 12759, 43969, 22466, 122852, 14341, 32747, 31438, 20051, 9709, 757, 22697, 28562, 85620, 4223, 19594, 5205, 16390, 18286, 12551, 5377) estados<-c("AC", "AM", "AP", "PA", "RO", "RR", "TO", "AL", "BA", "CE", "MA", "PB", "PE", "PI", "RN", "SE", "DF", "GO", "MS", "MT", "ES", "MG", "RJ", "SP", "PR", "RS", "SC") Usa-se o comando rep para repetir um certo número ou categoria uma determinada quantidade de vezes. Para carregar um vetor contendo as regiões aproveitaremos esta facilidade: regioes<-c(rep("NORTE",7), rep("NORDESTE",9), rep("CENTRO-OESTE",4), rep("SUDESTE",4), rep("SUL",3)) Existe agora a disponibilidade de 5 vetores, cada um correspondendo a uma coluna da Tabela 1 apresentada anteriormente. Podemos juntar estes vetores em um único objeto de dados, o qual chamaremos de dados: > dados<-data.frame(estados,regioes,qtde_a,familia,area) > dados Estados regiões qtde_a família area 1 AC NORTE 154 26405 5182332 2 AM NORTE 142 54114 27682400 3 AP NORTE 40 13477 2173324 4 PA NORTE 1096 233690 19883024 5 RO NORTE 201 36119 3615241 6 RR NORTE 66 16364 1443953 7 TO NORTE 380 24073 1252251 8 AL NORDESTE 173 12759 111448 9 BA NORDESTE 670 43969 1993070 10 CE NORDESTE 441 22466 901217 11 MA NORDESTE 958 122852 4273323 12 PB NORDESTE 299 14341282300 13 PE NORDESTE 577 32747 544094 14 PI NORDESTE 499 31438 1392754 15 RN NORDESTE 293 20051 515473 16 SE NORDESTE 213 9709 180805 17 DF CENTRO-OESTE 13 757 5869 18 GO CENTRO-OESTE 441 22697 1056045 19 MS CENTRO-OESTE 205 28562 715642 20 MT CENTRO-OESTE 578 85620 6276385 21 ES SUDESTE 94 4223 51894 22 MG SUDESTE 397 19594 1028388 23 RJ SUDESTE 67 5205 71441 24 SP SUDESTE 257 16390 334425 25 PR SUL 320 18286 420947 26 RS SUL 336 12551 289824 27 SC SUL 160 5377 103959 Dispõe-se assim armazenado no R, a Tabela 1 apresentada anteriormente. Vamos construir agora uma distribuição de frequências para a quantidade de assentamentos. O objetivo é reduzir os dados em intervalos, também chamados de classes e indicar com qual frequência as observações aparecem em cada um destes intervalos. Distribuições de frequências Iremos resumir este procedimento em 4 passos para facilitar a compreensão de construção da tabela: Passo 1 – Quantidade de classes: Seja n a quantidade de valores observados. Caso n seja menor que 25 recomenda-se que k a quantidade de classes seja calculada da seguinte forma: 𝑘 = 1 + 3.33 ∗ 𝑙𝑜𝑔10(𝑛) Caso n seja maior ou igual a 25, recomenda-se: 𝑘 = √𝑛 No nosso caso n=27, ou seja: 𝑘 = √27 ≅ 5.196 Usando R: > sqrt(27) [1] 5.196152 Passo 2 – Amplitude total: Deve-se calcular a diferença entre o menor e o maior valor: 𝐴𝑇 = 𝑚á𝑥{𝑥} − 𝑚í𝑛{𝑥} No nosso caso: 𝐴𝑇 = 1096 − 13 = 1083 Usando R: > max(qtde_a)-min(qtde_a) [1] 1083 Passo 3 – Amplitude das classes: Será a razão entre a amplitude total e a quantidade de classe obtidos anteriormente: ℎ = 𝐴𝑇 𝑘 No nosso caso: ℎ = 1083 5,196 = 208.429 ≅ 210 Usando R: > 1083/5.196 [1] 208.4296 Aproximamos para ficarem mais convenientes as classes seu comprimento para 210 assentamentos. Passo 4 – Construção das classes e alimentação destas com suas frequências: A partir do mínimo valor iniciamos a construção das classes com intervalos fechados no limite inferior e abertos no superior, ou seja, incluindo o inferior, porém não o superior. Chegamos a seguinte tabela: Classes Frequência [13,223) 12 [223,433) 7 [433,643) 5 [643,853) 1 [853,1063) 1 [1063,1273) 1 Usando R: >table(cut(qtde_a, breaks=c(13,223,433,643,853,1063,1273),right=F)) [13,223) [223,433)[433,643)[643,853)[853,1.06e+03)[1.06e+03,1.27e+03) 12 7 5 1 1 1 Aproveitamos a construção da tabela de distribuição de frequências para apresentar sua representação gráfica para o caso de variáveis quantitativas. O histograma Consiste da representação gráfica do procedimento tabelado anteriormente. As barras são unidas e suas alturas correspondem a frequência de cada intervalo. O comando responsável por esta plotagem é o histe dentro dos parênteses informamos a variável, as quebras de intervalos e outros parâmetros gráficos facultativos. hist(qtde_a, breaks=c(13, 223, 433, 643, 853, 1063, 1273), right=F, col="yellow", main="Quantidade de assentamentos", cex.main=2,cex.axis=2) Pode-se solicitar apenas hist(qtde_a), o resultado é correto, porém diferente do que construímos manualmente. O procedimento anterior força o histograma ter as classes definidas por nós. Quantidade de assentamentos qtde_a Fre qu en cy 0 200 400 600 800 1000 1200 0 2 4 6 8 10 12 Histogram of qtde_a qtde_a Fre qu en cy 0 200 400 600 800 1000 1200 0 2 4 6 8 10 O rol das observações Agora veremos um importante procedimento que visualiza os dados em ordem crescente e decrescente, chamado de rol das observações. Para a variável quantidade de famílias podemos representar o rol das seguintes formas: Ordem crescente > sort(familia) [1] 757 4223 5205 5377 9709 12551 12759 13477 14341 16364 16390 18286 19594 20051 [15] 22466 22697 24073 26405 28562 31438 32747 36119 43969 54114 85620 122852 233690 Ordem decrescente > sort(familia, decreasing=T) [1] 233690 12285285620 54114 43969 36119 32747 31438 28562 26405 24073 22697 22466 [14] 20051 1959418286 16390 16364 14341 13477 12759 12551 9709 5377 5205 4223 757 Apresentam-se agora duas medidas que buscam resumir os dados, induzindo nosso pensamento a imaginar que estes estão bem representados em torno delas. É o caso da média. Quando a mídia relata que o rendimento médio do brasileiro está em torno de x reais, costumamos tomar aquele valor como um bom resumo da situação financeira geral da população, muito embora precisemos avaliar com mais cautela estes números. Esta crítica a medidas será maior fortalecida quando discutirmos sobre as medidas de variabilidade um pouco a frente. As medidas de tendência central A média aritmética é sem dúvida a mais conhecida medida estatística de centralidade. Seja X uma variável que assume n valores xi . Ou seja, X={x1, x2, x3, ..., xn}. Definimos em termos matemáticos a média de X, denotada por �̅�, como sendo: �̅� = ∑ 𝒙𝒊 𝒏 𝒊=𝟏 𝒏 Ou seja, o somatório de todas as observações de X dividida pelo número de observações. Apesar de ser boa medida representativa, a média é extremamente fragilizada sob a existência de valores extremos, ou seja, valores que venham a destoar muito da maioria dos representados no conjunto X. Vamos calcular a área média dos assentamentos no Brasil: �̅� = ∑ 𝒙𝒊 𝟐𝟕 𝒊=𝟏 𝟐𝟕 = 𝟓𝟏𝟖𝟐𝟑𝟑𝟐 + 𝟐𝟕𝟔𝟖𝟐𝟒𝟎𝟎 + 𝟐𝟏𝟕𝟑𝟑𝟐𝟒 + ⋯ + 𝟏𝟎𝟑𝟗𝟓𝟗 𝟐𝟕 = 𝟑𝟎𝟐𝟖𝟗𝟓𝟕 Usando R: > mean(area) [1] 3028957 > sum(area)/length(area) [1] 3028957 Vamos calcular a área média dos assentamentos de cada região: �̅�𝒏𝒐𝒓𝒕𝒆 = ∑ 𝒙𝒊 𝟕 𝒊=𝟏 𝟕 = 𝟓𝟏𝟖𝟐𝟑𝟑𝟐 + 𝟐𝟕𝟔𝟖𝟐𝟒𝟎𝟎 + 𝟐𝟏𝟕𝟑𝟑𝟐𝟒 + 𝟏𝟗𝟖𝟖𝟑𝟎𝟐𝟒 + 𝟑𝟔𝟏𝟓𝟐𝟒𝟏 + 𝟏𝟒𝟒𝟑𝟗𝟓𝟑 + 𝟏𝟐𝟓𝟐𝟐𝟓𝟏 𝟕 �̅�𝒏𝒐𝒓𝒕𝒆 = ∑ 𝒙𝒊 𝟕 𝒊=𝟏 𝟕 = 𝟔𝟏𝟐𝟑𝟐𝟓𝟐𝟓 𝟕 = 𝟖𝟕𝟒𝟕𝟓𝟎𝟒 Analogamente para as demais regiões: �̅�𝒏𝒐𝒓𝒅𝒆𝒔𝒕𝒆 = ∑ 𝒙𝒊 𝟏𝟔 𝒊=𝟖 𝟗 = 𝟏𝟎𝟏𝟗𝟒𝟒𝟖𝟒 𝟗 = 𝟏𝟏𝟑𝟐𝟕𝟐𝟎 �̅�𝒄𝒆𝒏𝒕𝒓𝒐−𝒐𝒆𝒔𝒕𝒆 = ∑ 𝒙𝒊 𝟐𝟎 𝒊=𝟏𝟕 𝟒 = 𝟖𝟎𝟓𝟑𝟗𝟒𝟏 𝟒 = 𝟐𝟎𝟏𝟑𝟒𝟖𝟓 �̅�𝒔𝒖𝒅𝒆𝒔𝒕𝒆 = ∑ 𝒙𝒊 𝟐𝟒 𝒊=𝟐𝟏 𝟒 = 𝟏𝟒𝟖𝟔𝟏𝟒𝟖 𝟒 = 𝟑𝟕𝟏𝟓𝟑𝟕 �̅�𝒔𝒖𝒍 = ∑ 𝒙𝒊 𝟐𝟕 𝒊=𝟐𝟓 𝟑 = 𝟖𝟏𝟒𝟕𝟑𝟎 𝟑 = 𝟐𝟕𝟏𝟓𝟕𝟔. 𝟕 Podemos consultar uma determinada posição de um vetor, ou até mesmo um conjunto delas, por exemplo, a sétima posição do vetor area é consultada como area[7] e as posições de 8 a 10 do mesmo vetor como area[8:10] . Usando este pensamento podemos abordar os cálculos acima no R conforme a seguir. Usando R: #Média da região norte > mean(area[1:7]) [1] 8747504 #Média da região nordeste > mean(area[8:16]) [1] 1132720 #Média da região sudeste > mean(area[17:20]) [1] 2013485 #Média da região sudeste > mean(area[21:24]) [1] 371537 #Média da região sul > mean(area[25:27]) [1] 271576.7 Apresentamos a seguir a mediana que é uma medida que divide o rol das observações ao meio, ou seja, metade das informações são menores ou iguais aquele ponto e consequentemente a outra metade desta informações é também maior ou igual aquele ponto. Uma importante verificação que deve ser feita é se n é ímpar, neste caso a mediana será o valorde X com índice 𝑛+1 2 : �̃� = 𝒙𝒏+𝟏 𝟐 Se n é par, retiramos a média dos dois elementos centrais: �̃� = 𝒙𝒏 𝟐 + 𝒙𝒏 𝟐 +𝟏 𝟐 Trabalharemos agora com a variável quantidade de famílias. Neste caso n = 27, ou seja, ímpar. Analisando o rol das observações temos: > sort(familia) [1] 757 4223 5205 5377 9709 12551 12759 13477 14341 16364 16390 18286 19594 20051 [15] 22466 22697 24073 26405 28562 31438 32747 36119 43969 54114 85620 122852 233690 Podemos considerar neste caso que a posição mediana é a posição 14 deste vetor, pois 𝑛+1 2 = 28 2 = 14 >sort(familia)[14] [1] 20051 Utilizando diretamente o comando median temos: > median(familia) [1] 20051 Podemos considerar então que metade dos estados brasileiros dispunha de pelo menos 20051 famílias assentadas. Ou que os 50% estados com menos famílias assentadas dispunham de no máximo 20051 famílias. Enfim, podemos referenciar nas afirmações usando a mediana qualquer das partes superior ou inferior que a mesma disponibiliza após sua obtenção. A mediana diferentemente da média não sobre influência de valores extremos e tem uma função muito mais de separar as informações ou criar limites interpretativos. Por este motivo, esta medida além de central é também considerada uma separatriz. A seguir definimos melhor algumas separatrizes e sua interpretação. Separatrizes Conforme percebemos, a mediana divide ou separa o rol dos dados em duas partes iguais. Outras definições de separatrizes similares são importantes e dividem o rol em mais partes, vejamos algumas: Quartis – Divide o rol em 4 partes iguais Decis – Divide o rol em 10 partes iguais Centis – Divide o rol em 100 partes iguais Vamos estudar detalhadamente os quartis: Se os mesmos correspondem a valores que dividem o rol em quatro partes iguais temos: 1º Quartil – 25% menores abaixo deste ponto, logo 75% maiores acima. 2º Quartil – 50% menores abaixo deste ponto, logo 50% maiores acima. (Mediana) 3º Quartil – 75% menores abaixo deste ponto, logo 25% maiores acima. No R podemos obter estes quartis da seguinte forma: > quantile(familia) 0% 25% 50% 75% 100% 757.0 13118.0 20051.0 32092.5 233690.0 > summary(familia) Min. 1st Qu. Median Mean 3rd Qu. Max. 757 13120 20050 34590 32090 233700 Aproveitaremos nosso conhecimento sobre separatrizes para entender agora sua representação gráfica, o boxplot. O boxplot é um gráfico que busca representar os quartis de determinadas informações delimitados pelo mínimo e máximo. A seguir apresenta-se esta representação para a quantidade de assentamentos nos estados. Mais uma vez obtendo estas informações no R: > quantile(qtde_a) 0% 25% 50% 75% 100% 13 157 293 441 1096 > summary(qtde_a) Min. 1st Qu. Median Mean 3rd Qu. Max. 13.0 157.0 293.0 335.9 441.0 1096.0 Vamos agora dividir a janela gráfica de modo a plotarmos simultaneamente este mesmo boxplot com e sem parâmetros gráficos em uma mesma janela. > par(mfrow=c(1,2)) > boxplot(qtde_a) > boxplot(qtde_a, range=0,cex.axis=1.7, col="gold",las=2) O primeiro gráfico cria um intervalo onde 99% dos dados estão presentes considerando valores extremos os dois pontos que aparecem fora. No segundo gráfico utilizamos o verdadeiro intervalo dos dados quando informamos a instância range=0. Além disso aumentamos a fonte dos eixos com cex.axis=1.7 e colocamos a cor amarelo ouro com col=”gold”. Podemos também visualizar boxplots de cada uma das regiões da seguinte forma: > boxplot(qtde_a~regioes) Este é um primeiro gráfico bivariado que estamos utilizando, ou seja, quando utilizamos duas variáveis simultaneamente. Neste caso uma delas precisa ser qualitativa (regiões) e a outra quantitativa (quantidades de assentamentos). O gráfico de dispersão consiste de outra representação gráfica bivariada. Adotamos o mesmo como um plano cartesiano onde cada eixo representa uma variável e cada indivíduo ou exemplo é representado por um ponto nesta plotagem. Vamos verificar se existe alguma tendência de crescimento ou decrescimento entre a quantidade de assentamentos e o número de famílias assentadas. O comando no R que permite tal plotagem é o plot (x,y). Substituímos x e y por variáveis ou vetores de nosso interesse. Plotamos o gráfico com parâmetros básicos: > plot(qtde_a,familia) Plotamos o gráfico com parâmetros avançados: > plot(qtde_a,familia, pch=15, xlab="Assentamentos",ylab="Famílias",cex.axis=1.3, cex.lab=1.5) 0 200 400 600 800 1000 0 50 00 0 10 00 00 20 00 00 qtde_a fa m ili a 0 200 400 600 800 1000 0 50 00 0 15 00 00 Assentamentos Fa m íli as
Compartilhar