Salve o script criado na pasta com o nome "aula10_est212.R".
Baixe do Moodle os arquivos gordura_corporal.csv e pesonasc.csv e salve na pasta criada.
Leia o arquivo gordura_corporal.csv para o objeto gordura.
Leia o arquivo pesonasc.csv para o objeto peso.
Introdução
Em Estatística, temos vários objetivos ao efetuar uma análise de dados. Alguns deles são:
Verificar a existência de relação entre dados.
Explicar o comportamento de uma variável por meio de modelos.
Comparar dados e seu comportamento.
Estimar possíveis valores para uma população com base em uma amostra.
Nesse sentido, as técnicas podem ser enquadradas em duas categorias principais:
Estatística Paramétrica.
Estatística não Paramétrica.
Estatística Paramétrica e Não Paramétrica
A Estatística Paramétrica compreende um conjunto de técnicas em que a distribuição de probabilidade dos dados é conhecida.
Já a Estatística não Paramétrica compreende as técnicas em que a distribuição de probabilidade dos dados não é conhecida, ou menos não é significativa para a modelagem.
Nesse curso, aprenderemos técnicas de ambas as categorias. Entretanto, algumas das técnicas já vistas são paramétricas:
Regressão: Os resíduos devem possuir distribuição normal com média 0 e variância igual (constante).
Teste t: a variável aleatória deve possuir distribuição normal.
Estatística Paramétrica
Dentro da estatística paramétrica, existem métodos para diversas finalidades. Para muitas dessas finalidades, temos requisitos bastante presentes, que são relacionados à duas características:
Normalidade dos dados.
Variância.
A normalidade dos dados é a base de muitos modelos. Já em relação à variância, geralmente é necessário verificar se populações apresentam variâncias iguais (homocedasticidade) ou diferentes (heterocedasticidade).
Vamos aprender a verificar ambos os requisitos nessa aula.
Verificação de Normalidade
A distribuição Normal é considerada a mais importante na Estatística, por alguns motivos:
Muitas variáveis observadas cotidianamente apresentam distribuição normal.
Apresenta boas propriedades matemáticas.
Consequentemente, um grande volume de técnicas é baseado em sua formulação.
Por esse motivo, antes de aplicar determinadas técnicas baseadas na distribuição normal, é necessário verificar se os dados em estudo se adequam a ela.
Distribuição Normal
Conforme visto em Bioestatística I, uma variável aleatória é dita normal se apresenta a seguinte função de densidade de probabilidade:
Para verificar a normalidade existem alguns métodos. Os principais são baseados em gráficos ou testes de hipóteses.
Testes de Normalidade
Podemos verificar a normalidade de um conjunto de dados por meio de testes de hipóteses.
O mais utilizado, sobretudo por ser mais poderoso para pequenas amostras, é o teste de Shapiro-Wilk.
O teste de Shapiro-Wilk possui as seguintes hipóteses:
\(H_0\) - Os dados em estudo seguem distribuição normal
\(H_1\) - Os dados em estudo não seguem distribuição normal
Assim como nos demais testes, não rejeitaremos \(H_0\) se o p-valor for menor que o nível de significância pré-definido. Nesse teste, é comum trabalhar com um nível de significãncia \(\alpha = 0,1\).
Não entraremos em detalhes teóricos. O artigo completo com o teste pode ser visto em ROYSTON (1982).
Teste de Normalidade de Shapiro-Wilk
O teste de Shapiro-Wilk está implementado no R por meio da função shapiro.test. Nela deve ser informada a variável para a qual se pretende verificar a normalidade.
Vamos testar a normalidade para as seguintes variáveis: altura e peso. Utilizaremos um nível de significância \(\alpha = 0,1\).
#Leitura de dadosgordura <-read.csv("gordura_corporal.csv")peso <-read.csv("pesonasc.csv", h = T)#Teste de normalidade para a alturashapiro.test(gordura$altura)
Shapiro-Wilk normality test
data: gordura$altura
W = 0.99243, p-value = 0.2309
#Teste de normalidade para o pesoshapiro.test(gordura$peso)
Shapiro-Wilk normality test
data: gordura$peso
W = 0.98741, p-value = 0.02741
Teste de Normalidade de Shapiro-Wilk
As hipóteses dos testes são:
\(H_0\) - A altura segue distribuição normal vs\(H_1\) - A altura não segue distribuição normal.
\(H_0\) - O peso segue distribuição normal vs\(H_1\) - O peso não segue distribuição normal.
O nível de significância é \(\alpha = 0,1\)
Para a altura, obtivemos um p-valor de 0,2309 > 0,1. Logo, ao nível de 10% de significância, existem evidências que indicam a normalidade da variável altura.
Já para o peso, obtivemos um p-valor de 0,02741 < 0,1. Logo, ao nível de 10% de significância, não existem evidências suficientes para indicar que a variável peso segue uma distribuição normal.
Exercício Prático 1
Vamos verificar se as seguintes variáveis do nosso banco de dados gordura seguem distribuição normal:
gordura_corporal
abdomen
pescoco
tornozelo
Utilizaremos um nível de significância \(\alpha = 0,1\).
Exercício Prático 1 - Solução
\(H_0\) - A variável segue distribuição normal vs\(H_1\) - A variável não segue distribuição normal.
#Teste de normalidade para a variável gordura_corporalshapiro.test(gordura$gordura_corporal)
Shapiro-Wilk normality test
data: gordura$gordura_corporal
W = 0.99169, p-value = 0.1697
#Teste de normalidade para a variável abdomenshapiro.test(gordura$abdomen)
Shapiro-Wilk normality test
data: gordura$abdomen
W = 0.98735, p-value = 0.02662
gordura_corporal: p-valor = 0,1697 > 0,1. Ao nível de 10% de significância existem evidências que indicam que a variável segue distribuição normal.
abdomen: p-valor = 0,01662 < 0,1. Ao nível de 10% de significância existem evidências que indicam que a variável não segue distribuição normal.
Exercício Prático 1 - Solução
\(H_0\) - A variável segue distribuição normal vs\(H_1\) - A variável não segue distribuição normal.
#Teste de normalidade para a variável pescoço shapiro.test(gordura$pescoco)
Shapiro-Wilk normality test
data: gordura$pescoco
W = 0.99385, p-value = 0.3999
#Teste de normalidade para a variável tornozelo shapiro.test(gordura$tornozelo)
Shapiro-Wilk normality test
data: gordura$tornozelo
W = 0.85451, p-value = 1.322e-14
pescoco: p-valor = 0,3999 > 0,1. Ao nível de 10% de significância existem evidências que indicam que a variável segue distribuição normal.
tornozelo: p-valor = 1,322e-14 < 0,1. Ao nível de 10% de significância existem evidências que indicam que a variável não segue distribuição normal.
Igualdade de Variâncias
Nas próximas aulas, aprenderemos testes que comparam populações entre si em relação à sua média. Esse tipo de teste é bastante útil pois permite a comparação de efeitos diferentes em populações semelhantes. Vejamos alguns exemplos:
Para verificar se um novo medicamento para diabetes é eficiente, pacientes foram divididos em 3 grupos: um recebeu o novo medicamento, outro recebeu o medicamento de referência e um terceiro recebeu um placebo. Caso o novo medicamento seja eficiente, o que se espera que ocorra com a glicemia média dos pacientes?
Dois cultivares de cana foram submetidos a regimes de adubação diferentes. Será que um deles produzirá mais?
O peso de recém-nascidos com baixo peso foi registrado e durante uma semana foi oferecida uma fórmula pediátrica. Houve ganho de peso significativo entre eles?
Igualdade de Variâncias
Todos os exemplos apresentados tem em comum a necessidade de comparar grupos.
Existem diversos testes paramétricos para realizar tal comparação. Porém a escolha do teste adequado depende de alguns fatores. Um deles está relacionado com a variância das populações.
Podemos ter as seguintes situações:
Duas ou mais populações com variâncias iguais.
Duas ou mais populações com variâncias diferentes.
Para utilizarmos o teste adequado, é necessário conhecer o comportamento da variância de cada grupo. Para isso, em estatística paramétrica, usamos o Teste F.
Teste F para igualdade de variâncias
Suponha que se deseja verificar se duas populações tem a mesma variância, ou seja, \(\sigma_1^2 = \sigma_2^2\), em que:
\(\sigma_1^2\) - Variância da população 1
\(\sigma_2^2\) - Variância da população 2
Para testar tal suposição, poderíamos elaborar as seguintes hipóteses:
O teste utilizado para testar essas hipóteses é chamado de Teste F para igualdade de variâncias.
Teste F para igualdade de variâncias
Considere duas amostras extraídas de populações normalmente distribuídas, com \(n_1\) e \(n_2\) observações, respectivamente. O teste para igualdade de variâncias é realizado por meio da seguinte estatística de teste:
\[
F = \dfrac{s_1^2}{s_2^2}
\]
em que:
\(s_1^2\) é a maior variância amostral dentre as duas amostras.
\(s_2^2\) é a menor variância amostral dentre as duas amostras.
Se as suposições de normalidade forem atendidas, pode-se demonstrar que a estatística de teste segue uma distribuição \(F\) com \(n_1-1\) e \(n_2-1\) graus de liberdade. A partir dessa distribuição, calcula-se o p-valor do teste.
Teste F para igualdade de variâncias
Conforme visto, antes de aplicar o teste F, é necessário garantir que os dados seguem distribuição normal. Após verificar a normalidade, por meio do teste de Shapiro-Wilk, por exemplo, podemos executar o teste F por meio da função var.test():
var.test(valores ~ grupos, data = dados)
em que:
valores: variável que recebe os valores da variável de interesse
grupos: variável utilizada para segmentar os dados
dados: conjunto de dados em estudo
Note que a estrutura é parecida com a função lm da regressão linear.
Teste F para igualdade de variâncias
Quando queremos testar duas populações e seus dados estão separados em variáveis distintas, utilizamos a seguinte parametrização:
var.test(x = populacao1, y = populacao2, data = dados)
Em que:
populacao1 - dados da população 1
populacao2 - dados da população 2
dados - banco de dados que contém os dados das populações.
Para compreendermos melhor a sintaxe, vamos fazer um exemplo.
Teste F para igualdade de variâncias
Para nosso exemplo utilizaremos o banco de dados pesonasc. São dados sobre o peso de bebês no nascimento, baseado em características da mãe:
id - identificação do bebê.
baixo - presença ou não de baixo peso (<2,5kg) (0 = não, 1 = sim).
Vamos verificar se a variância entre os pesos de bebês de mães que fumaram e não fumaram é igual.
Antes de realizar o teste, precisamos verificar se a variável peso do bebê ao nascer (pesobb) apresenta distribuição normal. O faremos por meio do teste de Shapiro-Wilk, ao nível de 0,1 de significância. As hipóteses do teste são:
\(H_0\) - O peso dos bebês segue distribuição normal
\(H_1\) - O peso dos bebês não segue distribuição normal.
Vejamos o resultado do teste.
Exemplo - Teste F para igualdade de variâncias
#Teste de normalidade da variável pesoshapiro.test(peso$pesobb)
Shapiro-Wilk normality test
data: peso$pesobb
W = 0.99247, p-value = 0.4383
O p-valor do teste foi 0,4383 >0,1. Portanto temos evidências para não rejeitar a hipótese nula. Logo, podemos afirmar que o peso dos bebês ao nascer é normalmente distribuído.
Podemos prosseguir com o teste F para igualdade de variâncias.
Exemplo - Teste F para igualdade de variâncias
Agora que sabemos que os pesos seguem distribuição normal, podemos utilizar o teste F. Queremos testar se os pesos de bebês de mães que fumam e não fumam apresentam variâncias iguais, ou seja:
\[H_0:~\sigma^2_F = \sigma^2_{NF} ~~ vs ~~ H_0:~\sigma^2_{F} \neq \sigma^2_{NF}.\]
Em que
\(\sigma^2_F\) - Variância do peso dos bebês de mães fumantes.
\(\sigma^2_{NF}\) - Variância do peso dos bebês de mães fumantes.
Vamos testar as hipóteses ao nível de 5% de significância, que é o padrão para esse tipo de teste. Vejamos como executar o teste no R.
Exemplo - Teste F para igualdade de variâncias
Para executar, utilizaremos a função var.test. Os valores são definidos pela variável pesobb. Já os grupos são definidos pela variável fumo. Executamos o teste da seguinte forma:
#Teste para igualdade de variânciasvar.test(pesobb ~ fumo, data = peso)
F test to compare two variances
data: pesobb by fumo
F = 1.2993, num df = 114, denom df = 73, p-value = 0.229
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.8469514 1.9550579
sample estimates:
ratio of variances
1.299335
Como o p-valor não é significativo (0,229 > 0,05), temos evidências que nos levam a não rejeitar \(H_0\), portanto, pode-se afirmar ao nível de 5% de significância que as variâncias de pesos de bebês de mães fumantes e não fumantes são iguais.
Visualização de dados contínuos agrupados
Uma forma de verificar visualmente a variabilidade de dados agrupados é por meio da função boxplot. O boxplot é um gráfico gerado pelos percentis 5, 25, 50, 75 e 95 da amostra e nos dá uma noção da forma e da variabilidade dos dados.
Para gerar um boxplot com dados agrupados, seguimos o mesmo formato utilizado na função var.test().
Podemos usar o boxplot antes da execução do teste para compreender melhor a relação entre os dados e respectivos grupos.
Vejamos o resultado gráfico.
Visualização de dados contínuos agrupados
#Boxplot para comparação dos pesos de bebês de mães fumantes e não fumantesboxplot(pesobb ~ fumo, data = peso)
Observa-se que a dispersão, caracterizada pela altura da caixa, é de fato semelhante, o que corrobora a conclusão do nosso teste.
Exercício Prático 2
Vamos verificar se existem diferenças nas variâncias entre os pesos dos bebês de mães hipertensas e não hipertensas, ao nível de 5% de significância.
Para isso, vamos fazer o boxplot e na sequência o teste de hipóteses. Nossas hipóteses são:
\(H_0\): A variância do peso de bebês de mães hipertensas e não hipertensas é a mesma.
\(H_1\): A variância do peso de bebês de mães hipertensas e não hipertensas é a diferente.
Como já testamos a normalidade do peso dos bebeês, não será necessário realizar o teste de Shapiro-Wilk novamente.
Exercício Prático 2 - Solução
Primeiramente, faremos o boxplot:
#Boxplot - Peso por hipertensão da mãeboxplot(pesobb ~ hipert, data = peso)
Aparentemente a variância do peso de bebês de mães hipertensas é maior. Vejamos se é grande o suficiente para ser considerada diferente.
Exercício Prático 2 - Solução
#Teste de hipóteses - Peso por hipertensão da mãevar.test(pesobb ~ hipert, data = peso)
F test to compare two variances
data: pesobb by hipert
F = 0.59774, num df = 176, denom df = 11, p-value = 0.1658
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.2043689 1.2354234
sample estimates:
ratio of variances
0.597735
Nosso teste retornou um p-valor = 0,1658 > 0,05. Logo, apesar da evidência visual, temos evidências suficientes para não rejeitar a hipótese nula, ao nível de 5% de significância. Ou seja, as variâncias entre os dois grupos são iguais.
Atividade Avaliativa
Refaça os exercícios práticos 1 e 2. Não se esqueça de comentar as conclusões dos testes no script.
Verifique se as variáveis pesom e idade, do banco de dados peso seguem distribuição normal. Poderíamos executar o teste F nelas?
Teste ao nível de 5% de significância se o peso dos bebês (pesobb) possui a mesma variância entre mães com irritabilidade uterina (irritut) e entre os bebês de baixo peso ou não (baixo).
Referências
ROYSTON, J. P. Algorithm AS 181: The w test for normality. Applied Statistics, p. 176–180, 1982.