Ferramentas do usuário

Ferramentas do site


cursos:planeco:roteiro:07-classr

Testes Clássicos

Os testes clássicos estatísticos estão inseridos no escopo da estatística frequentista ou inferência frequentista. Nessa abordagem a inferência é baseada na frequência ou proporção dos dados amostrados. A maior parte dos testes frequentistas clássicos foi desenvolvida independentemente para a solução de problemas distintos. Por isso, não há uma unificação analítica completa, que só aconteceu posteriormente com a integração oferecida pelos modelos lineares, como veremos nas próximas aulas. Nos testes clássicos a aplicação é definida basicamente pela natureza das variáveis resposta (dependente) e preditora (independente) e pela hipótese estatística subjacente.

Principais testes clássicos frequentistas

A tabela abaixo apresenta os principais testes clássicos frequentistas e sua aplicação com relação às variáveis preditoras e resposta e à hipótese estatística subjacente.

tabTestes.png

Regressão Linear Simples

Análise de Resíduos de Regressão Linear

Quando realizamos uma análise mais aprofundada sobre a relação entre duas variáveis numéricas contínuas podemos ajustar uma reta que represente o melhor ajuste entre os dados e que possa nos ajudar a prever valores da variável resposta (eixo Y) a partir de valores da variável preditora (eixo X). Se o ajuste é uma reta, esse tipo de análise é chamado de Análise de Regressão Linear. A explicação detalhada sobre como funciona essa análise foi apresentada na aula sobre Análise de Regressão Linear. Alguns aspectos importantes que precisam ser lembrados para entendermos esse tutorial:

  • A reta ajustada (também denominada “linha de regressão”) passa obrigatoriamente pelo ponto que representa a média da variável Y e a média da variável X.
  • Os pontos das observações estarão distribuídos em torno dessa reta.
  • A distância vertical (projetada no eixo Y) de cada ponto até a reta é chamada de resíduo, desvio ou erro daquele ponto.
  • A linha de regressão é aquela que minimiza os resíduos (na verdade, a soma dos quadrados dos resíduos)

O objetivo desse tutorial é aprender a fazer uma análise de regressão linear e a avaliar a distribuição dos erros/resíduos, pois os modelos de regressão linear possuem importantes premissas relacionadas a eles.


O que são os erros/resíduos e como calcular?

Os erros/resíduos indicam o quão longe os valores de Y observados estão dos valores de Y estimados pela linha de regressão ajustada. Eles estão representados em verde na figura abaixo:

residuos.png

Os erros/resíduos de cada observação são calculados projetando-se no eixo Y o valor de Y observado e o valor de Y estimado (ou predito) pela reta e calculando-se a diferença entre esses dois valores.

residuosyestimadoyreal.jpg

Premissas de uma Análise de Regressão Linear

- LINEARIDADE - Uma reta representa o melhor ajuste aos dados

- DISTRIBUIÇÃO NORMAL DOS ERROS/RESÍDUOS - Para cada valor de X, os erros devem seguir uma distribuição normal. Se fossem feitas muitas réplicas para cada um dos valores de X, a distribuição dos erros referentes aos vários valores obtidos para Y nas muitas réplicas seguiria uma distribuição normal (Veja as curvas em vermelho na figura de homoscedasticidade abaixo). Porém, em geral, não são feitas réplicas e é necessário assumir que os resíduos seguem essa distribuição.

- VARIÂNCIA DOS ERROS/RESÍDUOS CONSTANTE - Para qualquer valor de X, a variância dos erros é a mesma. Se fossem feitas muitas réplicas para cada um dos valores de X, a distribuição dos erros referentes aos vários valores obtidos para Y nas muitas réplicas apresentaria uma mesma variância para qualquer valor de X. Porém, em geral, não são feitas réplicas e é necessário assumir que essas variâncias são iguais.

Quando essa premissa é cumprida, temos o que chamamos de homoscedasticidade: desvios_uniformes_joao_batista.png

Quando ela não é cumprida, observamos uma heteroscedasticidade. Note na figura abaixo que para valores pequenos de X a variância é menor (distribuição estreita) e que para valores maiores de X temos uma variância grande (distribuição larga): desvios_heterocedasticos_joao_batista.png

Agora vamos estimar os valores dos resíduos para um exemplo hipotético abaixo:

grafico_calcularresiduos_rcmdr.jpg

Faça uma tabela como essa e anote os valores aproximados que você consegue obter por esse gráfico:

X Yobservado Yestimado Resíduo
1
2
3
4
5
6

Agora vamos checar no R com esses mesmos dados: 1) Crie um diretório (i.e. uma pasta) para você

2) Abra o R no seu computador e mude o diretório de trabalho para o diretório que você criou, usando o menu Arquivo > mudar dir….

3) Crie as variáveis x e y:

x<- c(1,2,3,4,5,6)
y<- c(6,5,7,10,9,13)

4) Ajuste um modelo de regressão linear simples usando a função lm() e inspecione o resumo do modelo usando a função summary(), que fornece informações importantes sobre o modelo, incluindo os valores brutos dos erros/resíduos (residuals):

lm.xy<-lm(y~x)
summary(lm.xy)

Checando as premissas

Ok, agora que você entendeu como são calculados os erros/resíduos, vamos trabalhar com conjuntos de dados maiores para podermos entender como checar as premissas da análise de regressão linear de uma maneira um pouco mais realista:

Baixe os arquivos de dados para o seu diretório:

Descrição dos conjuntos de dados:

Atenção: esses conjuntos de dados não são reais, são simulações produzidas com o objetivo de inserir nos dados alguns padrões que frequentemente encontramos em estudos reais

Imagine que um grupo de pesquisadores vem trabalhando há muito tempo com peixes da família Rivulidae que ocorrem em lagos temporários. Esses peixes crescem e se reproduzem nesses lagos temporários durante o período de chuvas e seus ovos ficam dormentes durante o período de seca. Os pesquisadores estão interessados em compreender as relações tróficas e as possíveis limitações de espaço nas áreas de ocorrência desses peixes.

Do total de lagos temporários existentes, foram sorteados 20 lagos e na época chuvosa os seguintes dados foram coletados:

  • - Biomassa de algas
  • - Biomassa de insetos aquáticos
  • - Volume do lago
  • - Biomassa de peixes herbívoros
  • - Biomassa de peixes insetívoros
  • - Número de indivíduos adultos da espécie mais abundante (Austrolebias charrua)

- O primeiro conjunto de dados (algas_peixes.csv) foi obtido com o objetivo de analisar se a biomassa de algas existente nos lagos influencia a biomassa de peixes herbívoros e se essa relação é linear.

- O segundo conjunto de dados (algas_peixes2.csv) foi obtido com o mesmo objetivo anterior, mas as medidas foram tomadas no ano seguinte (ano 2).

- O terceiro conjunto de dados (insetos_peixes.csv) foi obtido com o objetivo de analisar se a biomassa de insetos existente nos lagos influencia a biomassa de peixes insetívoros e se essa relação é linear.

- O quarto conjunto de dados (vol_inds.csv) foi obtido com o objetivo de analisar se o volume de água de cada lago afeta o número de indivíduos da espécie Austrolebias charrua, que é uma das espécies dominantes nesses lagos, e se essa relação é linear.

O primeiro passo é ajustar um modelo de regressão linear aos dados obtidos.

Inicialmente vamos trabalhar com o conjunto de dados algas_peixes.csv

Carregue o pacote car:

library(car)

Importe o arquivo para o R e conheça os dados:

algas.peixes <- read.csv("algas_peixes.csv", sep=";")
head(algas.peixes)
summary(algas.peixes)

Avalie visualmente a relação entre as variáveis com o gráfico scatterplot:

scatterplot(BIOMASSA_PEIXES_HERB~BIOMASSA_ALGAS, data=algas.peixes)

Ajuste um modelo de regressão linear para as variáveis, usando a função lm():

lm.algas.peixes<-lm(BIOMASSA_PEIXES_HERB~BIOMASSA_ALGAS, data=algas.peixes)
summary (lm.algas.peixes)

Use a função “names()” para saber quais são as informações que estão disponíveis sobre esse modelo:

names(lm.algas.peixes)

Se você quiser olhar detalhadamente alguma dessas informações, basta escrever o nome_do_modelo$nome_da_informação. Então, vamos olhar especificamente os erros/resíduos:

lm.algas.peixes$residuals

O mesmo pode ser feito para conhecer os valores ajustados (fitted.values), os coeficientes a e b (coef), etc.

Como saber se os erros/resíduos seguem uma distribuição normal?

Lembre dos métodos usados no tutorial de ANÁLISES EXPLORATÓRIAS DE DADOS. Você tem várias opções para avaliar visualmente a distribuição de um conjunto de valores. Basta aplicar a mesma lógica para a distribuição dos erros/resíduos.

Histograma

hist(lm.algas.peixes$residuals)

Boxplot

boxplot(lm.algas.peixes$residuals)

Gráfico Quantil-Quantil

qqnorm(lm.algas.peixes$residuals)
qqline(lm.algas.peixes$residuals)

Como saber se a variância dos erros/resíduos é constante?

Considerando que a reta obtida pelo modelo linear separa os pontos observados de Y de modo que eles fiquem distribuídos da melhor forma possível acima e abaixo da reta, teremos tanto valores positivos quanto valores negativos de resíduos para os diferentes valores de X.

Para um dado valor de X, teremos um valor de Y_estimado (que aparece na planilha de dados como “fitted.RegModel.*”). Relembrando, os Y_estimados são os valores projetados em Y quando o valor de X cruza a reta de regressão.

Se esperamos que a variância dos resíduos seja constante ao longo dos valores de X, deveríamos também esperar que o espalhamento dos valores dos resíduos (positivos ou negativos) sejam similares para os diferentes valores de Y_estimado.

Então, podemos fazer um gráfico em que relacionamos os valores de Y_estimado (“fitted.RegModel.*”) e os valores dos Resíduos (“residuals.RegModel.*”) para cada Y_estimado. Com esse gráfico podemos avaliar se a distribuição dos resíduos é similar ou se há um maior ou um menor espalhamento dos valores de resíduos para alguns valores de Y_estimado.

res.a.p<-lm.algas.peixes$residuals
yest.a.p<-lm.algas.peixes$fitted.values
plot(res.a.p~yest.a.p, xlab="Y estimado", ylab="Resíduos")

Como você interpreta esse gráfico? Você nota algum padrão na distribuição dos erros/resíduos?

Esse mesmo gráfico que é utilizado para avaliar se a variância é constante (homoscedasticidade), também pode ser utilizado para checar se existe alguma assimetria, algum viés (positivo ou negativo) ou alguma tendência de que a relação seja melhor definida por uma curva do que por uma reta.

A figura abaixo mostra vários exemplos desse gráfico entre Resíduos e Y_estimado, com ou sem homoscedasticidade e com ou sem vieses (Biased ou Unbiased):

resid-plots.gif

Ao interpretar esses gráficos, lembre-se sempre que aqui não estão sendo representados os seus dados brutos, e sim os resíduos e os valores de Y_estimado!


Como saber se alguma observação está influenciando demais os parâmetros da regressão?

Além de testar as premissas, também é importante fazer um diagnóstico para verificar se existem outliers e se eles influenciam muito o resultado da análise de regressão.

Para medir a influência que uma dada observação tem sobre a inclinação da reta estimada pelo modelo de regressão linear, usamos uma medida denominada “Distância de Cook” que é calculada para cada observação e avalia a relação entre o erro/resíduo (e) e a leverage (hii) da observação. A leverage (que pode ser traduzida como “alavancagem”) indica o quanto um dado valor de X é extremo considerando a amplitude dos demais valores de X. Repare, pela equação abaixo, que quanto maior for o erro/resíduo (e) e a leverage (hii) de uma dada observação, maior será a distância de Cook referente a ela, ou seja, sua influência sobre a estimativa dos parâmetros da distribuição. Porém, se a leverage for alta para uma dada observação, mas o erro/resíduo for pequeno, essa observação não terá um valor alto de Distância de Cook, ou seja, não terá tão grande influência sobre a inclinação da reta.

distancia_cook_equacao_portugues.png

Valores altos de Distância de Cook para uma dada observação indicam que se ela fosse retirada das análises, a inclinação da reta de regressão poderia mudar muito. Veja o exemplo abaixo, do livro de Quinn & Keough (2008), mostrando o efeito de três diferentes observações sobre a inclinação da reta. Os números das retas (1, 2 e 3) indicam como seria a reta se aquela determinada observação (1, 2 ou 3, respectivamente) fosse mantida no conjunto de dados. A reta 1 indica como ficaria a reta sem as observações 2 e 3. figuraleverageq_k.jpg

Se você não entendeu essa figura, peça ajuda!

Então, podemos fazer um gráfico em que plotamos o valor dos Resíduos em relação aos valores de leverage e nesse gráfico os pontos que possuírem as maiores leverage e os maiores erros/resíduos (positivos ou negativos) serão as observações com maiores Distâncias de Cook e consequentemente, com maiores influências sobre os parâmetros da reta.

Devido ao tempo escasso, não vamos construir esse gráfico passo-a-passo. Vamos usar uma opção mágica que vai mostrar 4 gráficos de diagnóstico de uma só vez e incluirá esse gráfico para que você possa analisar.

O primeiro passo é ajustar um modelo de regressão linear aos dados obtidos. Para o primeiro conjunto de dados (algas_peixes.csv), nós já fizemos isso, então, vamos apenas recuperar o resumo do modelo para depois fazermos os gráficos sobre esse modelo:

summary (lm.algas.peixes)

Agora, vamos definir que sejam construídos os 4 gráficos de diagnóstico para esse modelo e que eles sejam colocados em uma mesma página:

par(mfrow=c(2,2))
plot(lm.algas.peixes)
par(mfrow=c(1,1))

Entendendo essa figura:

- Os dois gráficos à esquerda relacionam os resíduos aos valores de Y_estimado. Dentre esses, o gráfico inferior utiliza os resíduos padronizados1) para diminuir eventuais problemas com assimetria (skewness) nos dados. Em geral, basta checar um deles e já será possível identificar problemas de heteroscedasticidade e de viés nos resíduos.

- O gráfico superior à direita é o gráfico quantil-quantil. Ele nos ajuda a identificar se os resíduos 2) se ajustam bem a uma distribuição normal (checagem da normalidade dos resíduos). Se os pontos desse gráfico estiverem bem próximos da linha diagonal (observem principalmente as extremidades), isso indica que os valores dos resíduos estão bem ajustados a uma distribuição normal. Se nas extremidades os pontos estiverem distantes da linha, a distribuição dos resíduos é assimétrica, apresentando caudas mais longas ou mais curtas, a depender da posição em que ocorrem esses pontos distanciados .

- O gráfico inferior à direita é o gráfico que mostra a relação entre resíduos (padronizados) e a leverage das observações. É nesse gráfico que podemos também conferir a Distância de Cook. As linhas vermelhas tracejadas indicam os limites para valores de distância de Cook que são considerados altos (acima de 0,5). Pontos localizados fora dessa linha tracejada são observações com alta Distância de Cook e que devem, portanto, ser analisados cuidadosamente. Repare que os pontos com as maiores Distâncias de Cook têm números que ajudam você a identificar a qual observação o ponto se refere.

Salve esse conjunto de gráficos como .pdf e identifique-o com o nome do arquivo de dados


PARA ENTREGAR ANTES DO INÍCIO DA PRÓXIMA AULA

Repita o mesmo procedimento realizado acima para os conjuntos de dados “algas_peixes2.csv” e “vol_ind.csv” e avalie quais premissas estão sendo atendidas ou não para cada um. Envie pelo formulário abaixo ou pelo link do formulário.

1) Os gráficos de diagnóstico dos dois conjuntos de dados;

2) Para cada conjunto de dados, faça sua interpretação sobre a distribuição dos resíduos, incluindo avaliação de:

  • 2.1 - normalidade;
  • 2.2 - homoscedasticidade;
  • 2.3 - influência dos pontos.

## copie uma linha por vez:
algas.peixes2 <- read.csv("algas_peixes2.csv", sep=";")
head(algas.peixes2)
summary(algas.peixes2)
scatterplot(BIOMASSA_PEIXES_HERB2~BIOMASSA_ALGAS2, data=algas.peixes2)
lm.algas.peixes2<-lm(BIOMASSA_PEIXES_HERB2~BIOMASSA_ALGAS2, data=algas.peixes2)
summary (lm.algas.peixes2)

## copie as três linhas juntas:
par(mfrow=c(2,2))
plot (lm.algas.peixes2)
par(mfrow=c(1,1))
## copie uma linha por vez:
insetos.peixes <- read.csv("insetos_peixes.csv", sep=";")
head(insetos.peixes)
summary(insetos.peixes)
scatterplot(BIOMASSA_PEIXES_INS~BIOMASSA_INSETOS, data=insetos.peixes)
lm.insetos.peixes<-lm(BIOMASSA_PEIXES_INS~BIOMASSA_INSETOS, data=insetos.peixes)
summary(lm.insetos.peixes)

## copie as três linhas juntas:
par(mfrow=c(2,2))
plot (lm.insetos.peixes)
par(mfrow=c(1,1))
## copie uma linha por vez:
vol.inds <- read.csv("vol_inds.csv", sep=";")
head(vol.inds)
summary(vol.inds)
scatterplot(INDIVIDUOS_AUSTROL~VOLUME_LAGO, data=vol.inds)
lm.vol.inds<-lm(INDIVIDUOS_AUSTROL~VOLUME_LAGO, data=vol.inds)
summary(lm.vol.inds)

## copie as três linhas juntas:
par(mfrow=c(2,2))
plot (lm.vol.inds)
par(mfrow=c(1,1))
1)
se tiver interesse em entender como é feita essa padronização, utilize a ajuda do Rcommander ou do R, mas não precisa fazer isso nesse momento
2)
note que ele também está usando resíduos padronizados
cursos/planeco/roteiro/07-classr.txt · Última modificação: 2019/03/29 10:03 por adalardo